Java 基础02

参照:https://www.cnblogs.com/ZXF6/p/11530009.html

类和对象

/**
 * java 中的类和对象
 *
 * 一、局部变量的作用域。
 *
 * 二、面向对象的概述
 *      但是在面向对象设计之前,广泛采用的是面向过程,面向过程只是针对于自己来解决问题。
 *      面向过程的操作是以程序的基本功能实现为主,实现之后就完成了,也不考虑修改的可能性。
 *      
 *      面向对象,更多的是要进行子模块化的设计,每一个模块都需要单独存在,并且可以被重复利用,
 *      所以,面向对象的开发更像是一个具备标准的开发模式。
 *      
 *      可维护性  需求分析
 *
 *    2.  在面向对象定义之中,也规定了一些基本的特征: 
                    抽象。
             * (1)封装:保护内部的操作不被破坏; 
             * (2)继承:在原本的基础之上继续进行扩充; 
             * (3)多态:在一个指定的范围之内进行概念的转换。
 *
 *    3. 面向对象的开发?
             * 对于面向对象的开发来讲也分为三个过程:OOA(面向对象分析)、OOD(面向对象设计)、OOP(面向对象编程)。
 *
 *    4.类与对象是整个面向对象中最基础的组成单元。
 *
 *    5.对象是将来用于存储数据(实体类)
 *
 * 三、类中的函数?
         * 无参数无返回值的函数
 *
          A 函数的定义
          【权限修饰符】  void  函数名(){


          }
          static void hah(){}

 四、类
        类是对象的模板,对象是类的实例?
        类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。

        定义一个 people 类
        他的属性有   age sex tall weight ... 
        
        int age ;
        string sex;
        double tall;
        double weight;
 
        新建一个测试类
        JavaTest 
 
 创建对象。
        people p = new people();
 赋值。
        p.age = 15;
        p.sex = "男";
        ...
    
 1
 */
public class JavaObject {
    public static void main(String[] args) {

        int b3=456;
    }

    /**
     * 局部变量 :定义到函数内部的变量 称之为 局部变量
     *         局部变量的作用域:局部变量的使用范围
     *         从变量定义开始  到所在的结束大括号
     *         在同一作用域内 不能重复定义变量
     */
    @Test
    public void juBu(){
        int a = 10;
        if (a>5){
            int b = 20;
            System.out.println("b====="+b);
            System.out.println(a);
        }

        int b2 =30;
        System.out.println("b2===="+b2);

    }

    /**
     * 无参数无返回值的函数
     * 1.权限修饰符
     * 2.返回值类型
     * 3.方法名 函数名 小驼峰的命名方式。。
     * (): 参数列表
     * {}: 函数体
     */
    public  void haha(){

    }

    /**
        函数的调用?
        1. 非静态 对象名.函数名
             Test01 test01 = new Test01();
             test01.haha();
        2.
     */


}

函数

/**
 * 一、java中的函数?
 *
 * 1.【修饰符】 返回值类型  函数名(参数类型 参数名,参数类型 参数名,........) {
 *          函数体
 * }
 *
 * 2. 无参数无返回值的函数
 *      定义:   【修饰符】 void  函数名() {
 *          函数体
 * }
 *
             * 为什么需要函数:函数能实现某些功能
             * 函数的调用(非static) :  1 创建对象
             *                           2  对象名.函数名();
             *
 *
 * 3.  有参数 无返回值的函数
 *      定义: 【修饰符】  void 函数名(参数类型 参数名,参数类型 参数名,........){
 *                     函数体/方法体
 *             }
     参数和返回值 都是 数据传递的一种方式。。。
 *
 * 二 、java中的重载?
 *
 * 三、 构造函数?
 *   1.   在一个类中 默认会生成一个公共无参数的构造函数(也就是说 你不写 默认会帮你加上)
 *
 *   2. 我们一旦自己写了构造函数 那么公共无参数的构造函数就不会自动生成了
 *      所以 我们一旦添加公共有参数的构造函数 一定要确保无参数构造函数的存在
 *      (OCJP)
 *
 *
 * */
public class JavaFunction {

    public static void main(String[] args) {
     /*
       函数的参数和返回值的使用  取决于实际需求。

      */
        int hah = add(45, 55);
        System.out.println(hah);


        // Haha()  构造函数。
        Haha haha = new Haha();
    }

    /**
     * 构造函数
     */
   static class   Haha{
        public static void main(String[] args) {
            int     age ;
            String  name;

        }

        //自己写了构造函数 那么公共无参数的构造函数就不会自动生成了
        public Haha(){

        }

        // 自己写构造函数的作用(通过构造函数传参)
        public Haha(int age,String name){
            System.out.println("创建带参的构造函数  , 需要手动添加空的构造函数");
        }
    }


    /**
     *1. 无参数无返回值的函数
     */

    public   void  haha(){
        System.out.println(66);
    }


    /**
     * 2.有参数 无返回值的函数
     */

    static void add(int a, int b){

//      有返回值的方法 return 的内容 要和返回值类型匹配
        int result = a+b;

//        以 return 语句执行后的代码不执行)
    }

    /**
     * 3.有返回值没有参数
     */
    int jian(){

        // 函数体。
        return 0;
    }

/**
  有参数有返回值的方法
  
*/

  double  getDifference(int a, int b){
      double result = a - b;
      return result;
    }





    /**
     * 在同一类中,函数名相同,参数列表(参数的个数,参数的类型,类型的顺序)不同 此时就是函数的重载
     */
    int add(int  a){
        return  a;
    }

    /**
     * 重载和 方法的返回值类型没有关系 只和参数列表有关
     * 两个 add  返回值类型不同
     * 报错 :已经在类中定义了add 方法
     *
     *
     * @return
     */
    int add(){
     return 0;
    }

    /**
     * 假设 编译不报错  请问,你在主函数中调用 add 方法
     * 问题来了  你调用的是 int ,还是 void?
     * 所以 Java中 不能根据返回值类型进行重载。
      */
   void add(){

   }
}
原文地址:https://www.cnblogs.com/jszfy/p/12793917.html