题解 | #修改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;
    }

}
全部评论

相关推荐

10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务