与java中的point类和driver类混淆

与java中的point类和driver类混淆,java,class,point,Java,Class,Point,基本上,我必须为它编写一个Point类和一个驱动程序类,这也在eclipse中完成。我遇到的问题是,当我尝试调用“pointX和pointY”变量来更改驱动程序类中的点的值时,我不断地得到一个错误。在我的指令中,变量必须在PointClass中声明为private,但是当试图在PointTest类中调用它们时会出现问题。此外,我还不清楚PointClass中的指针/get&set方法是否正确编写 为了澄清我的要求,以下是我的说明摘要: 写一个Point类。Point类应作为抽象数据类型编写 包括

基本上,我必须为它编写一个Point类和一个驱动程序类,这也在eclipse中完成。我遇到的问题是,当我尝试调用“pointX和pointY”变量来更改驱动程序类中的点的值时,我不断地得到一个错误。在我的指令中,变量必须在PointClass中声明为private,但是当试图在PointTest类中调用它们时会出现问题。此外,我还不清楚PointClass中的指针/get&set方法是否正确编写

为了澄清我的要求,以下是我的说明摘要:

  • 写一个Point类。Point类应作为抽象数据类型编写
  • 包括以下实例变量:

    a。表示x坐标的整数

    b。表示y坐标的整数

    c。程序中的实例变量只能在Point类内部直接访问

  • 点类有2个构造函数

    a。无参数构造函数,将两个实例变量都设置为10(十)

    b。具有两个参数(两个实例变量各一个)的构造函数将实例变量设置为这些参数值

  • 包括步骤2中标识的两个实例变量的get和set方法

  • 在Point类中包括一个toString方法
  • 编写一个名为PointTest的客户端程序
  • 在PointTest类中,执行以下操作

    • 使用无参数构造函数创建Point类型的对象。 称之为点1

      使用two参数创建第二个Point类型的对象 构造器。这就是第二点。使用x=11,y=24的值

      调用后显示点1实例变量 点1.toString()

      调用后显示点2实例变量 点2.toString()

      使用x的set方法将点1的x值更改为35 点1的值

      调用后显示点1实例变量 点1.toString()

      调用后显示点2实例变量 点2.toString()

      使用y的set方法将点2的y值更改为13 第2点的值

      调用后显示点1实例变量 点1.toString()

      调用后显示点2实例变量 点2.toString()

  • Point类的代码如下所示

        public class PointClass {
    
        private int pointX;     //set instance variables
        private int pointY;
    
    
        public void setPoints() {       //method to set the points values
            pointX = 10;
            pointY = 10;
    
        }
    
        public void getPoints(int x, int y){    //method to set arguments to instance variables 
            pointX = x;
            pointY = y;
        }
    
        /////////////////////////////////////////////////
    
        public int getPointX() {
            return pointX;
        }
    
        public void setPointX(int x) {
            this.pointX = x;
        }
    
        ///////////////////////////////////////////////
    
        public int getPointY() {
            return pointY;
        }
    
        public void setPointY(int y) {
            this.pointY = y;
        }
    
        ///////////////////////////////////////////////
    
        public String toString(){   //toString method to display the values
            return "x = " + pointX + "y = " + pointY;
        }
    
    }
    
    import java.awt.Point;
    
    public class PointTest{
    
        public static void main(String[] args){
    
            PointClass p = new PointClass();
    
    
            System.out.print("Lab1 Point");
            System.out.print("January 16, 2014");
    
            Point point1 = new Point();             //set point1 as no argument 
            Point point2 = new Point(11,24);       // set point2 as argument with x and y
    
            System.out.print(point1.toString());  //display point1 from toString method
            System.out.print(point2.toString()); //display point2 from toString method
    
            point1 = pointX(35);
    
            System.out.print(point1.toString());  
            System.out.print(point2.toString()); 
    
            point2.pointY(13);
    
            System.out.print(point1.toString());  
            System.out.print(point2.toString()); 
        }
    
    }
    
    public class PointClass {
    
        //Set instance variables
        private int pointX;
        private int pointY;
    
        //Default Constructor - Starts at (0, 0)
        public PointClass() {
            this.pointX = 0;
            this.pointY = 0;
        }
    
        //Constructor with specified values
        public PointClass(int x, int y){
            this.pointX = x;
            this.pointY = y;
        }
    
        //Setters
        public void setPointX(int x) { 
            this.pointX = x; 
        }
        public void setPointY(int y) {
            this.pointY = y;
        }
    
        //Getters
        public int getPointX() { 
            return this.pointX;
        }
        public int getPointY() {
            return this.pointY;
        }
    
        //toString for use with System.out.println()
        public String toString() {
            return "x = " + this.pointX + " y = " + this.pointY;
        }
    }
    
    驾驶员的代码如下所示

        public class PointClass {
    
        private int pointX;     //set instance variables
        private int pointY;
    
    
        public void setPoints() {       //method to set the points values
            pointX = 10;
            pointY = 10;
    
        }
    
        public void getPoints(int x, int y){    //method to set arguments to instance variables 
            pointX = x;
            pointY = y;
        }
    
        /////////////////////////////////////////////////
    
        public int getPointX() {
            return pointX;
        }
    
        public void setPointX(int x) {
            this.pointX = x;
        }
    
        ///////////////////////////////////////////////
    
        public int getPointY() {
            return pointY;
        }
    
        public void setPointY(int y) {
            this.pointY = y;
        }
    
        ///////////////////////////////////////////////
    
        public String toString(){   //toString method to display the values
            return "x = " + pointX + "y = " + pointY;
        }
    
    }
    
    import java.awt.Point;
    
    public class PointTest{
    
        public static void main(String[] args){
    
            PointClass p = new PointClass();
    
    
            System.out.print("Lab1 Point");
            System.out.print("January 16, 2014");
    
            Point point1 = new Point();             //set point1 as no argument 
            Point point2 = new Point(11,24);       // set point2 as argument with x and y
    
            System.out.print(point1.toString());  //display point1 from toString method
            System.out.print(point2.toString()); //display point2 from toString method
    
            point1 = pointX(35);
    
            System.out.print(point1.toString());  
            System.out.print(point2.toString()); 
    
            point2.pointY(13);
    
            System.out.print(point1.toString());  
            System.out.print(point2.toString()); 
        }
    
    }
    
    public class PointClass {
    
        //Set instance variables
        private int pointX;
        private int pointY;
    
        //Default Constructor - Starts at (0, 0)
        public PointClass() {
            this.pointX = 0;
            this.pointY = 0;
        }
    
        //Constructor with specified values
        public PointClass(int x, int y){
            this.pointX = x;
            this.pointY = y;
        }
    
        //Setters
        public void setPointX(int x) { 
            this.pointX = x; 
        }
        public void setPointY(int y) {
            this.pointY = y;
        }
    
        //Getters
        public int getPointX() { 
            return this.pointX;
        }
        public int getPointY() {
            return this.pointY;
        }
    
        //toString for use with System.out.println()
        public String toString() {
            return "x = " + this.pointX + " y = " + this.pointY;
        }
    }
    
    编辑

    好吧,在修正了一些东西之后,我仍然有点困惑,因为我仍然得到一个错误,这就是一切应该是什么样子吗

    public class PointClass {
    
    private int pointX;     //set instance variables
    private int pointY;
    
    
    public void setPoints() {       //method to set the points values
        pointX = 10;
        pointY = 10;
    
    }
    
    public PointClass(int x, int y){    //method to set arguments to instance variables 
        this.pointX = x;
        this.pointY = y;
    }
    
    /////////////////////////////////////////////////
    
    public int getPointX() {
        return pointX;
    }
    
    public void setPointX(int x) {
        this.pointX = x;
    }
    
    ///////////////////////////////////////////////
    
    public int getPointY() {
        return pointY;
    }
    
    public void setPointY(int y) {
        this.pointY = y;
    }
    
    ///////////////////////////////////////////////
    
    public String toString(){                       //toString method to display the values
        return "x = " + pointX + "y = " + pointY;
    }
    
    }
    
    公共类点测试{

    public static void main(String[] args){
    
    
        System.out.print("Lab1 Point");
        System.out.print("January 16, 2014");
    
        PointClass point1 = new PointClass();         //set point1 as no argument 
        PointClass point2 = new PointClass(11, 24);  // set point2 as argument with x and y
    
        System.out.print(point1);  //display point1 from toString method
        System.out.print(point2); //display point2 from toString method
    
        point1.setPointX(35);
    
        System.out.print(point1);  
        System.out.print(point2); 
    
        point2.setPointY(13);
    
        System.out.print(point1);  
        System.out.print(point2); 
    }
    
    }
    

    如果一个成员变量是
    private
    ,您就不能像在这里尝试的那样在它自己的类之外直接访问它

    point2.pointY(13);
    
    必须使用编写的
    public
    setter/getter来完成此任务

    point2.setPointY(13);
    
    另外,在
    PointClass
    中有一个方法
    getPoints(intx,inty)
    ,它实际设置变量。方法名称应更改为
    setPoints(intx,inty)

    此外,您还重写了
    PointClass
    toString()
    方法。因此,您不必显式调用
    toString()

    编辑

    public class PointTest {
    
        public static void main(String[] args){
            System.out.println("Lab1 Point");
            System.out.println("January 17, 2014");
            System.out.println();
    
            PointClass point1 = new PointClass();         //set point1 as no argument 
            PointClass point2 = new PointClass(11, 24);  // set point2 as argument with x and y
    
            System.out.println("Point1: " + point1);  //display point1 from toString method
            System.out.println("Point2: " + point2); //display point2 from toString method
            System.out.println();
    
            point1.setPointX(35);
    
            System.out.println("Point1: " + point1);  
            System.out.println("Point2: " + point2); 
            System.out.println();
    
            point2.setPointY(13);
    
            System.out.println("Point1: " + point1);  
            System.out.println("Point2: " + point2);
        }
    
    }
    
    删除
    import java.awt.point;
    后,需要向
    PointClass
    添加构造函数

    public class PointClass {
    
    private int pointX;     //set instance variables
    private int pointY;
    
    //
    //This is your new constructor
    //
    public PointClass(int x, int y) {
        this.pointX = x;
        this.pointY = y;
    }
    
    现在您可以像这样创建此类的实例

    Point point1 = new Point(11, 24); // Old way - Incorrect
    PointClass point1 = new PointClass(11, 24) // Better - This will make objects of your class.
    
    编辑#2

    以下是我为你写的最后几节课:

    PointClass

        public class PointClass {
    
        private int pointX;     //set instance variables
        private int pointY;
    
    
        public void setPoints() {       //method to set the points values
            pointX = 10;
            pointY = 10;
    
        }
    
        public void getPoints(int x, int y){    //method to set arguments to instance variables 
            pointX = x;
            pointY = y;
        }
    
        /////////////////////////////////////////////////
    
        public int getPointX() {
            return pointX;
        }
    
        public void setPointX(int x) {
            this.pointX = x;
        }
    
        ///////////////////////////////////////////////
    
        public int getPointY() {
            return pointY;
        }
    
        public void setPointY(int y) {
            this.pointY = y;
        }
    
        ///////////////////////////////////////////////
    
        public String toString(){   //toString method to display the values
            return "x = " + pointX + "y = " + pointY;
        }
    
    }
    
    import java.awt.Point;
    
    public class PointTest{
    
        public static void main(String[] args){
    
            PointClass p = new PointClass();
    
    
            System.out.print("Lab1 Point");
            System.out.print("January 16, 2014");
    
            Point point1 = new Point();             //set point1 as no argument 
            Point point2 = new Point(11,24);       // set point2 as argument with x and y
    
            System.out.print(point1.toString());  //display point1 from toString method
            System.out.print(point2.toString()); //display point2 from toString method
    
            point1 = pointX(35);
    
            System.out.print(point1.toString());  
            System.out.print(point2.toString()); 
    
            point2.pointY(13);
    
            System.out.print(point1.toString());  
            System.out.print(point2.toString()); 
        }
    
    }
    
    public class PointClass {
    
        //Set instance variables
        private int pointX;
        private int pointY;
    
        //Default Constructor - Starts at (0, 0)
        public PointClass() {
            this.pointX = 0;
            this.pointY = 0;
        }
    
        //Constructor with specified values
        public PointClass(int x, int y){
            this.pointX = x;
            this.pointY = y;
        }
    
        //Setters
        public void setPointX(int x) { 
            this.pointX = x; 
        }
        public void setPointY(int y) {
            this.pointY = y;
        }
    
        //Getters
        public int getPointX() { 
            return this.pointX;
        }
        public int getPointY() {
            return this.pointY;
        }
    
        //toString for use with System.out.println()
        public String toString() {
            return "x = " + this.pointX + " y = " + this.pointY;
        }
    }
    
    点测试

    public class PointTest {
    
        public static void main(String[] args){
            System.out.println("Lab1 Point");
            System.out.println("January 17, 2014");
            System.out.println();
    
            PointClass point1 = new PointClass();         //set point1 as no argument 
            PointClass point2 = new PointClass(11, 24);  // set point2 as argument with x and y
    
            System.out.println("Point1: " + point1);  //display point1 from toString method
            System.out.println("Point2: " + point2); //display point2 from toString method
            System.out.println();
    
            point1.setPointX(35);
    
            System.out.println("Point1: " + point1);  
            System.out.println("Point2: " + point2); 
            System.out.println();
    
            point2.setPointY(13);
    
            System.out.println("Point1: " + point1);  
            System.out.println("Point2: " + point2);
        }
    
    }
    
    当我刚刚运行这个时,我得到了这个输出

    Lab1 Point
    January 17, 2014
    
    Point1: x = 0 y = 0
    Point2: x = 11 y = 24
    
    Point1: x = 35 y = 0
    Point2: x = 11 y = 24
    
    Point1: x = 35 y = 0
    Point2: x = 11 y = 13
    

    在您提供的代码中没有
    abstract
    Point
    类。在您的
    PointTest
    类中,您正在使用/包括
    java.awt.Point
    ,它与
    PointClass
    @pshemogood catch>无关!除了
    getPoints(intx,inty)
    使用此方法进行设置时,不应调用设置点(..)。也不需要调用
    System.out.print(point1.toString());
    只需
    System.out.print(point1)
    很好!
    toString
    将被自动调用,更重要的是,他正在导入
    java.awt.Point
    在尝试使用point2.setPointY时仍然会出错。方法pointX(int)类型PointTest未定义这是因为您没有使用pointclass,您的point2是java.awt.point。请尝试在pointclass中创建一个构造函数,并使用它。好的,取出java.awt.point,现在得到这两个错误,
    point2=新点(11,24)的构造函数点(int,int)未定义
    对于
    point1=setPointX(35);
    的类型PointTest,方法setPointX(int)未定义;您需要将其更改为
    PointClass(int,int)
    ,因为这是类的名称,并将该构造函数添加到该类中,因为您现在没有构造函数。我将更新我的答案。