题解 | 修改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练习#
全部评论

相关推荐

狄文君:多段项目经历 + 专业技能拉满,这简历很能打,坐等好消息!
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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