首页 > 编程语言 >无涯教程-Java Access Modifiers函数

无涯教程-Java Access Modifiers函数

时间:2023-12-12 20:31:59浏览次数:49  
标签:Modifiers Java String format 修饰符 无涯 访问 方法 public

Java提供了许多访问修饰符来设置类,变量,方法和构造函数的访问级别。四个访问级别是-

  • default(默认) : 对当前包可见,不需要修饰符。
  • private(私有) : 当前类可见。
  • public(公共): 都可见。
  • protected(受保护):对当前包和所有子类可见。

默认访问修饰符

默认访问修饰符意味着我们不会为类,字段,方法等明确声明访问修饰符。

在没有任何访问控制修饰符的情况下声明的变量或方法可用于同一包中的任何其他类。接口中的字段隐式为public static final,而接口中的方法默认为public。

可以在没有任何修饰符的情况下声明变量和方法,如以下示例所示:

String version="1.5.1";

boolean processOrder() {
   return true;
}

Private私有访问修饰符

声明为私有的方法,变量和构造函数只能在声明的类本身内访问。

专用访问修饰符是最严格的访问级别。类和接口不能是私有的。

使用private修饰符是对象封装自身并从外界隐藏数据的主要方式。

下列类使用私有访问控制-

public class Logger {
   private String format;

   public String getFormat() {
      return this.format;
   }

   public void setFormat(String format) {
      this.format=format;
   }
}

在这里,Logger类的 format 变量是私有的,因此其他类无法直接检索或设置其值。

因此,为了使此变量可用于外部世界,我们定义了两个公共方法: getFormat()与 setFormat(String)设置其值。

Public公共访问修饰符

可以从任何其他类访问声明为public的类,方法,构造函数,接口等。因此,可以从属于Java Universe的任何类中访问在公共类内声明的字段,方法,块。

但是,如果我们尝试访问的公共类位于不同的包中,则仍然需要导入公共类。由于类继承,类的所有公共方法和变量均由其子类继承。

以下功能使用公共访问控制-

public static void main(String[] arguments) {
   //...
}

应用程序的main()方法必须是公共的。否则,Java解释器(如java)将无法调用它来运行该类。

Protectedprotected 访问修饰符

在超类中声明为protected 变量,方法和构造函数只能由其他包中的子类或受保护成员的类的包中的任何类访问。

protected 访问修饰符不能应用于类和接口。方法,字段可以声明为受保护,但是接口中的方法和字段不能声明为受保护。

以下父类使用protected 访问控制,以允许其子类覆盖 openSpeaker()方法-

class AudioPlayer {
   protected boolean openSpeaker(Speaker sp) {
      //implementation details
   }
}

class StreamingAudioPlayer {
   boolean openSpeaker(Speaker sp) {
      //implementation details
   }
}

在这里,如果我们将openSpeaker()方法定义为私有方法,那么除 AudioPlayer 之外的任何其他类都无法访问它。如果我们将其定义为公共的,那么外界将可以使用它。但是我们的目的是仅将此方法公开给它的子类,因此才使用protected 修饰符。

参考链接

https://www.learnfk.com/java/java-access-modifiers.html

标签:Modifiers,Java,String,format,修饰符,无涯,访问,方法,public
From: https://blog.51cto.com/u_14033984/8790912

相关文章

  • 无涯教程-Java - Singleton Classes函数
    Singleton的目的是控制对象的创建,将对象的数量限制为一个。由于只有一个Singleton实例,因此Singleton的任何实例字段在每个类中只会出现一次,就像static字段一样。单例通常控制对资源的访问,例如数据库连接或Socket。例如,如果您仅对数据库的一个连接拥有许可证,或者JDBC驱动......
  • java文件的上传与下载
    1、文件上传下载1.1文件上传什么是文件上传?要将客户端(浏览器)大数据存储到服务器端,不将数据直接存储到数据库中,而是要将数据存储到服务器所在的磁盘上,这就要使用文件上传。为什么使用文件上传?通过文件上传,可以将浏览器端的大数据直接保存到服务器端。不将数据保存到数据库中......
  • 无涯教程-MFC - List Control函数
    列表视图控件的功能,该控件显示项目的集合,每个项目由一个图标和一个标签组成,它由CListCtrl类表示,列表控件包括使用以下视图显示项目列表。IconsSmallIconsListReport让无涯教程通过创建一个新的基于MFC对话框的应用程序来研究一个简单的示例。步骤1-删除TODO行并拖动一......
  • Java Spring Boot 拦截器的使用小结
    很多时候,我们在开发项目中,总是希望在接口中,尽量进行业务处理,其余的事项交给其他组件来处理,比如:登录验证日志记录接口性能在SpringBoot中,正如大多数框架一样,可以用到拦截件进行处理,不管叫中间件还是拦截件,总之都是为了让我们更好的专注于业务,解耦功能。我们看看SpringB......
  • 无涯教程-MFC - Tree Control函数
    TreeViewControl是一个窗口,其中显示项目的层次结构列表,例如文档中的标题,索引中的条目或磁盘上的文件和目录,每个项目都包含一个标签和一个可选的位图图像,并且每个项目都可以具有与其相关联的子项目列表,通过单击一个项目,用户可以展开和折叠子项目的关联列表,它由CTreeCtrl类表......
  • 《Effective Java》阅读笔记-第五章
    EffectiveJava阅读笔记第五章泛型第26条不要使用原生类型随着泛型的普及,这条没什么可说的。如果不知道具体类型,可以使用<?>来代替。第27条消除unchecked警告原生类型到泛型转换时,编译会有警告,可以使用@SuppressWarnings("unchecked")来消除警告。并且应该在尽可......
  • 秦疆的Java课程笔记:65 面向对象 创建对象内存分析
    先写两个类//创建一个Pet类==============================packageOOP.demo;publicclassPet{publicStringname;publicintage;publicvoidshout(){System.out.println("喵~~");}}//主程序Application================......
  • java计算二个经纬度间的距离(百度坐标)
    1:背景工作中遇到计算二个地点之间的距离,根据百度经纬度进行计算。2:maven依赖<dependency><groupId>org.gavaghan</groupId><artifactId>geodesy</artifactId><version>1.1.3</version></dependency>3:代码实现packagecom.pacific.transfe......
  • 零基础30天学会Java-韩顺平
    第一章概述了解了该视频课程的大纲和Java的基本知识,Java1995年推出,目前稳定维护的有Java8和Java11版本。JVM(Java虚拟机):JVM包含于JDK中,Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行"JRE(Java运行环境):JRE=JVM+Java的核心类库。JDK(Java开发工具包):JDK=JRE+Jav......
  • Java-04数组
    tip:[start]程序=逻辑+数据,数组是存储数据的强而有力的手段。——闫学灿tip:[end]一维数组数组的定义数组的定义方式和变量类似。java中数组的定义[]是写在数组名前面(与c++区分),开辟长度需要new,即面向对象。publicclassMain{publicstaticvoidmain(String[]......