这一章节我们来讨论一下public 、private和protected
1.CLASS_PATH
环境变量里面的CLASS_PATH,这个路径就是我们java寻找文件的路径。
注意:一般在CLASS_PATH里面都会加上"."代表当前文件夹,如果不加上这个符号,那么,你编辑的java很有可能不能编译,因为在CLASS_PATH里面特定的几个文件夹里面很可能找不到你的源文件。
2.public
对于所有成员公开
package com.ray.ch05; public class Test { private int id; private void say() { } public static void main(String[] args) { new Test(); } }
3.private
只能本类访问,其他所有都不可以。
package com.ray.ch05; public class Test { private int id; private void say() { } public static void main(String[] args) { new Test().say();// 访问私有方法。 new Test().id = 0;//设定私有域的值 System.out.println(new Test().id);//读取私有域的值 } }
我们在同一个包里面建立另一个类Test2
package com.ray.ch05; public class Test2 { public static void main(String[] args) { new Test(); // new Test().say();// 抛异常 // new Test().id = 0;//抛异常 // System.out.println(new Test().id);//抛异常 } }
上面的这个类只能new Test(),其他的操作都是错误的。
4.protected
只能够子类访问父类的protected方法或属性。
我们修改一下刚才的那两个类,使得Test2继承Test,然后再Test里面建立一个protected的属性域。
package com.ray.ch05; public class Test { private int id; protected String name; private void say() { } public static void main(String[] args) { new Test().say();// 访问私有方法。 new Test().id = 0;//设定私有域的值 System.out.println(new Test().id);//读取私有域的值 } }
package com.ray.ch05; public class Test2 extends Test { public static void main(String[] args) { new Test(); System.out.println(new Test2().name);// 读取父类的属性域 // System.out.println(new Test2().id);//抛异常,因为id是private } }
从上面代码可以看见,子类Test2可以读取父类Test的protected属性。同样的,也可以延伸到方法上面去。
package com.ray.ch05; public class Test { private int id; protected String name; private void say() { } protected String setName() { return ""; } public static void main(String[] args) { new Test().say();// 访问私有方法。 new Test().id = 0;// 设定私有域的值 System.out.println(new Test().id);// 读取私有域的值 } }
package com.ray.ch05; public class Test2 extends Test { public static void main(String[] args) { new Test(); System.out.println(new Test2().name);// 读取父类的属性域 System.out.println(new Test2().setName());// 读取父类的方法 // System.out.println(new Test2().id);//抛异常,因为id是private } }
总结:这一章节主要讲述了public private protected的一些特性。
这一章节就到这里,谢谢。
-----------------------------------
版权声明:本文为博主原创文章,未经博主允许不得转载。