11.类的高级特性

我这些学习笔记,记录的都是我自己认为的知识点,可能以后再看的时候还要翻书,但是可以用来定位到准确的书中示例的位置,减少翻书重找的时间,利于自身知识体系的搭建。                   self-transcendence

第11章 类的高级特性

11.1 java类包

类包是为了解决同名的类文件而产生的。

同一个包中的类互相访问时,可以不指定包名。

同一个包中的类不必放在同一个位置,假设有两个包一个在c盘一个在d盘,只要将classpath分别指向这两个位置即可。

Java包的命名规则是全部使用小写字母。

定义包名时通常使用创建者的Internet域名的反序,因为internet域名是独一无二的,包名自然不会冲突。

-------------------------------------------------------------------------

11.2 final变量

Final关键字可以用于定义常量

Final定义成员变量不可更改

Final定义成员变量是没有赋值成为空白final

在构造方法中为空白final赋值

设置final参数,不可以改变参数x的值

局部变量定义为final,不可以改变局部变量的值

------------------------------------------------------------------------

11.3 final方法

定义为final的方法不能被重写

将方法定义为final类型可以防止子类修改该类的定义与实现方式,同时定义为final的方法的执行效率要高于非final方法。

private修饰符定义的方法,隐式被指定为final方法,不会被子类覆盖。(向上转型例外)

-------------------------------------------------------------------------

11.4 final

定义为final的类不能被继承

如果某个类被设置为final形式,则类中的所有的方法都被隐式设置为final形式,但是final类中的成员变量可以被定义为final或者非final形式

---------------------------------------------------------------------------

11.5 内部类

11.5.1 成员内部类

在类中定义的类叫做内部类

内部类可以分为成员内部类,局部内部类,匿名类

在外类中使用内部类,内部类中可以直接存取外类的私有成员变量和方法。

内部类的实例一定要绑定在外部类的实例上,如果从外部类中初始化一个内部类对象,那么内部类对象就会绑定在外部类对象上。但是内部类的成员只有内部类能使用。(怀孕的妈妈)

创建内部类,一定要先创建外部类,然后在用外部类创建内部类。

这里还有一个内部类向上转型为接口的案例和知识点,需要时再翻书处理

 

11.5.2 局部内部类

内部类不但可以在类中定义,还可以在类的局部位置定义,比如累的方法或任意的作用域中

 

11.5.3 匿名内部类

没有名称的内部类,作用是创建一个匿名类的对象。

 

11.5.4 静态内部类

一般不常用

 

11.5.5 内部类的继承

Extends ClassA.ClassB

在某个类继承内部类时,必须硬性给予这个类一个带参数的构造方法,并且该构造方法的参数为需要继承内部类的外部类的引用,同时在构造方法体中使用a.super()语句,这样才为继承提供了必要的对象引用。

 

 

猜你喜欢

转载自blog.csdn.net/selftranscendence/article/details/80883879
今日推荐