第7章(下)--类的完善
1.成员方法注意事项和细节:
2.方法重载:
java中允许同一个类中,多个同名方法的存在,但要求 形参列表不一致!
比如:System.out.println(); out是PrintStream类型
3.可变参数:
1) 可变参数的实参可以为0个或任意多个。
2) 可变参数的实参可以为数组。
3) 可变参数的本质就是数组.
4) 可变参数可以和普通类型的参数一起放在形参列表,但必须保证可变参数在最后
5) 一个形参列表中只可能出现一个可变参数
4.创建java自定义类步骤总结
1) 定义类,确定类名
2) 编写类的属性
3) 编写类的方法
4) 创建对象,使用方法。
5.属性和局部变量作用域
1) 在java编程中,主要的变量就是属性(成员变量,全局变量)和局部变量。A类:sum
2) 我们说的局部变量一般是指在成员方法中定义的变量。
3) java中作用域的分类
全局变量:也就是属性,作用域为整个类体 A类:sum sub 等方法使用属性
局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中!
4) 全局变量可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使用,因为没有默认值。
5)接收到的形参是局部变量。
6.作用域的注意事项和细节
1) 属性全局变量和局部变量可以重名,访问时遵循就近原则。
2) 在同一个作用域中,比如在同一个成员方法中,两个局部变量,不能重名。[举例]
3) 全局变量,存储在堆中。局部变量,存储在栈中,需要画一个示意图说明。【重要】
4) 全局变量,生命周期较长,伴随着对象的创建而创建,伴随着对象的死亡而死亡。局部变量,生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而死亡。即在一次方法调用过程中。【每调用一次方法,就开一个方法栈,这个是由操作系统决定的】
5) 作用域不同
全局变量:可以被本类使用,或其他类使用(通过对象调用)
局部变量:只能在本类中对应的方法中的作用域内使用
6) 修饰符不同
全局变量可以加修饰符
局部变量不可以加修饰符
7.构造器
构造方法又叫构造器(constructor),是类的一种特殊的方法,它的主要作用是完成对新对象的初始化。
[修饰符] 方法名(参数列表){
构造方法体
}
- 说明:
1) 构造器的修饰符可以默认
2) 构造器没有返回值
3) 方法名 和类名字必须一样
4) 参数列表 和 成员方法一样的规则
5) 构造器的调用有系统JVM 来调用
8.构造器的使用方法和注意细节
1) 一个类可以定义多个不同的构造方法,构造方法重载
比如:我们可以再给Person类定义一个构造方法,用该方法来创建新对象的时候,只指定人名,不需要指定年龄。
2) 构造方法名和类名相同
3) 构造方法没有返回值
4) 主要作用是完成对新对象的初始化
5) 在创建新对象时,系统自动的调用该类的构造方法
6) 如果程序员没有定义构造方法,系统会自动给类生成一个默认无参构造方法(也叫默认构造方法),比如 Person (){}
7) 一旦定义了自己的构造方法,默认的构造方法就覆盖了,就不能再使用默认的无参构造方法,除非显示的定义一下,即: Person(){};
9.对象的创建流程分析
1) JVM 机会加载类结构信息(Person.class)
2) 在堆中分配空间(地址 )
3) 对属性进行初始化
3.1 默认初始化 age = 0 name = null
3.2 显示初始化 age = 90 name = null
3.3 使用构造器进行初始化 age = 20 name = "小倩"
4) 将 堆中的对象的地址,返回给p
10.this的基本介绍
this : 哪个对象调用,this就指向该对象
访问构造器:
11.构造器重载案例