1.构造方法的特点?
(1)构造方法主要作用是给对对象的属性进行初始化
(2)方法名与类名完全一致,没有返回值类型,连void都没有
(3)构造方法也是方法,只是比较特殊,是在创建对象后马上调用,后期不能单独调用,既然是方法,就可以重载
a.方法名相同
b.参数列表不同(数量不同,顺序不同,类型不同)
c.与返回值类型无关
(4)如果自定义类中没有提供构造方法,系统将自动提供一个无参构造方法,如果我们给出了构造方法,系统将不再提供默认的无参构造方法,要想再使用空参构造,必须显示给出
2.java中创建一个对象的过程?
(1)将类的字节码文件加载进内存
(2)声明一个该类类型引用s
(3)在堆内存创建对象,
(4)给对象中属性默认初始化值
(5)属性进行显示初始化
(6)构造方法进栈,对对象中的属性赋值,构造方法弹栈
(7)将对象的地址值赋值给s
3.谈谈你对static关键字的理解?
(1)被static关键字修饰的成员,属于该类中所有对象的共享内容可以直接用类名调用,也可以用对象调用,但是建议用类名调用
(2)随着类的加载而加载,优先于对象存在:随着字节码文件的加载而加载的,那时候还没有对象呢
(3)静态修饰的内容一般我们称其为:与类相关的,类成员(静态变量:类变量,静态方法:类方法)
(4)在静态方法中是没有this关键字的(因为this指的是一个具体的对象,而静态在加载到内存时还没有具体的对象)
(5)静态方法只能访问静态的成员变量和静态的成员方法,非静态的成员方法既可以方法静态的成员方法和成员变量,又能访问非静态的成员方法和成员变量
简单记忆:静态不能访问非静态
4.静态变量和成员变量的区别?
(1)所属不同
a.静态变量属于类,所以也称为为类变量
b.成员变量属于对象,所以也称为实例变量(对象变量)
(2)内存中位置不同
a.静态变量存储于方法区的静态区
b.成员变量存储于堆内存
(3)内存出现时间不同
a.静态变量随着类的加载而加载,随着类的消失而消失
b.成员变量随着对象的创建而存在,随着对象的消失而消失
(4)调用不同
a.静态变量可以通过类名调用,也可以通过对象调用
b.成员变量只能通过对 象名调用 |
|