Java的访问修饰符
2020-03-27 16:09:12来源:博客园 阅读 ()
Java的访问修饰符
Java中有访问修饰符和非访问修饰符。其中访问修饰符有 public、protected 、default 、 private 四个。??修饰符用来定义类、方法或者变量,通常放在语句的最前端。Java中有访问修饰符和非访问修饰符。其中访问修饰符有 public、protected 、default 、 private 四个。下面依照同包同类、同包不同类、同胞继承类、不同包继承类、不同包不继承类几个关系来验证修饰符权限。
public
?同包同类
package package01;
/**
* 被测试类
*/
public class Person {
public int age = 10;
public int getAge() {
return age;
}
public Person() {
}
public static void main(String[] args){
Person person = new Person();
System.out.print(person.age);
}
}
//运行结果:10
?同包不同类且无继承关系
package package01;
/**
* 同包不同类
*/
public class Student {
public static void main(String[] args){
Person person = new Person();
System.out.print(person.age);
}
}
//运行结果:10
?同包子类
package package01;
/**
* 同包继承类
*/
public class Child extends Person {
public static void main(String[] args){
Person person = new Person();
System.out.print(person.age);
}
}
//运行结果:10
?不同包不同类且无继承关系
package package02;
/**
* 不同包不同类 - 此时要导入被测类 import package01.Person;
*/
import package01.Person;
public class Man {
public static void main(String[] args){
Person per = new Person();
System.out.print(per.age);
}
}
//运行结果:10
不同包子类
package package02;
/**
* 不同包不同类 - 此时要导入被测类 import package01.Person;
*/
import package01.Person;
public class Woman extends Person {
public static void main(String[] args){
Person per = new Person();
System.out.print(per.age);
}
}
//运行结果:10
protected
?同包同类
//运行结果:10
?同包不同类且无继承关系
//运行结果:10
?同包子类
//运行结果:10
?不同包不同类且无继承关系
//运行结果:报错,无法访问。
//注:但是可以通过public修饰的getAge()方法获得age。
?不同包子类
//运行结果:10
default
?同包同类
//运行结果:10
?同包不同类且无继承关系
//运行结果:10
?同包子类
//运行结果:10
?不同包不同类且无继承关系
//运行结果:报错,无法访问。
?不同包子类
//运行结果:报错,无法访问。
??注:不能写default,它也不是关键字,只是用default来标识不写访问修饰符的状态。
??
private
?同包同类
//运行结果:10
?同包不同类且无继承关系
//运行结果:报错,无法访问。
?同包子类
//运行结果:报错,无法访问。
?不同包不同类且无继承关系
//运行结果:报错,无法访问。
?不同包子类
//运行结果:报错,无法访问。
总结
? | public | protected | default | private |
---|---|---|---|---|
类内 | √ | √ | √ | √ |
同包子类 | √ | √ | √ | |
同包不同类 | √ | √ | √ | |
不同包子类 | √ | √ | ||
不同包不同类 | √ |
-
public没什么权限限制,跨包访问时记得导入即可。
-
protected 拥有同包或者继承关系即可访问。
-
default 在同一个包内即可访问,跨包即使有继承关系也没用。
-
private 只有在类内可以访问,同胞子类想访问也没辙。
原文链接:https://www.cnblogs.com/iiioooooblog/p/12583731.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash