java学习笔记5

关键字

final

用法:

润饰一个类

public final class 类名称 {
    //...
}

含意:以后这个类不能有任何的子类(太监类),肯定有父类。
因而,润饰的类,其中所有的成员办法都无奈笼罩重写(无子类),但能够本身笼罩重写父类的成员办法。

润饰一个办法

修饰符 final 返回值类型 办法名(参数列表) {
    //办法体
}

含意:被final润饰的办法为最终办法不能再被笼罩重写

对于类和办法来说,abstract和final关键字不能同时应用

润饰一个局部变量

final 数据类型 变量名 = 值;
or
final 数据类型 变量名;
变量名 = 值;        //赋值,只有保障有惟一一次赋值即可

含意:被final润饰的变量值,不容许更改,一次赋值,终生不变,并且不容许对曾经定义的变量名,扭转其值

int num1 = 10;
final num1 = 12;   //Error!!!

不可变
对于根本数据类型,变量中的数据不可变
对于援用数据类型,变量中的地址值不可变

润饰一个成员变量

间接赋值:

构造方法赋值:
    如Person类
private final 数据类型 成员变量名

public Person() {
    成员变量名 = .... ; //此处进行赋值
}
    再去掉上面这个办法
public void setName() {
    ...
}

留神:

1.因为成员变量会自带默认值,null或者0,也属于赋值,所以用了final后必须手动赋值,就不会再给默认值了。
2.对于final的成员变量,要么间接赋值,要么通过构造方法赋值(用了间接赋值,就不要用结构; 二者选一
3.必须保障类当中所有重载的构造方法,都最终会对final的成员变量进行赋值。


四种权限修饰符

public > protected > (default) > private
同一个类( 我本人) YES YES YES YES
同一个包 (我街坊) YES YES YES NO
不同包子类(我儿子) YES YES NO NO
不同包非子类(陌生人) YES NO NO NO

注意事项:
(default)是指不写


外部类

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理