“你好,我最喜欢的学生。现在,我要向你介绍变量的可见性。”

“嗯?变量可以隐身吗?”

“不。变量的‘可见性’(或作用域)是指代码中可以引用该变量的位置。你可以在程序中的任意位置使用某些变量,但其他某些变量只能在其类中使用,还有一些变量只能在一种方法中使用。

“例如,在声明变量之前不能使用它。”

“有道理。”

“下面是几个示例:”


public class Variables

{
   private static String TEXT = "The end.";
  ┗━━━━━━━━━━━━━━┛
   public static void main (String[] args)
                          ┗━━━━━━━┛
  {
     System.out.println("Hi");
     String s = "Hi!";
   ┏┗━━━━┛
    System.out.println(s);
    if (args != NULL)
    {
       String s2 = s;
      ┗━━━━┛
   
      System.out.println(s2);
     
    }
    Variables variables = new Variables();
    System.out.println(variables.instanceVariable);
    System.out.println(TEXT);
   
  }
 
   public String instanceVariable;
  ┗━━━━━━━━━━━━━━━┛
   public Variables()
   {
      instanceVariable = "Instance variable test.";
   }
}

1.在方法中声明的变量从其声明开始到方法结束一直存在(可见)。

2.在代码块中声明的变量在代码块结束之前一直存在。

3.方法的参数在该方法中随处可在。

4.对象中的变量在包含它们的对象的整个生命周期中都存在。变量的可见性也可以由特殊的访问修饰符定义:publicprivate

5.static(类)变量在程序运行的整个过程中都存在。变量的可见性也可以由访问修饰符定义。

“我喜欢图片。它们使一切变得清晰。”

“乖孩子,阿米戈。我一直觉得你是个聪明人。”

“我还要向你介绍‘访问修饰符’。别怕。它们一点都不复杂。在这里你会看到单词 publicprivate。”

“我不害怕。只是我的眼睛在抽搐。”

“我相信你。你可以管理其他类如何访问(或看到)某个类的方法和变量。你只能为每个方法或变量分配一个访问修饰符。

1. public 访问修饰符。

你可以在程序中的任意位置使用标有 public 修饰符的变量、方法或类。这是最高的访问级别 – 这里没有任何限制。

2. private 访问修饰符。

对于标有 private 修饰符的变量或方法,你只能从声明该变量或方法的类中使用它们。对于所有其他类,标记的方法或变量将不可见,就像不存在一样。这是最高的封闭级别 – 只能在它自己的类中访问。

3.无修饰符。

如果变量或方法未标有任何修饰符,则被视为标有“默认”访问修饰符。此类变量和方法对于声明它们的包中的所有类都是可见的。并且仅对这些类可见。这种访问级别有时称为“package-private”访问,因为对这些变量和方法的访问对于包含其类的整个包是开放的。

下表总结了我们讨论的内容:”

修饰符 访问位置...
自己的类 自己的包 任意类
private
无修饰符 (package-private)
public