gpt4 book ai didi

java - 意外输出 NULL

转载 作者:行者123 更新时间:2023-12-01 17:14:33 25 4
gpt4 key购买 nike

我正在研究继承和多态性。我只得到这个输出,而不是显示所需的点。

但是单独打印点可以正常工作。打印行会产生问题。

输出:连接 null null 的行

package serial;

import java.io.*;

class Point
{
private int x,y;
Point(int x,int y)
{
this.x = x;
this.y = y;
}
int getX()
{
return x;
}
int getY()
{
return y;
}
void setX(int x)
{
this.x = x;
}
void setY(int y)
{
this.y = y;
}
public String toString()
{

//String s = "Points joining line are ("+p1.getX()+","+p1.getY()+") and ("+p2.getX()+","+p2.getY()+")";
return "(" + x + "," + y + ")";
}
}

class Line
{
private Point p1, p2;
Line()
{

}
Line(Point p1, Point p2)
{
p1 = new Point(2,2);
p2 = new Point(3,3);
}
void setP1(Point p1)
{
p1.setX(2);
p1.setY(2);
}
Point getP1()
{
return p1;
}
void setP2(Point p2)
{
p2.setX(3);
p2.setY(3);
}
Point getP2()
{
return p2;
}
public String toString()
{
String str;
str = "line joining "+this.p1+" "+this.p2+"";
return str;

}
}
public class chumma {
public static void main(String args[])
{
Point p1 = new Point(2,2);
Point p2 = new Point(3,3);
Line l1 = new Line(p1,p2);
//l1.setP1(p1);
//l1.setP2(p2);
System.out.println(l1);

}

}

最佳答案

您的构造函数重新分配本地引用 p1p2,而不是分配实例变量。由于实例变量未分配,Java 为它们提供了默认值 null

添加 this. 以引用实例变量。

 Line(Point p1, Point p2)
{
this.p1 = p1;
this.p2 = p2;
}

您还需要在无参数构造函数中为这些变量分配一些内容。

关于java - 意外输出 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22717608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com