学习小结
14.9 点拨
匿名类注意事项:
a. 使用匿名内部类,必须且只能继承一个类或实现一个接口;
b. 匿名内部类中不能定义构造函数;
c. 匿名内部类中不能存在任何静态成员变量和静态方法;
d. 匿名内部类为局部内部类;
e. 匿名内部类不能是抽象的,且必须实现继承类或者实现接口的所有抽象方法。static特点:
a. 一个是static属性或方法可以由类名称直接调用;
b. 另一个是static属性是一个共享属性。final好处:
a. 提高性能,JVM和Java应用都会缓存final 变量;
b. 可以安全的在多线程环境下共享,不需要额外同步开销;
c. 使用final ,JVM会对方法、变量及类进行优化;
d. 创建不可变类要使用final.
14.10 练习
- 定义一个包含“name”、“age”和“sex”的对象,使用匿名对象输出对象实例。
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年5月5日 下午11:21:53
* @Description TODO 定义一个包含“name”、“age”和“sex”的对象,使用匿名对象输出对象实例
*/
public class P384_14_10_1 {
public static void main(String[] args) {
System.out.println(new Person41().talk()); // 声明匿名对象,并调用talk()方法
}
}
class Person41 {
private String name = "张三";
private int age = 25;
private String sex = "男";
public String talk() {
return "我是:" + name + ",性别:" + sex + ",今年:" + age + "岁";
}
}
运行结果:
- 完成一个统计book类产生实例化对象的个数。
package com.Javastudy2;
/**
* @author Y.W.
* @date 2018年5月5日 下午11:37:03
* @Description TODO 完成一个统计book类产生实例化对象的个数。
*/
public class P384_14_10_2 {
public static void main(String[] args) {
new book4();
new book4();
new book4();
new book4();
new book4();
}
}
class book4 {
static int count = 0;
// 每次调用任意构造方法实例化都会执行
public book4() {
count++;
System.out.println("实例化对象次数:" + count);
}
}
运行结果:
思考
终于结束了这一章,准备开始新章节吧
记于2018-5-5 23:59:51
By Yvan