Java 检查实例变量的可访问性

Java 检查实例变量的可访问性

静态方法是使用static关键字定义的,但是我们不使用static关键字来声明实例变量。通常,我们无法通过静态方法访问实例变量。

在本文中,我们将创建一个实例变量,然后通过静态方法来检查该实例变量的可访问性。首先让我们了解静态方法和实例变量。

实例变量

在编程语言的上下文中,变量是包含任何类型数据的容器的名称。我们可以说它是一个存储单元。

声明变量的语法

Data_Type nameOfvariable = values [optional];

变量可以在声明时初始化,也可以在整个程序中需要时进行初始化。但是值必须与在声明时指定的数据类型相同。

实例

String str; 
// only declaration
int price = 59; 
// declaration and initialization
str = “Tutorix”; 
// initialization of ‘str’

实例变量是非静态变量的一种。它们声明在类的内部,但在该类的每个方法作用域之外。它们可以被定义的类中的所有方法访问。它们可以是public、private、protected或默认(default)的。如果我们没有指定任何访问修饰符,那么变量将使用默认的访问修饰符进行初始化。

静态方法

静态方法使用非访问修饰符static关键字来定义。通常,我们通过创建该类的对象来调用方法,但是静态方法可以在不使用对象的情况下调用。我们只能使用它们的类名来调用它们,因为静态方法属于类,不属于类的实例。

调用静态方法

Class_name.static_method_name

例如,大多数内置类Math的成员都是静态的。我们可以直接使用它们而不需要创建其对象。

示例

public class Main {
   public static void main( String[] args ) {
      double x = 6.55;
      double y = 4.32;
      System.out.println(" Ceil value of x: " + Math.ceil(x) );
      System.out.println(" Floor value of y: " + Math.floor(y) );
      System.out.println(" Value of PI = " + Math.PI);
   }
}

输出

Ceil value of x: 7.0
Floor value of y: 4.0
Value of PI = 3.141592653589793

上述示例展示了Math类的静态方法ceil()和floor()的使用。我们可以看到,在我们的程序中直接使用了它们,而没有创建Math类的任何对象。

通过静态方法检查实例变量的可访问性

我们在之前的文章中已经提到,我们不能通过静态方法直接访问实例变量,只能通过创建一个类的实例或对象来访问它们。

示例

下面的程序演示了我们是否可以通过静态方法main()访问实例变量。

public class Main {
   public String str = "Tutorialspoint"; 
   public static void main(String []args) {
      System.out.println(" Accessing instance variable " + str);
   }
}

如果我们尝试运行上面的代码,会得到一个错误。

输出

Main.java:4: error: non-static variable str cannot be referenced from a static context
   System.out.println(" Accessing instance variable " + str);
                                                        ^
1 error

示例

以下程序示例演示了如何通过静态方法访问实例变量。我们将创建一个Main类的对象‘obj’,通过使用这个对象,我们可以访问变量‘str’。

public class Main {
   public String str = "Tutorialspoint"; 
   public static void main(String []args) {
      Main obj = new Main(); 
      // creating object using new keyword
      // To access the instance variable ‘str’
      System.out.println(" Accessing instance variable: " + obj.str);
   }
}

输出

Accessing instance variable: Tutorialspoint

结论

在本文中,我们了解了实例变量和静态方法的概念。同时,我们还讨论了通过Java程序静态方法访问实例变量的可访问性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程