@@ -49,9 +49,9 @@ Private 访问修饰符的使用主要用来隐藏类的实现细节和保护类
4949- 父类中声明为 private 的方法,不能够被继承。
5050
5151如下图,b类中的A方法范围比a类中的A方法访问权限范围更大
52- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/84824545-file_1492238954686_d9a4.png )
52+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/84824545-file_1492238954686_d9a4.png )
5353如下图,如果b类中的A方法的修饰符改为private,那么就会报错
54- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/69705924-file_1492239061720_337b.png )
54+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/69705924-file_1492239061720_337b.png )
5555
5656# 非访问修饰符
5757为了实现一些其他的功能,Java 也提供了许多非访问修饰符。
@@ -69,29 +69,29 @@ static关键字用来声明独立于对象的静态方法。静态方法不能
6969
7070对类变量和方法的访问可以直接使用 classname.variablename 和 classname.methodname 的方式访问。
7171如下图,main方法中可以直接访问静态变量` s ` 和静态方法` print() ` :
72- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/4876772-file_1492239938570_72fa.png )
72+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/4876772-file_1492239938570_72fa.png )
7373事实上通过类名来访问该类中的静态变量之外,事实上类的实例也可以调用,如下图的写法也是正确的,尽管Java会给一个警告,因为Java不倡导大家这样使用:
74- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/12099555-file_1492239938679_29f1.png )
74+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/12099555-file_1492239938679_29f1.png )
7575
7676## final
7777final可以修饰类/方法/变量,具体规则如下
7878### final 变量
7979final 变量能被显式地初始化并且只能初始化一次。被声明为 final 的对象的引用不能指向不同的对象。但是 final 对象里的数据可以被改变。也就是说 ** final 对象的引用不能改变,但是里面的值可以改变** 。
8080** 举例**
8181当我们试图更改final变量的值时候,Java会报错
82- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/17188853-file_1492240334960_175d.png )
82+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/17188853-file_1492240334960_175d.png )
8383同样的,接下来的这个例子也会报错
84- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/90587236-file_1492240694369_5f2f.png )
84+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/90587236-file_1492240694369_5f2f.png )
8585但是对` value ` 中的值可以随意改变
86- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/90165029-file_1492240764709_15c5c.png )
86+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/90165029-file_1492240764709_15c5c.png )
8787final 修饰符通常和 static 修饰符一起使用来创建类常量。
8888### final 方法
8989类中的 final 方法可以被子类继承,但是不能被子类修改。
9090声明 final 方法的主要目的是防止该方法的内容被修改。
9191如下图,a类中的` final A() ` 方法可以被b类继承
92- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/52182757-file_1492241013395_1415b.png )
92+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/52182757-file_1492241013395_1415b.png )
9393但是当我们试图在b类中重写` final A() ` 时候,Java会报错
94- ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/78514708-file_1492241101451_12105.png )
94+ ![ ] ( http://olwt21mf4.bkt.clouddn.com/17-4-15/78514708-file_1492241101451_12105.png )
9595### final 类
9696final 类不能被继承,没有类能够继承 final 类的任何特性。
9797
0 commit comments