Mun*_*uno 2 java nullpointerexception
我的toString方法中出现空指针异常错误.我不知道为什么.错误可以通过多种方式发生.最常见的是,声明了对象的引用,但对象本身仍未创建.我已声明并创建(初始化正确的单词?)Mycircle circle1 = new Mycircle ();和Mypoint center = new Mypoint ();
当我调用我的getter方法时,我怀疑我没有初始化任何字段,但事实并非如此.setter方法干净利落 - 我已成功输入值.这是否意味着我的getter方法可以访问某些非null值.
import java.util.Scanner;
public class MyCircle {
private Mypoint center;
private double radius;
Scanner input = new Scanner (System.in);
public MyCircle() {
radius = 0.0;
Mypoint center = new Mypoint ();
System.out.println("Enter coordinates here");
center.setCoordinateX(input.nextDouble());
center.setCoordinateY(input.nextDouble());
}
public String toString(MyCircle object) {
return "Circle @ " + "(" + object.center.getCoordinateX() + "," +
object.center.getCoordinateY() + ")" + ". Its radius is " +
object.radius;
}
public double calcArea(MyCircle object) {
double area = Math.pow(object.radius, 2) * Math.PI;
return area;
}
public static void main (String[]args) {
MyCircle circle1 = new MyCircle ();
circle1.radius = 3.0;
System.out.println(circle1.calcArea(circle1));
System.out.println(circle1.toString(circle1));
}
}
class Mypoint {
private double posX;
private double posY;
public void setCoordinateX(double x) {
posX = x;
}
public void setCoordinateY(double y) {
posY = y;
}
public double getCoordinateX() {
return posX;
}
public double getCoordinateY() {
return posY;
}
}
Run Code Online (Sandbox Code Playgroud)
在MyCircle构造函数中,您将创建一个名为centerhere 的局部变量:
Mypoint center = new Mypoint ();
Run Code Online (Sandbox Code Playgroud)
你可能想要的是初始化实例成员:
center = new Mypoint ();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2776 次 |
| 最近记录: |