查看: 1399|回复: 0

[Java语言] Java四种访问控制修饰符知识点总结

发表于 2018-4-16 08:00:05

java有四种访问控制修饰符。

  1. public
  2. protected
  3. private
  4. default(默认为空,不加任何修饰)

为了用代码对比出其中的区别,首先建立两个包,分别为area1和area2;五个类,分别是Person、PersonDemo、PersonSon、PersonTest、OutPerson。

然后Person、PersonDemo、PersonSon放在area1包下。

PersonTest、OutPerson放在area2包下。

四个访问控制修饰符在同类下的代码例子:

  1. package area1;
  2. public class Person {
  3. public String _public="公共变量"; //定义一个公共变量
  4. private String _private="私有变量"; //定义一个私有变量
  5. protected String _protected="保护变量 "; //定义一个保护变量
  6. String _default="默认变量"; //使用默认方法定义变量
  7. public void _pub(){ //创建一个公共方法
  8. System.out.println(_public);
  9. }
  10. private void _pri(){ // 创建一个私有方法
  11. System.out.println(_private);
  12. }
  13. protected void _pro(){ //创建一个保护方法
  14. System.out.println(_protected);
  15. }
  16. void _def(){ //创建默认方法
  17. System.out.println(_default);
  18. }
  19. public static void main(String[] args){
  20. Person p=new Person(); //创建对象
  21. p._pub(); //调用方法
  22. p._pri();
  23. p._pro();
  24. p._def();
  25. }
  26. }
复制代码

四个访问控制修饰符在同包不同类(不含子类)下的代码例子:

  1. package area1;
  2. public class PersonDemo {
  3. public static void main(String[] args){
  4. Person p=new Person(); //创建Person类的对象
  5. p._pub();
  6. p._pri(); //报错
  7. p._pro();
  8. p._def();
  9. }
  10. }
复制代码

四个访问控制修饰符在同包子类下的代码例子:

  1. package area1;
  2. public class PersonSon extends Person{ //子类PersonSon继承父类Person
  3. public static void main(String[] args){
  4. PersonSon son=new PersonSon(); //子类创建对象
  5. son._pub();
  6. son._pro();
  7. son._def();
  8. son._pri(); //报错
  9. Person father=new Person(); //父类创建对象
  10. father._def();
  11. father._pub();
  12. father._def();
  13. father._pri(); //报错
  14. }
  15. }
复制代码

四个访问控制修饰符在同包不同类(不含子类)下的代码例子:

  1. package area2;
  2. import area1.Person; //引用area1包下的Person类
  3. public class PersonTest {
  4. public static void main(String[] args){
  5. Person p=new Person(); //Person类创建对象
  6. p._pub();
  7. p._pro(); //报错
  8. p._pri(); //报错
  9. p._def(); //报错
  10. }
  11. }
复制代码

四个访问控制修饰符在同包子类下的代码例子:

  1. package area2;
  2. import area1.Person; //引用area1包下的Person类
  3. public class OutPerson extends Person{ //子类继承父类
  4. public static void main(String[] args){
  5. OutPerson out=new OutPerson(); //子类创建对象
  6. out._pub();
  7. out._pro();
  8. out._pri(); //报错
  9. out._def(); //报错
  10. }
  11. }
复制代码

注意:仔细与图表对比!



回复

使用道具 举报