1.static关键字
(1)被它修饰的数据不再属于对象的特有内容,而属于共享内容;
(2)直接被类名调用;
例:Person.name; / /Person为类名
(3)内存中,静态优于非静态存在的;
(4)注意:
A. 在静态中不能使用非静态;
B. 静态中不能写this和super;
C. 静态不能直接调用非静态。
(5)应用场景:static修饰成员变量、成员方法。
A. 成员变量加static,具体问题具体分析;
定义事物时,多个事物之间是否存在有共性的数据,将共性数据定义为静态。
B. 成员方法加static,跟着变量走;
该成员方法里未用到非静态成员变量,就加static。
(附:接口中每个成员变量都默认使用public static final修饰,且变量名全大写。例:public static final String SCHOOL_NAME = “雅礼高中”)
2.匿名对象
(1)定义:是指创建对象的语句,却没有把对象地址值赋值给某个变量。
例:
//定义一个Person类
public class Person{
}
//定义一个测试类
public class Test{
Person p = new Person();//创建一个普通对象
new Person();//创建一个匿名对象
}
(2)特点:
A. 创建匿名对象直接使用,没有变量名;
例:new Peroson().eat();//调用Person类里面的eat方法
B. 匿名对象在没指定其引用变量时,只能使用一次;
C. 它还可以作为方法接受的参数,方法返回值使用。