`
wxb_j2ee
  • 浏览: 136218 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java对比public protected default private 访问范围

    博客分类:
  • java
阅读更多
A类:
package test3;

public class A {
	
	public String public_str = "A_public_str";
	protected String protected_str = "A_protected_str";
	String default_str = "A_default_str";
	private String private_str = "A_private_str";
	
	public void access(){
		System.out.println("同包下,本类中,调用本类(A类)属性,访问情况如下:");
		System.out.println(public_str);
		System.out.println(protected_str);
		System.out.println(default_str);
		System.out.println(private_str);
	}

}
B类:
package test3;

public class B extends A{

	public void access(){
		System.out.println("同包,子孙类关系,继承A类,调用A类属性,访问情况如下:");
		System.out.println(super.public_str);
		System.out.println(super.protected_str);
		System.out.println(super.default_str);
		System.out.println("private_str 无法访问");
	}
}
C类:
package test3;

public class C {

	A a = new A();
	
	public void access(){
		System.out.println("同包下,非子孙类关系,C类中new一个A类对象,调用A类属性,访问情况如下:");
		System.out.println(a.public_str);
		System.out.println(a.protected_str);
		System.out.println(a.default_str);
		System.out.println("private_str 无法访问");
	}
}
 
D类:
package test4;

import test3.A;

public class D extends A{
	
	public void access(){
		System.out.println("不同包,继承A类,调用A类属性,访问情况如下:");
		System.out.println(super.public_str);
		System.out.println(super.protected_str);
		System.out.println("default_str 无法访问");
		System.out.println("private_str 无法访问");
	}

}
 
E类:
package test4;

import test3.A;

public class E {
	
	A a= new A();
	
	public void access(){
		System.out.println("不同包,非子孙类关系,调用A类属性,访问情况如下:");
		System.out.println(a.public_str);
		System.out.println("protected_str 无法访问");
		System.out.println("default_str 无法访问");
		System.out.println("private_str 无法访问");
	}

}
 
Main类:
package test5;

import test3.A;
import test3.C;
import test3.B;
import test4.D;
import test4.E;

public class Main {

	public static void main(String[] args) {
		A a = new A();
		B b = new B();
		C c = new C();
		D d = new D();
		E e = new E();
		System.out.println("对比public protected default private 访问范围:");
		System.out.println("A类访问情况:");
		a.access();
		System.out.println(" ");
		System.out.println("B类访问情况:");
		b.access();
		System.out.println(" ");
		System.out.println("C类访问情况:");
		c.access();
		System.out.println(" ");
		System.out.println("D类访问情况:");
		d.access();
		System.out.println(" ");
		System.out.println("E类访问情况:");
		e.access();
		System.out.println(" ");

	}

}
 
结果
对比public protected default private 访问范围:
A类访问情况:
同包下,本类中,调用本类(A类)属性,访问情况如下:
A_public_str
A_protected_str
A_default_str
A_private_str

B类访问情况:
同包,子孙类关系,继承A类,调用A类属性,访问情况如下:
A_public_str
A_protected_str
A_default_str
private_str 无法访问

C类访问情况:
同包下,非子孙类关系,C类中new一个A类对象,调用A类属性,访问情况如下:
A_public_str
A_protected_str
A_default_str
private_str 无法访问

D类访问情况:
不同包,继承A类,调用A类属性,访问情况如下:
A_public_str
A_protected_str
default_str 无法访问
private_str 无法访问

E类访问情况:
不同包,非子孙类关系,调用A类属性,访问情况如下:
A_public_str
protected_str 无法访问
default_str 无法访问
private_str 无法访问

 

分享到:
评论

相关推荐

    用java代码来解析private、public、default、protected的权限问题

    用java代码来解析private、public、default、protected的权限问题

    private,public,protected,还有default四种之间的区别

    private,public,protected,还有default四种之间的区别private,public,protected,还有default四种之间的区别

    Java中的private、protected、public和default的区别(详解)

    下面小编就为大家带来一篇Java中的private、protected、public和default的区别(详解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    【IT十八掌徐培成】Java基础第07天-04.权限-public-private-protected-default.zip

    【IT十八掌徐培成】Java基础第07天-04.权限-public-private-protected-default.zip

    java的访问修饰符的范围说明

    java的访问修饰符,private,protected,public,default的范围说明

    java 面试题

    【试题分析】Java 有4 种访问类型,分别为public 、protected 、default 和private 。其中public 变量 可以被所有的外部类访问,而pretected 的可以被同一个包及该类的子类访问,default 即没有任何修饰符 的变量...

    java八股文.docx "Java八股文"通常指的是一种简单的模板化回答,用于解答关于Java编程语言的基础问题,特别是在面试

    java八股文 "Java八股文"通常指的是一种简单的模板化回答,用于解答关于Java编程语言的基础... Java中的四种访问权限是public、protected、default和private,分别表示公开、受保护、默认(包内可见)和私有。 5. **J

    Java四种变量特性

    Java四种不同的变量作用域使用说明,包括public,private,protected,default,指出它们之间细微的区别

    Java开发热门常问面试题目资料解答合集40个资料左右.zip

    答:四种访问修饰符分别是public、protected、default、private,作用如下: public:可以被任何类访问; protected:只能被同一个包中的类访问,或者是在继承关系中的子类访问; default:只能被同一个包中的类...

    java面试题汇总大全(答案版) - java面试题

    java面试题汇总 1)private:只有在当前类内部中能使用 2)default:在类内部可以被访问,也可以被同个包(同一目录下)下其他类访问 3)protected:可以在类内部被访问,也可以被同个包下其他类访问,也可以被其子类访问 4)pub...

    Java的访问控制符

    属性和方法的访问控制符有四种:private, default, protected, public  可以用如下的表描述:(Yes表示可访问,空表示不可访问)  作用:变量, 方法上的修饰 1 package com.gxa.day8.am; 2 3 import ...

    java修饰符

    java修饰符:public、protected、private、final、static、abstract、default

    Java 修饰符和运算符

    Java 支持 4 种不同的访问权限: private 私有的 protected 受保护的 public 公共的 default 默认 1、访问权限 总结成如下表格: 修饰符 当前类 同一包内 子孙类 其他包 public yes yes yes yes protected yes yes ...

    ym_java-YOYOPlayer-src

    mport java.io.File; import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.util.ArrayList; import java.util.Collection; import java.util.HashMap; import java.util....

    Java语言学习教程大纲及实例

    - 访问修饰符(public, private, protected, default) 3. **面向对象编程(OOP)概念**: - 类与对象的关系 - 封装(Encapsulation) - 继承(Inheritance) - 多态(Polymorphism) - 抽象类与接口...

    Java内部类

    内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。

    Java 英文习题及答案

    (a) final (b) protected (c) private (d) default 1. Consider the following Java program segment. String[] str = {"Three","Two","One"}; for (int i = 0; i ; ++i) { System.out.println(str[i]+"/"); } ...

    java经典面试2010集锦100题(不看你后悔)

    C) 内部类的访问权限可以被定义为public、protected、private和default。普通类也可以定义上面四种访问权限,但是通常我们只应用public和default两种访问权限。 题目16:c 程序如下:  abstract class MineBase { ...

    2012RobocupRuscue东大代码

    private static final int DEFAULT_AGENT_THINK_TIME = 1000; private static final double AGENT_THINK_TIME_TOLERANCE = 0.8; private static final int DEFAULT_VIEW_DISTANCE = 30000; private static final...

    java 面试题 总结

    它是基于Java的远程方法调用(RMI)技术的,所以EJB可以被远程访问(跨进程、跨计算机)。但EJB必须被布署在诸如Webspere、WebLogic这样的容器中,EJB客户从不直接访问真正的EJB组件,而是通过其容器访问。EJB容器是...

Global site tag (gtag.js) - Google Analytics