是否可以在同一个类中重写 Java 方法?
java 8object oriented programmingprogramming更新于 2025/6/27 1:52:17
构造函数
Java 中的构造函数类似于方法,它在创建类的对象时被调用,通常用于初始化类的实例变量。构造函数与其类同名,并且没有返回类型。
如果您未提供构造函数,编译器会为您定义一个,并使用默认值初始化实例变量。
您还可以通过构造函数接受参数,并使用给定值初始化类的实例变量,这些称为参数化构造函数。
示例
以下 Java 程序中有一个名为 student 的类,它使用默认构造函数和参数化构造函数初始化其实例变量 name 和 age。
import java.util.Scanner; class Student { private String name; private int age; Student(){ this.name = "Rama"; this.age = 29; } Student(String name, int age){ this.name = name; this.age = age; } public void display() { System.out.println("name: "+this.name); System.out.println("age: "+this.age); } } public class AccessData{ public static void main(String args[]) { //Reading values from user Scanner sc = new Scanner(System.in); System.out.println("Enter the name of the student: "); String name = sc.nextLine(); System.out.println("Enter the age of the student: "); int age = sc.nextInt(); Student obj1 = new Student(name, age); obj1.display(); Student obj2 = new Student(); obj2.display(); } }
输出
Enter the name of the student: Krishna Enter the age of the student: 20 name: Krishna age: 20 name: Rama age: 29
Getter 和 Setter 方法
定义 POJO/Bean 对象(或封装类的变量)时,我们通常
将所有变量声明为私有变量。
提供公共方法来修改和查看它们的值(因为您无法直接访问它们)。
用于设置/修改类的私有实例变量值的方法称为 Setter 方法,用于检索私有实例变量值的方法称为 Getter 方法。
示例
在下面的 Java 程序中,Student (POJO) 类有两个变量 name 和 age。我们通过将这些变量设置为私有并提供 setter 和 getter 方法对其进行了封装。
如果您想访问这些变量,您无法直接访问它们,而只能使用提供的 setter 和 getter 方法来读取和写入它们的值。您未提供这些方法的变量将对外部类完全隐藏。
import java.util.Scanner; class Student { private String name; private int age; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public void display() { System.out.println("name: "+getName()); System.out.println("age: "+getAge()); } } public class AccessData{ public static void main(String args[]) { //从用户读取值 Scanner sc = new Scanner(System.in); System.out.println("输入学生姓名:"); String name = sc.nextLine(); System.out.println("输入学生年龄:"); int age = sc.nextInt(); //调用 setter 和 getter 方法 Student obj = new Student(); obj.setName(name); obj.setAge(age); obj.display(); } }
输出
输入学生姓名: Krishna 输入学生年龄: 20 name: Krishna age: 20
正如您所观察到的,构造函数和 setter/getter 方法之间的主要区别是 −
构造函数用于初始化类的实例变量或创建对象。
setter/getter 方法用于分配/更改和检索类的实例变量的值。