在 Java 中,初始化类的实例变量有哪些方法?


您可以使用 final 方法、构造函数或实例初始化块来初始化类的实例变量。

Final 方法

当您将方法声明为 final 时,就不能 **重写** 它。即,您不能在子类中为父类的 final 方法提供实现。

也就是说,将方法声明为 final 的目的是防止从外部(子类)修改该方法。您还可以使用这些 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

更新于: 2019年9月6日

3K+ 浏览量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.