Java中的变量
Java中的Java是一个数据容器,在Java程序执行期间保存数据值。每个变量都被分配了一个数据类型,该数据类型指定了它可以保存的值的类型和数量。变量是数据的内存位置名称。
变量是赋予内存位置的名称。它是程序中存储的基本单位。
- 存储在变量中的值可以在程序执行期间更改。
- 变量只是内存位置的名称,对变量执行的所有操作都会影响该内存位置。
- 在Java中,所有变量都必须在使用前声明。
如何声明变量?
我们可以在Java中声明变量,如下图所示作为视觉辅助。
从图中可以很容易地看出,在声明一个变量时,我们需要注意两件事:
1. 数据类型:可以存储在此变量中的数据类型。
2. Dataname:给变量命名。
这样,只能给内存位置起一个名字。可以通过两种方式为其赋值:
- 变量初始化
- 通过输入赋值
如何初始化变量?
可以借助以下 3 个组件来感知它:
- datatype :可以存储在此变量中的数据类型。
- variable_name :赋予变量的名称。
- value :它是存储在变量中的初始值。
插图:
float simpleInterest;
// Declaring float variable
int time = 10, speed = 20;
// Declaring and Initializing integer variable
char var = 'h';
// Declaring and Initializing character variable
Java中的变量类型
现在让我们讨论不同类型的变量,它们被列为 如下:
- 局部变量
- 实例变量
- 静态变量
让我们详细讨论一下这里提到的每个变量的特征。
1. 局部变量
在块、方法或构造函数中定义的变量称为局部变量。
- 这些变量在进入块时创建,或者函数在退出块后或调用从函数返回时被调用和销毁。
- 这些变量的作用域只存在于声明变量的块中。即,我们只能在该块内访问这些变量。
- 在定义的范围内使用局部变量之前,必须对其进行初始化。
Java
/*package whatever //do not write package name here */
// Contributed by Shubham Jain
import java.io.*;
class GFG {
public static void main(String[] args)
{
int var = 10; // Declared a Local Variable
// This variable is local to this main method only
System.out.println("Local Variable: " + var);
}
}
Java
/*package whatever //do not write package name here */
import java.io.*;
class GFG {
public String geek; // Declared Instance Variable
public GFG()
{ // Default Constructor
this.geek = "Shubham Jain"; // initializing Instance Variable
}
//Main Method
public static void main(String[] args)
{
// Object Creation
GFG name = new GFG();
// Displaying O/P
System.out.println("Geek name is: " + name.geek);
}
}
Java
/*package whatever //do not write package name here */
import java.io.*;
class GFG {
public static String geek = "Shubham Jain"; //Declared static variable
public static void main (String[] args) {
//geek variable can be accessed withod object creation
//Displaying O/P
//GFG.geek --> using the static variable
System.out.println("Geek Name is : "+GFG.geek);
}
}
输出
Local Variable: 10
2. 实例变量
实例变量是非静态变量,在任何方法、构造函数或块之外的类中声明。
- 由于实例变量是在类中声明的,因此这些变量在创建类的对象时创建,并在对象被销毁时销毁。
- 与局部变量不同,我们可以对实例变量使用访问说明符。如果我们不指定任何访问说明符,则将使用默认访问说明符。
- 实例变量的初始化不是强制性的。它的默认值为 0
- 实例变量只能通过创建对象来访问。
Java
/*package whatever //do not write package name here */
import java.io.*;
class GFG {
public String geek; // Declared Instance Variable
public GFG()
{ // Default Constructor
this.geek = "Shubham Jain"; // initializing Instance Variable
}
//Main Method
public static void main(String[] args)
{
// Object Creation
GFG name = new GFG();
// Displaying O/P
System.out.println("Geek name is: " + name.geek);
}
}
输出
Geek name is: Shubham Jain
3. 静态变量
静态变量也称为类变量。
- 这些变量被声明为实例变量。不同之处在于静态变量是在任何方法构造函数或块之外的类中使用 static 关键字声明的。
- 与实例变量不同,无论我们创建了多少对象,每个类只能拥有一个静态变量的副本。
- 静态变量在程序执行开始时创建,并在执行结束时自动销毁。
- 静态变量的初始化不是强制性的。它的默认值为 0
- 如果我们像实例变量一样访问静态变量(通过对象),编译器将显示警告消息,这不会停止程序。编译器会自动将对象名替换为类名。
- 如果我们在没有类名的情况下访问静态变量,编译器会自动附加类名。
Java
/*package whatever //do not write package name here */
import java.io.*;
class GFG {
public static String geek = "Shubham Jain"; //Declared static variable
public static void main (String[] args) {
//geek variable can be accessed withod object creation
//Displaying O/P
//GFG.geek --> using the static variable
System.out.println("Geek Name is : "+GFG.geek);
}
}
输出
Geek Name is : Shubham Jain
实例变量 Vs 之间的差异。静态变量
现在让我们讨论一下 Instance 变量 Vs 之间的区别。静态变量
- 每个对象都将拥有其实例变量的副本,而无论我们创建多少个对象,每个类只能拥有一个静态变量的副本。
- 使用一个对象对实例变量所做的更改不会反映在其他对象中,因为每个对象都有自己的实例变量副本。在静态的情况下,更改将反映在其他对象中,因为静态变量对类的所有对象都是通用的。
- 我们可以通过对象引用来访问实例变量,而静态变量可以通过类名直接访问。
语法:静态和实例变量
class GFG
{
// Static variable
static int a;
// Instance variable
int b;
}
必读:
- Java中的变量声明规则
- Java中的变量范围
- C++和Java中static关键字的比较
- Java中是否允许使用静态局部变量?
- Java中的实例变量隐藏