Java编程思想学习笔记——访问权限控制与类的复用

1. 静态导入:import static com....className.*;与一般的import比,多了一个“static”,类名后多了“.*”。意指导入该类下的所有静态方法及静态成员。在当前类中使用时,便可不需要写类名了,直接使用。若只想导入某一个静态方法,只需要将*改为方法名即可。

2. 访问控制符

权限              本身         同一包中      子类      其它

private     是        

default         是               是

protected     是               是             是

public           是               是             是          是

3. 每个编译单元都只能最多有一个pulic类,且该类名与文件名需要同名。多于一个public类时会报错,其余的该文件中的类默认为包访问权限。类的修饰符没有private与protected(内部类除外)。

4. 对它人代码复用的两种方式:组合、继承。

5. main也是一个静态方法,故可在一个类中调用另一个类的main方法。

6. super表示父类对象,如需要调用某个父类方法,只需要super.f()即可。用super调用父类构造函数时,不需要类名,如super(i),这句必须放在构造函数第一行。

7. finally{。。。}中的代码不管异常是否发生都会执行,故可将数据库连接释放等代码放于其中。

8. c++中子类函数会隐藏掉父类所有同名函数的任何版本,Java中不会,Java中只是重载。如果不想重载,而想重写父类的函数,可用@override来明确表示,这样编译器会帮助检查。

9. final修饰数据时,一般对象表引用不变,基本类型表值不变;final修饰方法时,表示此方法在继承类中不可重写,形式为终极形式,如果private的final方法,子类中可以定义,但此时定义的是另一个函数,原函数无关;修饰类时表示此类不可继承。

10. 编译器会视情况把final方法进行内联展开,以节省开支。

11. Java中除了static与final方法,其它都是晚捆绑。

12. 抽象方法形如abstract void f();即没有函数体,定义抽象方法的类,编译器会强制要求其加上abstract修饰符。抽象类不可实例化,如果其子类未实现其中的抽象方法,其子类也为抽象类,直至某个继承层次实现为止。抽象类可以没有抽象方法,但有抽象方法的一定是抽象类。

13. 接口是一种完全抽象类。其方法全部是抽象方法,不允许有普通方法。域全部是public static final的,方法全是abstract public的,这些不需要显式指明。接口除了应用于多态,也应用于多重继承。

14. 接口也可以在类或接口中嵌套定义,嵌套接口可以是public, protected及包访问权限的,其中private接口不允许向上转型,也不允许在嵌套类或接口外直接引用。

15. 一般的方式是从类开始,如果需要多态,再进行重构,不要一上来就接口,易导致不必要的复杂性。随着经验增加,有把握时可直接接口。

16. Java的构造函数中可以用多态,这与c++不同,但此时的多态,所激发的子类的方法执行时,没有子类属性相关信息,因为子类对象尚未初始化,故一般不这么用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值