预定程序员 2023-08-16 16:56 采纳率: 67.4%
浏览 5
已结题

Java连续调用构造方法,基础语法问题

问题:1. new Point()最终执行完结果是一个(0,0)的坐标,这样写的意义就是给个初值吗?
2. 输出语句中new Point(5).y是什么意思?这是什么语法?为什么输出结果就是一个0,也不是坐标形式?
3.最后的new Point(5,6)是创建一个点,然后也不输出,就这样?那这样写有什么用


public class Point {
    int x,y;
    public Point()
    {
        this(0);
    }
    public Point(int x)
    {
        this(x,0);
    }
    public Point(int x,int y)
    {
        this.x=x;
        this.y=y;
    }
    public static void main(String[] args) {
        new Point();
        System.out.println(new Point(5).y);
        new Point(5,6);
    }

}

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-16 18:41
    关注

    【以下回答由 GPT 生成】

    问题解答

    1. new Point() 最终执行完的结果是一个坐标(0,0),请问这样的写法是为了给坐标一个初始值吗?

    是的,new Point() 的构造方法会调用 this(0),然后 this(0) 又会调用 this(x, 0),最终实际初始化一个坐标为 (0, 0) 的对象。

    2. 在输出语句中,new Point(5).y 是什么意思?这是什么语法?为什么输出结果是0而不是一个坐标?

    new Point(5) 创建了一个 x 坐标为 5 的 Point 对象。而 new Point(5).y 是指这个 Point 对象的 y 值。这使用了方法链调用的语法,先调用构造方法 new Point(5) 创建对象,然后该对象的属性 y 被访问输出。

    在构造方法 new Point(int x) 中,由于没有为 y 指定值,默认值为 0。因此,当我们只传入 x 的参数时,y 的值就是默认值 0。所以输出结果是 0。

    3. 最后的 new Point(5,6) 是创建一个点,为什么没有输出结果?这样的写法有什么用处?

    new Point(5, 6) 会创建一个 x 坐标为 5,y 坐标为 6 的 Point 对象。虽然代码中没有输出结果,但其实在执行 new Point(5,6); 的时候仍然创建了一个对象并占用了内存。

    这样的写法有用处,例如当我们只需创建一个对象并对其进行操作,而不需要显示该对象的某些属性或结果时,我们可以使用这种写法。


    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月19日
  • 已采纳回答 8月17日
  • 创建了问题 8月16日

悬赏问题

  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果
  • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
  • ¥15 如何根据一个截图编写对应的HTML代码
  • ¥15 stm32标准库的PID角度环