面向对象_上

面向对象

一、属性(成员变量)和局部变量的区别

相同点

  1. 定义变量的格式:数据类型 变量名 = 变量值;
  2. 先声明,后使用
  3. 变量都有其对应的作用域

不同点

  1. 在类中声明的位置不同

    ​ 属性:直接定义在类的一对 { } 内

    ​ 局部变量:声明在方法内、方法形参、代码块内、构造器形参、构造器内部的变量

  2. 关于权限的修饰符不同

    ​ 属性:可以在声明属性时,指明其权限,使用权限修饰符

    ​ 局部变量:不可使用权限修饰符

  3. 默认初始化值的情况:

    ​ 属性:类的属性,根据其类型都有默认的初始化值

    ​ 整型(byte、short、int、long):0

    ​ 浮点型(float、double):0.0

    ​ 字符型(char):0 或 '\u0000'

    ​ 布尔型(boolean):false

    ​ 引用数据类型(类、数组、接口):null

    ​ 局部变量:没有默认初始化值

    ​ 特别地:形参在调用时,我们赋值即可

  4. 内存中加载的位置

    ​ 属性:加载到堆空间中(非 static )

    ​ 局部变量:加载到栈空间

二、方法的重载

重载的定义

  • ​ 在同一个类中,允许存在一个以上的同名方法,只要他们参数个数或者参数类型不同即可(两同一不同:同一个类,参数个数不同或参数类型不同)

三、可变个数形参的方法

  • JDK 5.0 新增

  • 可变个数形参的格式: 数据类型 ... 变量名

    public void show(String ... strs){
    
    }
    
  • 当调用可变个数形参的方法时,传入的参数个数可以是 0,1,2...

  • 可变个数形参的方法与本类中方法名相同,形参不同的方法之间构成重载

  • 可变个数形参的方法与本类中方法名相同,形参类型相同的数组之间不构成重载不能共存

  • 可变个数形参在方法的形参中,必须声明在末尾

    public void show(int i,String ... strs){
        
    }
    
    /*
    public void show(String ... str, int i){
    
    }
    */
    //Vararg parameter must be the last in the list
    
  • 可变个数形参在方法的形参中,最多只能声明一个可变形参

四、方法的形参传递的机制

4-1、形参与实参

  1. 形参:方法定义时,声明的小括号内的参数
  2. 实参:方法调用时,时间传递给形参的数据

4-2、值传递机制

  1. 如果参数是基本数据类型,此时实参赋给形参的是实参真实存在的数据
  2. 如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值

五、递归方法

  • 方法的递归包含了一种隐式的循环,它会重复的执行某段代码,但这种重复执行无须循环控制
  • 递归一定要向已知方向递归,否则这种递归就变成了无穷递归,类似死循环

六、封装性

封装性的体现

其一:我们将类的属性私有化(private),同时,提供公共(public)的方法来获取(getXxx)和设置(setXxx)此属性的值。

权限修饰符

  1. Java规定的4种权限(从小到大排列):private、缺省、protected、public

    image-20210922202731367

  2. 4种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类

  3. 具体的,4种权限可以用来修饰类的内部结构:属性、方法、构造器、内部类

    修饰类的话:只能是 缺省 或 public

构造器

​ 构造器的作用:

  1. 创建对象
  2. 初始化对象

​ 说明:

  1. 如果没有显式的定义类的构造器的话,则系统默认提供一个空参的构造器
  2. 定义构造器的格式:权限修饰符 类名(形参列表)
  3. 一个类中定义的多个构造器,彼此构成重载
  4. 一旦我们显式的定义了类的构造器之后,系统不再提供默认的空参构造器
  5. 一个类中,至少会有一个构造器

总结属性赋值的先后顺序:

1 - 2 - 3 - 4

  1. 默认初始化
  2. 显式初始化
  3. 构造器中赋值
  4. 通过“对象.方法” 或 “对象.属性” 的方式赋值

JavaBean

所谓JavaBean , 是指符合以下标准的Java类:

  1. 类是公共的
  2. 有一个无参的公共的构造器
  3. 有属性,且有对应的get、set方法

七、this

this关键字的使用:

this 可以用来修饰:属性、方法、构造器

this修饰属性和方法

this 理解为:当前对象 或 当前正在创建的对象
格式:this.属性 this.方法

this调用构造器

  1. 我们在类的构造器中,可以显式的使用“this(形参列表)”方式,调用本类中指定的其他构造器
  2. 构造器中不能通过“this(形参列表)”方式调用自己
  3. 如果一个类中有 n 个构造器,则最多有 n-1 个构造器中使用了“this(形参列表)”
  4. 规定:“this(形参列表)”必须声明在当前构造器的首行
  5. 构造器内部:只能声明一个“this(形参列表)”,用来调用其他构造器
posted @ 2021-10-15 00:05  叁玖贰拾柒  阅读(34)  评论(0)    收藏  举报