CodeGym /Java 课程 /Java 语法 /变量的可见性

变量的可见性

Java 语法
第 2 级 , 课程 4
可用

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

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

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

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

“有道理。”

“下面是几个示例:”


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
评论 (30)
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION
简默 级别 15,Central District,Hong Kong
8 十一月 2023
Anonymous #11374464 级别 9,San Jose
28 七月 2023
方法中定义的变量在方法以外可见吗?例如上述例子的main方法中,String s = "你好!" 这个变量在main方法以外的地方(例如在这个class中还有一个别的方法)还可见可用吗?
Henry Lee 级别 6,Tokyo,Japan
31 七月 2023
3.方法的参数在该方法中随处可在。
lmsm47 级别 16,Guangzhou,China
6 十月 2022
System.out.println("I can not understand it !!! It's so difficult !!!")
lmsm47 级别 16,Guangzhou,China
6 十月 2022
supplement a " ; " before that.
8 二月 2022
default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。 private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类) public : 对所有类可见。使用对象:类、接口、变量、方法 protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
Rick Huang 级别 3,Taiwan, Province of China
18 十一月 2022
Correct
9527 级别 11,China,China
6 一月 2022
default
龚凌江 级别 13,China,China
12 十二月 2021
受保护的 还有这个权限
Anonymous #10865265 级别 9,Zhengzhou,China
8 十一月 2021
mark
Archie 级别 15,China
28 十月 2021
权限真的太重要了,后续的功能都要靠权限来维持
小叮噹 级别 3,Tianjin,China
7 十月 2021
jiayou
自证预言 级别 4,Nanjing,China
3 九月 2021
访问修饰符,你想不想让其他的类用它,或者和自己的包相同的用它,可以进行选择