关于Java的一个简单问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 12:04:16
我写作业的时候遇到了一些问题,其实挺简单的,可是我还是不懂,还希望大家帮帮忙啊。急用~~
编写两个类Point2D,Point3D来表示二维空间和三维空间的点,
(1)Point2D有两个整型成员变量x, y (分别为二维空间的X,Y方向坐标),Point2D的构造方法要实现对其成员变量x, y的初始化。
(2)Point3D是Point2D的直接子类,它有有三个整型成员变量x,y,z (分别为三维空间的X,Y,Z方向坐标),Point3D有两个构造方法:Point3D(int x,int y,int z)和Point3D(Point2D p,int z),两者均可实现对Point3D的成员变量x, y,z的初始化。
Point3d(Point2d p,z)在方法体里面如果写p.,出现的下拉菜单里面并没有x,y,z以及在Point2d里面定义的那些函数啊?这是怎么回事啊?是不是说明不能这样用?

大致上这么写。 protected这个type意思是所有子类也可以用这个变量。

class Point2D
{
public Point2D(int x, int y){
this.x = x;
this.y = y;
}
public int getX()
{return this.x;}
public int getY()
{return this.y;}

protected int x;
protected int y;
}
class Point3D extends Point2D
{
public Point3D(int x,int y,int z)
{ super(x, y);
this.z = z;
}
Point3D(Point2D p,int z)
{ this.x = p.getX();
this.y = p.getY();
this.z = z;
}
protected int z;
}

public class Point2D{
int x;
int y;

public Point2D() {
super();
}

public Point2D(int x, int y) {
super();
this.x = x;
this.y = y;
}
}

=========================

public class Point3D extends Point2D {
int z;
Point2D p;

public Point3D(int x, int y, int z) {
super(x, y);
this.z = z;
}