本文共 1876 字,大约阅读时间需要 6 分钟。
new Student(); 创建一个学生类的对象
上面代码本质是调用Student中的无参数的构造方法!
1. 构造方法的结构和普通方法类似,但是和普通方法完全不同两个代码块;
2. 构造方法也是方法,意味着使用了构造方法,方法会执行,也能完成功能
3. 构造方法就是一个代码块【就是一个结构 ,构造方法和 字段 方法一样都是一个类中的成员之一】
4. 构造方法也该存在于类的结构体中
构造方法语法:
1. 构造方法的名字和类名完全一致(包括大小写完全一致)
2. 没有返回值类型(void也不行)
3. 构造方法方法体不能返回任何的值(即不能在方法体中return 值)
4. 其他的和普通方法类似 ,可以有修饰符(public、protected、private、默认),可以有形参列表
5. 构造方法必须有方法体
6. 构造方法不能有任何非访问性质的修饰符修饰,例如 static、final、synchronized、abstract等都不能修饰构造方法。
注意:new Student() 这个整体既是一个Student对象,又是调用的Student的无参数构造方法
1. 类中构造方法特点:
① 每一个类中都至少有一个构造方法;
② 如果没有看到(显示的),那么存在一个隐式的无参数的构造方法;
③ 如果一个类中有显示的构造方法,那么隐式的无参的构造方法就不存在了;
在创建对象的同时给对象的成员变量赋值(初始化工作)
设计类语法:public class 类名{成员变量 (字段); 构造方法(有参、无参);方法 (具体的一个功能行为);}例如:public class User {/**姓名*/String name;/**年龄*/int age;/** * 无参构造 */public User() {System.out.println("User无参构造...");}/** * 有参构造 * 形参个数由需求决定 */public User(String n,int a) {name = n;//将传入的n的值赋值给成员变量nameage = a;//将传入的a的值赋值给成员变量ageSystem.out.println("User有参构造...");} public void playGame() {System.out.println("耍鸟...");}}
1 普通方法不要和类名一致,行业默认规则;
2 普通方法(Method)和构造方法(Constructor)是不同的两种结构
2.1 普通方法的调用 : 3种
2.1.1 类名.方法名(…); -有static修饰的
2.1.2 对象名.方法名(…);
2.1.3 方法名(…); --同一个类里面 都要static 或 都没有static修饰
2.2 构造方法的调用 :
(目前为止) new 类名(...);
案例:public static void main(String[] args) {//3.1. 创建对象new Student();//其实这就是匿名对象//3.2. 对象赋值new Student().name = "苍老师";//3.3. 对象取值System.out.println(new Student().name);// null}
概念:
- 匿名对象,就是创建了一个对象而没有使用变量接收
- 但是匿名对象本质也是一个对象(具体的值)
- int i = 10;//int数据类型 i变量 值,具体的一个数据
- Student stu = new Student();//Student数据类型 stu变量 new Student();堆中的一个对象
1 : 只需要使用一次的情况(如:调用一次非static修饰的普通方法、作为方法实参使用)
|
1. 对象的生命周期(就是对象从开始到结束的过程)
1.1开始 : new Student() ,new的时候就开始了;堆中
1.2结束:
1.2.1 说法1(常见的说法) :当对象失去所有的引用(没有变量再指向它了)
1.2.2 说法2 : 对象真正的被销毁(对象会在堆里面占用内存,当把对象的内存空间回收了),Java有自动垃圾回收机制(GC);
转载地址:http://kmcgn.baihongyu.com/