Java类成员的作用域概述

本文详细介绍了Java中类成员的四种作用域关键字:public、protected、default和private,并通过表格形式清晰地展示了不同作用域下成员变量和方法的可访问性。


所有java程序员都知道java类有三个成员作用域关键字,即public, protected, 和private; 实际上还有一个作用域, 叫做缺省作用域, 也就是当类成员被声明时没有上述三个中的任何一个。

 

四个作用域按高低排序:

1.      public :公有,任何类都可以访问

2.      protected :保护,类自己,子类和同一个包的类可以访问

3.      (default)    :即什么都不写,类自己,同一包的类可以访问

4.      private       :私有,只有类自己可以访问


作用域当前类 同一包类子类其它包类
public
protected×
(default)××
private×××
 


### Java 中变量作用域的概念和用法 #### 1. 变量作用域概述Java 编程中,变量的作用域是指该变量可以在程序中的哪个范围被访问或使用。不同的变量型具有不同的作用域规则[^3]。 #### 2. 局部变量作用域 局部变量是在方法、构造函数或者语句块内部声明的变量。它们仅在其所在的代码块内有效,在代码块外部无法访问这些变量。例如: ```java public class LocalVar { public static void main(String[] args) { int outer = 1; { // 使用 {} 定义一个新的块 int inner = 2; // 块内的局部变量 System.out.println("inner (inside block) = " + inner); System.out.println("outer (inside block) = " + outer); } int inner = 3; // 新的局部变量,与上一个 `inner` 不同 System.out.println("inner (outside block) = " + inner); System.out.println("outer (outside block) = " + outer); } } ``` 上述代码展示了如何通过 `{}` 来创建新的块作用域,并说明了不同块之间的局部变量相互独立[^2]。 #### 3. 成员变量(实例变量) 成员变量是定义在中但在任何方法之外的变量。它们属于对象本身,而不是某个特定的方法。成员变量在整个范围内都是可见的,除非受到访问控制符(如 private 或 protected)的影响。例如: ```java class MemberVariableExample { int instanceVariable; void setInstanceVariable(int value) { this.instanceVariable = value; } int getInstanceVariable() { return instanceVariable; } } ``` 在此示例中,`instanceVariable` 是成员变量,它的作用域覆盖整个及其所有方法[^5]。 #### 4. 级变量(静态变量) 级变量也称为静态变量,通常使用 `static` 关键字修饰。这种型的变量不属于任何一个具体的对象,而是由本身拥有。因此,即使没有创建的对象,也可以通过名直接访问静态变量。例如: ```java class StaticVariableExample { static int staticVariable = 10; public static void main(String[] args) { System.out.println("Static variable accessed via classname: " + StaticVariableExample.staticVariable); StaticVariableExample example = new StaticVariableExample(); System.out.println("Static variable accessed via object reference: " + example.staticVariable); } } ``` 在这个例子中,无论是否创建了 `StaticVariableExample` 的实例,都可以通过名访问 `staticVariable`。 #### 5. 参数变量 参数变量是传递给方法的形式参数。它们的作用域限于方法体内部。一旦方法执行完毕,参数变量就会失效。例如: ```java void methodWithParameters(int parameter) { System.out.println("Parameter inside method: " + parameter); } // 方法结束后,parameter 失效 ``` 此代码片段显示了一个简单的带有参数的方法,其中 `parameter` 的作用域只存在于方法体内。 --- ### 总结 Java 中的变量根据其声明位置的不同而有不同的作用域。了解并正确应用这些作用域能够帮助开发者编写更清晰、高效的代码。局部变量局限于代码块;成员变量贯穿整个;静态变量则归属于而非具体对象;最后,形式参数的有效区域仅为对应的方法调用期间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值