定义一个类时所用的修饰符有几个?作用是什么?是否可以混用?
可以混用,但是abstract和final不能混用
可以混用,但是abstract和final不能混用
成员变量的修饰符有哪些?作用是什么?是否可以混用?
可以
成员方法的修饰符有哪些?作用是什么?是否可以混用?
可以
成员变量和局部变量的区别是什么?
(1)作用域
成员变量:针对整个类有效。
局部变量:只在某个范围内有效。(一般指的就是方法,语句体内)
(2)存储位置
成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。
局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。
当方法调用完,或者语句结束后,就自动释放。
(3)初始值
成员变量:有默认初始值。
局部变量:没有默认初始值,使用前必须赋值。
Person p = new Person();在内存中做了哪些事情?
(1)将Person.class文件加载进内存中。
(2)如果p定义在主方法中,那么,就会在栈空间开辟一个变量空间p。
(3)在堆内存给对象分配空间。
(4)对对象中的成员进行默认初始化。
(5)对对象中的成员进行显示初始化。
(6)调用构造代码块对对象进行初始化。(如果没有就不执行)
(7)调用构造方法对对象进行初始化。对象初始化完毕。
(8)将对象的内存地址赋值给p变量,让p变量指向该对象。
this表示什么含义?
(1)this关键字代表本类对象的一个引用,谁调用this所在的方法,this就代表谁
(2)this的使用场景
A:用于区分同名成员变量和局部变量;
B:在定义函数时,该函数内部要用到调用该函数的对象时,因为此时对象还没建立,故this代表此对象
C:构造函数间调用,this(参数)必须作为第一条语句存在。
什么叫匿名对象,一般在什么情况下使用匿名对象?
一个没有名字的对象, 创建了一个对象出来,没有赋给一个变量;
特点:对方法或字段只进行一次调用时;
可作为实际参数进行传递;
只在堆里面开辟存储区域,只能使用一次, 使用完就被销毁了;
何时使用?只拿来用一次!!
new Person();表示匿名对象,没有名字的对象
new Person().age = 17;//使用一次之后就被销