当前类 同一package 子孙类 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不写时默认为friendly
解决方案 »
- Java多线程/多核编程 有没有推荐的书
- 弱弱的问下,有插件的JAVA程序怎么转成EXE,或者其他直接运行的格式
- 明明在*.java文件里有三个类,编译为什么就只生成两个对应的字节码文件,怪了!!高手请
- WizardPage的finish置灰
- 用HTTP能不能实现FTP那样的上传下载功能,代码应该怎么写
- 跪求 des 标准算法的 java 实现
- 我写了个jsp程序,想在里面写个 下载(txt)文档,不知道怎么写,各位大哥帮忙
- 请教定义实体类的问题
- public class Test 和 class Test 两种声明有什么区别
- 我是一个刚学JAVA的新手,为何我在JBUILDER中编译过的APPLICATION程序不能在WIN2000下双击运行
- 如何把JAVA工程 编译成.SO文件
- JSTL
public: Java语言中访问限制最宽的修饰符,一般称之为“公共的”。被其修饰的类、属性以及方法不仅可以跨类访问,而且允许跨包(package)访问。
private: Java语言中对访问权限限制的最窄的修饰符,一般称之为“私有的”。被其修饰的类、属性以及方法只能被该类的对象访问,其子类不能访问,更不能允许跨包访问。
protect: 介于public 和 private 之间的一种访问修饰符,一般称之为“保护形”。被其修饰的类、属性以及方法只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。
default:即不加任何访问修饰符,通常称为“默认访问模式“。该模式下,只允许在同一个包中进行访问
访问权限没有这样简单吧.
比如:package a;
public class Base
{
void def()
{
System.out.println("The default mothod of the base class.");
}
}
package a;
public class Derived extends Base
{
public static void main(String[] args)
{
Derived dr = new Derived();
dr.def();//888888correct8888888
}
}package b;
import a.Base;
public class Derived2 extends Base
{
public static void main(String[] args)
{
Derived2 dr2 = new Derived2();
dr2.def();//********error*************
}
}
package a;
public class Another
{
public static void main(String[] args)
{
Derived dr3 = new Derived();
dr3.def();//************correct**********
}
}
这里涉及到外部接口和内部接口的问题