无法从静态上下文中引用非静态 变量 this的问题,求指导
import java.util.Scanner;
import java.lang.Math;
public class rrrr
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
Point q=new Point(0,0,0);
Point w=new Point(1,1,1);
Point e=new Point();
Point r=new Point();
q.setPoint(w);
System.out.println("请按x,y,z的顺序依次输入两个点的坐标,已回车结束。");
e.x=sc.nextInt();
e.y=sc.nextInt();
e.z=sc.nextInt();
r.x=sc.nextInt();
r.y=sc.nextInt();
r.z=sc.nextInt();
q.length(e,r);
}
//static class Point
class Point
{
private int x;
private int y;
private int z;
public Point(){}
public Point(int a,int b,int c)
{
x=a;
y=b;
z=c;
}
public Point setPoint(Point s)//修改点位置
{
s.x=x;
s.y=y;
s.z=z;
return s;
}
public Point length(Point a,Point b)
{
int X,Y,Z,len;
X=(int)Math.pow(a.x-b.x,2);
Y=(int)Math.pow(a.y-b.y,2);
Z=(int)Math.pow(a.z-b.z,2);
len=(int)Math.sqrt(X+Y+Z);
System.out.println("两点间的距离为:"+len);
return a;
}
}
}
我的程序是这样的。为什么把Point类前加上static就对了啊?怎么理解import java.util.Scanner;
import java.lang.Math;
public class rrrr
{
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
Point q=new Point(0,0,0);
Point w=new Point(1,1,1);
Point e=new Point();
Point r=new Point();
q.setPoint(w);
System.out.println("请按x,y,z的顺序依次输入两个点的坐标,已回车结束。");
e.x=sc.nextInt();
e.y=sc.nextInt();
e.z=sc.nextInt();
r.x=sc.nextInt();
r.y=sc.nextInt();
r.z=sc.nextInt();
q.length(e,r);
}
//static class Point
class Point
{
private int x;
private int y;
private int z;
public Point(){}
public Point(int a,int b,int c)
{
x=a;
y=b;
z=c;
}
public Point setPoint(Point s)//修改点位置
{
s.x=x;
s.y=y;
s.z=z;
return s;
}
public Point length(Point a,Point b)
{
int X,Y,Z,len;
X=(int)Math.pow(a.x-b.x,2);
Y=(int)Math.pow(a.y-b.y,2);
Z=(int)Math.pow(a.z-b.z,2);
len=(int)Math.sqrt(X+Y+Z);
System.out.println("两点间的距离为:"+len);
return a;
}
}
}
为什么把point类前面加上static就对了啊?无法从静态上下文中引用非静态 变量 this这个问题怎么理解?
新手求指导