题解 | #修改Data类的定义#
修改Data类的定义
http://www.nowcoder.com/practice/bb89f943588c4a248675881f2e5cc761
这道题考验的是对封装的理解
Data data = new Data(x, y);不能实例化是因为构造函数的修饰符把它变成私有化,只需要修改成公开的就可以了 需要理解 private 和 public 修饰符的理解
什么是封装呢,就是利用抽象数据类型对操作和操作的数据进行封装,只需要对外公开接口来访问数据 说的有点抽象,我现在就来小白点讲: Data类里面有两个属性(数据) x和y,但是任何人都可以实例化这个类,然后通过对象直接来使用数据, 那么直接使用数据的坏处是什么呢?我们无法过滤敏感数据,不知道数据是否安全,我们需要把数据进行封装起来, 只需要对外开放赋值接口和获取接口就可以了。 在赋值接口里面可以进行各种各样的判断或者过滤掉不安全的数据
比如说:要做除法,那么就要在赋值接口判断分母不能为0,如果为0就直接抛出异常
好的,这就是封装的原理。
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;
}
}