public class swap
{
public class Point
{
public int x=0;
public int y=0;
public Point(int a, int b)
{
this.x = a;
this.y = b;
}
public void swapxy(Point p)
{
int t;
t = p.x;
p.x = p.y;
p.y = t;
}
public String ToString()
{
return ("x="+x+" y="+y);
}
}
public static void main(String[] args)
{
Point pxy = Point(10,20);
pxy.swapxy(pxy);
System.out.println(pxy);
}
}
我得到的方法是Point pxy = Point(10,20);
错误的未定义错误?
答案 0 :(得分:3)
您忘记了new
关键字:
Point pxy = new Point(10,20);
↑↑↑
答案 1 :(得分:3)
你忘记在" =";
之后写新的正确的方法是:
Point pxy = new Point(10,20);
哦,重点是您要使用的类是Swap的innerClass,因此您必须在使用它之前对其进行实例化。
如果你不需要在内部类中,请在一个单独的文件中声明这个类,或者你可以像下面的代码一样:
public class Swap {
//add static in the class to access it in a static way
public static class Point
{
//change the attributes to private, this is a good practice
private int x=0;
private int y=0;
public Point(int a, int b)
{
this.x = a;
this.y = b;
}
public void swapxy(Point p)
{
int t;
t = p.x;
p.x = p.y;
p.y = t;
}
public String ToString()
{
return ("x="+x+" y="+y);
}
}
public static void main(String[] args){
Swap.Point pxy = new Swap.Point(10,20);
System.out.println(pxy.ToString());
}
}
答案 2 :(得分:1)
正确的方式:Point pxy = new Point(10,20);
答案 3 :(得分:1)
要创建实例,请使用' new'关键字