Java中的变量

作者: Arvin Chen 分类: Java 来源: Break易站(www.breakyizhan.com)

变量是赋予内存位置的名称。它是程序中存储的基本单位。

  • 存储在变量中的值可以在程序执行期间更改。
  • 一个变量只是一个给内存位置的名字,所有对变量进行的操作都会影响内存的位置。
  • 在Java中,所有变量必须先声明才能使用。

如何声明变量?

我们可以在java中声明变量,如下所示:
Java中的变量

datatype:可以存储在此变量中的数据的类型。
variable_name:赋予变量的名称。
value:它是存储在变量中的初始值。

例子:

float simpleInterest; //声明浮点变量
int time = 10,speed = 20; //声明并初始化整型变量
char var ='h'; //声明和初始化字符变量

变量的类型

Java中有三种类型的变量:

  • 局部变量
  • 实例变量
  • 静态变量

现在让我们详细了解这些变量中的每一个。

  1. 局部变量:在块或方法或构造函数中定义的变量称为局部变量。

    • 这些变量是在输入块或函数被调用时创建的,并且在退出块或从函数返回时被销毁。
    • 这些变量的范围只存在于声明变量的块内。即我们只能在该块内访问这些变量。

    示例程序1:

    public class StudentDetails
    {
        public void StudentAge() 
        {   //local variable age
            int age = 0;
            age = age + 5;
            System.out.println("Student age is : " + age);
        }
     
        public static void main(String args[])
        {
            StudentDetails obj = new StudentDetails();
            obj.StudentAge();
        }
    }
    

    输出:

    Student age is : 5

    在上面的程序中,变量年龄是函数StudentAge()的局部变量。如果我们在StudentAge()函数外使用变量年龄,编译器将产生一个错误,如下面的程序所示。

    示例程序2:

    public class StudentDetails
    {
        public void StudentAge() 
        {   //local variable age
            int age = 0;
            age = age + 5;
        }
     
        public static void main(String args[]) 
        {   
            //using local variable age outside it's scope
            System.out.println("Student age is : " + age);
        }
    }
    
    

    输出:

    error: cannot find symbol
     " + age);
  2. 实例变量:实例变量是非静态变量,在任何方法,构造函数或块之外的类中声明。

    • 由于实例变量是在一个类中声明的,所以当这个类的一个对象被创建并且当这个对象被销毁时被销毁时,这些变量被创建。
    • 与局部变量不同,我们可以使用实例变量的访问说明符。如果我们没有指定任何访问说明符,那么将使用默认访问说明符。

    示例程序:

    import java.io.*;
    class Marks
    {   
        //These variables are instance variables.
        //These variables are in a class and are not inside any function
        int engMarks;
        int mathsMarks;
        int phyMarks;
    }
     
    class MarksDemo
    {
        public static void main(String args[])
        {   //first object
            Marks obj1 = new Marks();
            obj1.engMarks = 50;
            obj1.mathsMarks = 80;
            obj1.phyMarks = 90;
     
            //second object
            Marks obj2 = new Marks();
            obj2.engMarks = 80;
            obj2.mathsMarks = 60;
            obj2.phyMarks = 85;
     
            //displaying marks for first object
            System.out.println("Marks for first object:");
            System.out.println(obj1.engMarks);
            System.out.println(obj1.mathsMarks);
            System.out.println(obj1.phyMarks);
         
            //displaying marks for second object
            System.out.println("Marks for second object:");
            System.out.println(obj2.engMarks);
            System.out.println(obj2.mathsMarks);
            System.out.println(obj2.phyMarks);
        }
    }
    

    输出:

    Marks for first object:
    50
    80
    90
    Marks for second object:
    80
    60
    85

    正如你在上面的程序中看到的那样,变量engMarks,mathsMarks,phyMarks是实例变量。如果我们有上述程序中的多个对象,则每个对象都有自己的实例变量副本。从上面的输出可以清楚地看到,每个对象都有自己的实例变量副本。

  3. 静态变量:静态变量也称为类变量。

    • 这些变量的声明类似于实例变量,区别在于静态变量是在任何方法构造函数或块之外的类中使用static关键字声明的。
    • 与实例变量不同,每个类只能有一个静态变量的副本,而不管我们创建多少个对象。
    • 静态变量在程序执行开始时创建,并在执行结束时自动销毁。

    为了访问静态变量,我们不需要创建该类的任何对象,我们可以简单地访问变量:

    class_name.variable_name;

    示例程序:

    import java.io.*;
    class Emp {
     
       // static variable salary
       public static double salary;
       public static String name = "Harsh";
    }
     
    public class EmpDemo
    {
         public static void main(String args[]) {
           
          //accessing static variable without object         
          Emp.salary = 1000;
          System.out.println(Emp.name + "'s average salary:" + Emp.salary);
       }
         
    }
    

    输出:

    Harsh's average salary:1000.0

实例变量Vs静态变量

  • 每个对象都有它自己的实例变量副本,而每个类只能有一个静态变量的副本,而不管我们创建了多少个对象。
  • 使用一个对象在实例变量中所做的更改不会反映在其他对象中,因为每个对象都有自己的实例变量副本。在静态的情况下,更改将反映在其他对象中,因为静态变量对于类的所有对象都是通用的。
  • 我们可以通过对象引用来访问实例变量,并且可以使用类名直接访问静态变量。
  • 静态和实例变量的语法:
    class Example
        {
            static int a; //静态变量
            int b; //实例变量
        }

     

Java中变量的范围

变量的范围是变量可访问的程序的一部分。与C / C ++一样,在Java中,所有标识符都是词法(或静态)范围,变量的iescope可以在编译器时间确定并独立于函数调用堆栈。
Java程序是以类的形式组织的。每个班级都是一些软件包的一部分。Java范围规则可以包含在以下类别中。

  • 成员变量(类级范围)
  • 局部变量(方法级别范围)
  • 循环变量(块范围)

Java中变量的范围这篇文章详细地讲解了每个变量的范围,以及作用。

  •   本文标题:Java中的变量 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/java/3778.html

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注

    更多阅读