一、构造方法
1. 构造方法概述和作用 a. 给对象的数据(属性)进行初始化 2. 构造方法格式特点 a. 方法名与类名相同(大小也要与类名一致) b. 没有返回值类型,连void都没有 c. 没有具体的返回值return; 3. 构造方法重载 a. 方法名相同,与返回值类型无关(构造方法没有返回值),只看参数列表 4. 构造方法注意事项 a. 如果我们没有给出构造方法,系统将自动提供一个无参的构造方法。 b. 如果我们给出了构造方法,系统将不再提供默认的无参构造方法。 ※ 注意:这个时候我们如果还想使用无参的构造方法,就必须自己定义,建议永远要自己给出无参的构造方法。二、给成员变量赋值的两种方式的区别
1. 两种方式: a. 使用有参构造方法赋值。eg:Person p1=new Person("张三",23); b. 使用setXxx方法赋值。eg: p1.setName("张天翼"); 2. 区别: a. 构造方法:一般用来给对象中的属性进行初始化 b. setXxx()方法:修改属性的值。 ※ 实际使用中,setXxx()的方式更灵活一点。 三、创建对象的步骤: Student s=new Student(); a. Student.class加载进内存 b. 声明一个Student类型引用s c. 在堆内存创建对象 d. 给对象中属性默认初始化值 e. 属性进行显示初始化 f. 构造方法进栈,对对象中的属性赋值,构造方法弹栈 g.将对象的地址赋值给s .四、static关键字
1. static关键字的特点 a. 随着类的加载而加载 b. 优先于对象存在 c. 被类的多有对象共享 i. eg:我们班级的学生共用一个班级号 ii. 什么时候使用static 1) 如果某成员变量是被所有对象共享的,那么它就应该被定义为静态的。 d. 可以通过类名调用 i. 其实它本身也可以通过对象调用 ii. 推荐使用类名调用 iii. 静态修饰的内容一般我们称其为:与类相关的,类成员 2. static的注意事项 a. 在静态方法中是没有this关键字的 i. 如何理解: 1) 静态是随着类的加载而加载,this是随着对象的创建二存在的。 2) 静态比对象先存在。 b. 费静态方法只能访问静态的成员变量和静态的成员方法: i. 静态方法: 1) 成员变量:只能访问静态变量 2) 成员方法:只能访问静态成员方法 ii. 费静态方法: 1) 成员变量:可以是静态的,也可以是费静态的。 2) 成员方法:可以是静态的成员方法,也可以是费静态的成员方法。 iii. 简单记: 1) 静态只能访问静态。五、静态变量和成员变量的区别:
1. 所属不同 a. 静态变量属于类,所以也称为类变量 b. 成员变量属于对象,所以也称为实例变量(对象变量) 2. 内存中位置不同 a. 静态变量存储于方法区的静态区 b. 成员变量存储于堆内存。 3. 内存出现的时间不同: a. 静态变量随着类的加载而加载,随着类的消失而消失。 b. 成员变量随着对象的创建而存在,随着对象的消失而消失。 4. 调用不同: a. 静态变量可以通过类名调用,也可以通过对象调用。 b. 成员变量只能通过对象名调用。六、工具类中使用static
如果一个方法中所有方法都是静态的,那么就需要将该类的构造方法设置为私有的,禁止该类创建对象。