Java四种访问控制修饰符知识点总结

 更新时间:2018年03月02日 09:34:10   作者:彬菌  
本篇文章给大家详细分析了Java四种访问控制修饰符的相关知识点,有兴趣的朋友可以参考学习下。

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

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

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

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

PersonTest、OutPerson放在area2包下。

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

package area1;

public class Person { 
  public String _public="公共变量"; //定义一个公共变量 
  private String _private="私有变量"; //定义一个私有变量 
  protected String _protected="保护变量 "; //定义一个保护变量 
  String _default="默认变量"; //使用默认方法定义变量 
   
  public void _pub(){ //创建一个公共方法 
    System.out.println(_public); 
  } 
  private void _pri(){ // 创建一个私有方法 
    System.out.println(_private); 
  } 
  protected void _pro(){ //创建一个保护方法 
    System.out.println(_protected); 
  } 
  void _def(){ //创建默认方法 
    System.out.println(_default); 
  } 
  public static void main(String[] args){ 
    Person p=new Person(); //创建对象 
    p._pub(); //调用方法
    p._pri(); 
    p._pro(); 
    p._def(); 
  } 
} 

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

package area1;

public class PersonDemo { 
  public static void main(String[] args){ 
    Person p=new Person(); //创建Person类的对象
    p._pub(); 
    p._pri(); //报错  
    p._pro(); 
    p._def(); 
  } 
} 

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

package area1;

public class PersonSon extends Person{ //子类PersonSon继承父类Person 
  public static void main(String[] args){ 
    PersonSon son=new PersonSon(); //子类创建对象 

    son._pub();
    son._pro(); 
    son._def(); 
    son._pri(); //报错 
    
    Person father=new Person(); //父类创建对象 
    father._def();
    father._pub();
    father._def();
    father._pri(); //报错 
  } 
} 

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

package area2;

import area1.Person; //引用area1包下的Person类 
 
public class PersonTest { 
  public static void main(String[] args){ 
    Person p=new Person(); //Person类创建对象 
    
    p._pub();
    p._pro(); //报错
    p._pri(); //报错
    p._def(); //报错
  } 
}

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

package area2;

import area1.Person; //引用area1包下的Person类 

public class OutPerson extends Person{ //子类继承父类 
  public static void main(String[] args){ 
    OutPerson out=new OutPerson(); //子类创建对象 
    
    out._pub();
    out._pro();
    out._pri(); //报错
    out._def(); //报错
  } 
}

注意:仔细与图表对比!

相关文章

  • Java知识点归纳 —给Java新手的一些建议(新手必看)

    Java知识点归纳 —给Java新手的一些建议(新手必看)

    以下简单介绍了下我对于这些java基本知识点和技术点的一些看法和心得,这些内容都源自于我这些年来使用java的一些总结
    2016-05-05
  • Spring中如何使用Comparator接口

    Spring中如何使用Comparator接口

    Comparator比较器接口可以将自身传递给排序方法(比如Collections.sort或Arrays.sort),以便对排序顺序进行精确控制。本文讲述Spring中如何使用Comparator接口
    2021-06-06
  • java获取微信accessToken的方法

    java获取微信accessToken的方法

    这篇文章主要为大家详细介绍了java获取微信accessToken的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • Mysql json类型字段Java+Mybatis数据字典功能的实践方式

    Mysql json类型字段Java+Mybatis数据字典功能的实践方式

    这篇文章主要介绍了Mysql json类型字段Java+Mybatis数据字典功能的实践方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • Java分层概念详解

    Java分层概念详解

    这篇文章主要介绍了Java分层概念详解,内容十分详细,在这里给大家分享下,需要的朋友可以参考。
    2017-09-09
  • Java并发编程示例(五):线程休眠与恢复

    Java并发编程示例(五):线程休眠与恢复

    这篇文章主要介绍了Java并发编程示例(五):线程休眠与恢复,在本节,我们将开发一个程序,使用sleep()方法来实现每秒钟打印一次当前时间,需要的朋友可以参考下
    2014-12-12
  • java如何用Processing生成马赛克风格的图像

    java如何用Processing生成马赛克风格的图像

    这篇文章主要介绍了如何用java如何用Processing生成马赛克风格的图像,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-03-03
  • Spring bean 加载执行顺序实例解析

    Spring bean 加载执行顺序实例解析

    这篇文章主要介绍了Spring bean 加载执行顺序实例解析,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02
  • Java初始化块及执行过程解析

    Java初始化块及执行过程解析

    这篇文章主要介绍了Java初始化块及执行过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • 深入理解Java虚拟机 JVM 内存结构

    深入理解Java虚拟机 JVM 内存结构

    本节将会介绍一下JVM的内存结构,JVM运行时数据区的各个组成部分:堆,方法区,程序计数器,Java虚拟机栈,本地方法栈,还会对Java堆的分代划分做个简单的介绍
    2021-09-09

最新评论