Java 访问标识符

私有访问修饰符-private

1.私有访问修饰符是最严格的访问级别,所以被声明为 private 的方法、变量和构造方法只2.能被所属类访问,并且类和接口不能声明为 private

3.声明为私有访问类型的变量只能通过类中公共的 getter 方法被外部类访问。

4.Private 访问修饰符的使用主要用来隐藏类的实现细节和保护类的数据。

 

下面的类使用了私有访问修饰符:

public class Logger {

   private String format;

   public String getFormat() {

      return this.format;

   }

   public void setFormat(String format) {

      this.format = format;

   }

}

实例中,Logger 类中的 format 变量为私有变量,所以其他类不能直接得到和设置该变量的值。为了使其他类能够操作该变量,定义了两个 public 方法:getFormat() (返回 format的值)和 setFormat(String)(设置 format 的值)

 

受保护的访问修饰符-protected

1.被声明为 protected 的变量、方法和构造器能被同一个包中的任何其他类访问,也能够被不同包中的子类访问。

2.protected 访问修饰符不能修饰类和接口,方法和成员变量能够声明为 protected但是接口的成员变量和成员方法不能声明为 protected

3.子类能访问 protected 修饰符声明的方法和变量,这样就能保护不相关的类使用这些方法和变量。

4.下面的父类使用了 protected 访问修饰符,子类重写了父类的 openSpeaker() 方法。

class AudioPlayer {

   protected boolean openSpeaker(Speaker sp) {

      // 实现细节

   }

}

 

class StreamingAudioPlayer extends AudioPlayer {

   boolean openSpeaker(Speaker sp) {

      // 实现细节

   }

}

如果把 openSpeaker() 方法声明为 private,那么除了 AudioPlayer 之外的类将不能访问该方法。如果把 openSpeaker() 声明为 public,那么所有的类都能够访问该方法。如果我们只想让该方法对其所在类的子类可见,则将该方法声明为 protected

 

访问控制和继承

请注意以下方法继承的规则:

1.父类中声明为 public 的方法在子类中也必须为 public

2.父类中声明为 protected 的方法在子类中要么声明为 protected,要么声明为 public,不能声明为 private

3.父类中声明为 private 的方法,不能够被继承

转载于:https://www.cnblogs.com/zxan/p/7277984.html

### Java 标识符规则与使用 在 Java 编程语言中,标识符是用来命名变量、方法、类以及包等程序元素的关键组成部分。为了确保代码的可读性和一致性,Java标识符定义了一套严格的规则和最佳实践。 #### 1. 基本规则 - **字符组成**: 标识符可以由字母、数字、下划线 (`_`) 和美元符号 (`$`) 组成[^1]。 - **起始字符限制**: 标识符必须以字母、下划线或美元符号开头,而不能以数字开头[^1]。 - **区分大小写**: Java 是大小写敏感的语言,因此 `myVariable` 和 `MyVariable` 被视为两个不同的标识符[^1]。 - **关键字冲突**: 标识符不能是 Java 的保留关键字(如 `if`, `for`, `while` 等),也不能是布尔常量(如 `true`, `false`)或 `null`。 - **非法字符**: 标识符不允许包含空格或其他特殊字符(如 `@`, `#`, `%` 等)[^1]。 #### 2. 推荐的最佳实践 - **描述性命名**: 标识符应当具有清晰的意义,能够反映其用途或功能。例如,`studentCount` 比 `sc` 更具可读性[^3]。 - **命名风格**: - 驼峰命名法 (CamelCase): 多单词组成的标识符采用驼峰命名方式,首个单词首字母小写,后续单词首字母大写。例如,`firstName`, `getFullName`[^2]。 - 下划线分隔: 在某些场景下(如常量定义),建议使用全大写字母并以下划线分隔多个单词。例如,`MAX_VALUE`, `PI`[^2]。 - **避免特殊前缀**: 尽管允许 `_` 或 `$` 开头的标识符,但在常规开发中并不推荐这种做法,除非有特定需求(如框架内部实现细节)[^3]。 #### 3. 示例代码展示 以下是一个完整的示例,演示如何按照规则正确地定义和使用标识符: ```java public class Student { private String studentName; // 私有字段,遵循驼峰命名法 private int gradeLevel; public void setStudentName(String name) { // 方法名同样采用驼峰命名 this.studentName = name; } public void setGradeLevel(int level) { this.gradeLevel = level; } public String getStudentInfo() { // 返回学生信息的方法 return "Name: " + studentName + ", Grade Level: " + gradeLevel; } public static final double GPA_SCALE = 4.0; // 常量使用大写加下划线 public static void main(String[] args) { Student s = new Student(); s.setStudentName("Alice Johnson"); s.setGradeLevel(10); System.out.println(s.getStudentInfo()); System.out.println("GPA Scale: " + GPA_SCALE); } } ``` 此代码片段展示了以下几个方面: - 如何通过私有成员变量存储数据,并提供公共 setter/getter 方法访问这些数据。 - 定义静态常量时使用的标准命名模式。 - 主函数入口点创建对象实例并调用相应方法完成操作逻辑。 ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值