在 Java 中,有多少种方法可以初始化类的实例变量?
java 8object oriented programmingprogramming
您可以使用 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