在 Java 中,有多少种方法可以初始化类的实例变量?
java 8object oriented programmingprogramming更新于 2025/11/7 15:40:17
您可以使用 final 方法、构造函数或实例初始化块来初始化类的实例变量。
最终方法
每当您将方法设为最终方法时,您都无法覆盖它。即,您无法从子类中提供对超类最终方法的实现。
即,将方法设为最终方法的目的是防止从外部(子类)修改方法。您还可以使用这些最终方法来初始化实例变量。
示例
import java.util.Scanner;
public class FinalMethods {
int age = getAge();
String name = getName();
static Scanner sc = new Scanner(System.in);
public static final int getAge() {
System.out.println("Enter age value");
return sc.nextInt();
}
public static final String getName() {
System.out.println("Enter name value");
return sc.next();
}
public void display(){
System.out.println("Name and age values: ");
System.out.println(this.name);
System.out.println(this.age);
}
public static void main(String args[]){
FinalMethods obj = new FinalMethods();
obj.display();
}
}
输出
Enter age value 25 Enter name value Krishna Name and age values: Krishna 25
构造函数
构造函数用于在创建对象时对其进行初始化。它在语法上类似于方法。不同之处在于构造函数与其类同名,并且没有返回类型。
无需显式调用构造函数,这些构造函数会在实例化时自动调用。
示例
public class Test {
String name;
int age;
public Test(String name, int age){
this.name = name;
this.age = age;
}
public static void main(String args[]) {
Test obj = new Test("Krishna", 25);
System.out.println("Name: "+obj.name);
System.out.println("Age: "+obj.age);
}
}
输出
Name: Krishna Age: 25
实例初始化块
与静态块类似,Java 也提供实例初始化块,用于初始化实例变量,作为构造函数的替代。
每当您定义初始化块时,Java 都会将其代码复制到构造函数。因此,您也可以使用这些在类的构造函数之间共享代码。
示例
public class Student {
String name;
int age;
{
name = "Krishna";
age = 25;
}
public static void main(String args[]){
Student std = new Student();
System.out.println(std.age);
System.out.println(std.name);
}
}
输出
25 Krishna

