题解 | 修改Data类的定义
修改Data类的定义
https://www.nowcoder.com/practice/bb89f943588c4a248675881f2e5cc761
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNextInt()) {
int x = scanner.nextInt();
int y = scanner.nextInt();
Data data = new Data(x, y);
System.out.println(data.getX() + data.getY());
}
}
}
class Data {
private int x;
private int y;
public Data(int x, int y) {
this.x = x;
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
1、访问控制层面:
类的属性私有化(private)是封装的基础,而构造器、getter 方法必须用 public 修饰 —— 错误代码中缺失 public,直接破坏了 “外部可实例化、可访问属性” 的封装规则,导致测试类无法和 Person 类交互;
2、对象初始化层面:
构造器的核心职责是初始化成员变量,当参数名与成员变量名同名时,必须通过 this 关键字明确指向成员变量 —— 错误代码中直接 x = x 只是参数的自赋值,成员变量始终为默认值,完全违背了构造器的设计初衷;
查看23道真题和解析