面向对象第五章

1.static final常量: 1)必须声明同时初始化 2)类名点来访问、不能被改变 3)建议:常量名所有字母都大写,多个单词之前用_分隔 4)编译器在编译时将常量直接替换为具体的值,效率高 5)何时用:数据永远不变,并且经常使用 2.抽象方法: 1)由abstract修饰 2)只有方法的定义,没有具体的实现(连{}都没有) 3.抽象类: 1)由abstract修饰 2)包含抽象方法的类必须是抽象类 不包含抽象方法的类也可以声明为抽象类------我乐意 3)抽象类不能被实例化 4)抽象类是需要被继承的,派生类: 4.1)重写抽象类中的所有抽象方法-----建议 4.2)也声明为抽象类-----------------一般不这样做 5)抽象类的意义: 5.1)封装共有的属性和行为--------------代码复用 5.2)为所有派生类提供统一的类型--------向上造型 5.3)可以包含抽象方法,为所有派生类提供统一的入口, 派生类的具体实现不同,但入口是一致的 1.成员内部类:应用率不高 1)类中套类,外面的称为Outer外部类,里面的称为Inner内部类 2)内部类通常只服务于外部类,对外不具备可见性 3)内部类对象通常是在外部类中创建的 4)内部类中可以直接访问外部类的成员(包括私有的) 内部类中有个隐式的引用指向了创建它的外部类对象 eg: 外部类名.this 2.匿名内部类: 1)若想创建一个类(派生类)的对象,并且对象只创建一个, 此时该类不必命名,称为匿名内部类 2)在jdk1.8以前,匿名内部类中若想访问外面的变量, 该变量必须是final的 常见面试题: 问:内部类有独立的.class吗? 答:有 Bullet[] bs = hero.shoot(); bullets = Arrays.copyOf(bullets,bullets.length+bs.length); //扩容(bs有几个元素就扩大几个容量) System.arraycopy(bs,0,bullets,bullets.length-bs.length,bs.length); //数组的追加

猜你喜欢

转载自www.cnblogs.com/ahaijava/p/9965923.html