码迷,mamicode.com
首页 > 编程语言 > 详细

从头认识java-5.3 public private protected

时间:2015-10-30 00:53:47      阅读:253      评论:0      收藏:0      [点我收藏+]

标签:java

这一章节我们来讨论一下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();
	}
}


对于上面的代码,其他的类只能访问构造器,因为构造器是public,其他的是private。


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

我们修改一下刚才的那两个类,使得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的一些特性。


这一章节就到这里,谢谢。

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

目录


版权声明:本文为博主原创文章,未经博主允许不得转载。

从头认识java-5.3 public private protected

标签:java

原文地址:http://blog.csdn.net/raylee2007/article/details/49491529

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!