标签:int 进阶 程序设计 else collect 返回 listen eve 其他
clone
方法是被protected修饰,在自定义的类中覆盖clone方法时需要注意什么?(1)protected修饰的方法只允许其子类调用,而外部类则是不允许调用该方法的。
(2)利用Object类的clone方法,自定义类中的方法的名称要与Object.clone中的名称相同。
(3)其返回值必须和被覆盖的方法的返回值一致
只想限制其朋友类和子类访问时,而不允许其他外部类访问时,可采用protected修饰,这样还可以保护它,不让它被其他类调用。
阅读作业Shape代码,可以看出getPerimeter和getArea两个方法分别计算周长与面积,是其和其子女的特性,应该为其和继承其的子女类使用且不为其他类所调用,故用protected修饰。
Employee
类,在test2包中新建一个TestProtected
类,并在main中尝试调用test1包中的Employee的clone方法克隆一个新对象,能否成功?为什么?不能成功。首先两个类不在一个包中,test2也并没有import test1包,故无法获取该类,其次TestProtected
类应继承Employee类才可调用其方法。
public static void main(String[] args) { //将内部类改写为内部匿名类 Comparator<PersonSortable2> NameComparator=(PersonSortable2 o1, PersonSortable2 o2)->{ if(o1.getName().compareTo(o2.getName())>0){ return 1; }else if(o1.getName().compareTo(o2.getName())<0){ return -1; } else { return 0; }; Arrays.sort(person,NameComparator); }
Comparator<Shape> shapeComparator = new Comparator<Shape>() { @Override public int compare(Shape o1, Shape o2) { //你的代码 } };
shapeComparator所指向的对象实现了Compatator接口,并在其匿名内部类中将compare方法实现(实际过程为重写),使该抽象方法可以通过Collection.sort进行调用。
事件,事件源,事件监听器。
public static void main(String[] args) { btn = new JButton("this is a btn");//创建一个按钮用以监听事件 //实现监听器接口并编写监听器绑定事件 btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("hello world"); } }); }
1.内部类使用的时候,需要先创建外部类才能实现。
2.内部类可以是静态static的,也可用public,default,protected和private修饰。
3.内部类的方法名可以和外部类的相同。
201521123040 《Java程序设计》第6周学习总结
标签:int 进阶 程序设计 else collect 返回 listen eve 其他
原文地址:http://www.cnblogs.com/hyrrr/p/6657589.html