题解 | 修改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 只是参数的自赋值,成员变量始终为默认值,完全违背了构造器的设计初衷;

#Java练习#
全部评论

相关推荐

03-31 00:39
门头沟学院 C++
牛客20485985...:抱抱😘,首先你还有春招,然后就算这时候没上岸也没关系,大部分人都是这样,毕业了再找也成,最后工作只是生活的一小部分,找到工作也不是一个必须的事情。不要气馁不要焦虑你只是陷入了短暂的低谷,你也一直有退路
点赞 评论 收藏
分享
04-15 13:42
四川大学 Java
蹲蹲offerrr:快投吧,有点晚现在
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务