Java 中的变量

原文:https://www.studytonight.com/java/variable.php

在本教程中,我们将学习 Java 变量、各种类型的变量以及理解 Java 变量的代码示例。

什么是变量?

当我们想存储任何信息时,我们把它存储在计算机的一个地址中。我们没有记住存储信息的复杂地址,而是命名了那个地址。地址的命名被称为变量。变量是内存位置的名称。

换句话说,变量是在程序执行期间用来存储任何类型的值的名称。

要在 Java 中声明变量,我们可以使用以下语法

 datatype variableName;

这里,数据类型指的是变量的类型,可以是任何类型: int,float 等。变量名称可以是任何类似的: empId、金额、价格等。

Java 编程语言主要定义了三种变量。

  1. 实例变量
  2. 静态变量(类变量)
  3. 局部变量

Java 中的实例变量

实例变量是在类内部声明但在任何方法、构造器或块外部声明的变量。实例变量也是对象变量,通常称为字段或属性。它们被称为对象变量。每个对象都有自己的变量副本,因此,如果一个对象改变了变量的值,它不会影响实例变量。

class Student
{
    String name;
    int age;
}

Here name and age are instance variable of Student class.


Java 中的静态变量

Static 是用 static 关键字声明的类变量。静态变量只初始化一次。静态变量也与 final 关键字一起用于声明常量。

class Student
{
    String name;
    int age;
    static int instituteCode=1101;
}

这里 instituteCode 是一个静态变量。学生类的每个对象将共享 instituteCode 属性。

静态变量的附加点:

  • 静态变量也称为类变量。
  • 静态意味着保持不变。
  • 在 Java 中,这意味着它对于为该类创建的所有实例都是常量。
  • 不需要从对象调用静态变量。
  • 类名. static_variable_name 调用

注意:静态变量永远不能在方法内部定义,即它永远不能是局部变量。

示例:

假设您创建了两个学生类的对象,并且从一个对象更改了静态变量的值。现在,当您从其他对象打印它时,它将显示已更改的值。这是因为它被声明为静态的,也就是说,它对于创建的每个对象都是不变的。

package studytonight;

class Student{
    int a;
    static int id = 35;

    void change(){

        System.out.println(id);
    }
}

public class StudyTonight {
    public static void main(String[] args) {

        Student o1 = new Student();
        Student o2 = new Student();

        o1.change();

        Student.id = 1;
        o2.change();
    }
}

35 1


Java 中的局部变量

局部变量在方法、构造器或块中声明。局部变量在方法、构造器或块开始时初始化,一旦结束将被销毁。局部变量驻留在栈中。局部变量不使用访问修饰符。

float getDiscount(int price)
{
 float discount;
 discount=price*(20/100);
 return discount;
}

Here discount is a local variable.

Java 中的变量范围

变量的范围决定了它在整个程序中的可访问性。正如我们所看到的,变量是不同的类型,因此它们有自己的范围。

局部变量:局部变量的作用域仅限于声明它的块。例如,在函数中声明的变量只能在该函数中访问。

实例变量:实例变量的范围取决于访问修饰符(公共,私有,默认)。如果变量被声明为私有,那么它只能在类内访问。

如果变量被声明为公共,那么所有人和整个应用都可以访问它。

如果变量被声明为缺省值,则可以在同一个包中访问它。

有关可访问性的更多详细信息,您可以参考我们的详细教程。点击此处了解更多可变范围

示例:

在这个例子中,我们创建了两个变量 ai ,第一个在函数内部声明,第二个在循环内部声明。这两个变量都有自己的声明范围,因此在块外访问会报告错误。

    public class HelloWorld {

    public static void main(String[] args) {

        int a = 10;

        for(int i = 0; i<5; i++) {
            System.out.println(i);
        }

        System.out.println("a = "+a);
        System.out.println("i = "+i); // error

    }

}

错误:找不到符号 I