基本问题 - 在方法中设置对象的特征并在 test/helper class - Java 中调用该方法

Basic Question - Setting object's traits in a method and calling that method in the test/helper class - Java

我正在使用 Java 学习非常基本的面向对象编程,我有一个名为 triangle1 的三角形对象,我在助手 class 中设置了它的值,但是,我想使用 setter 和 getter 在我的主要 class 中更改 triangle1 的值。我只是对如何调用该方法来显示更新值感到困惑。

这是我的主要 class 创建三角形对象的地方。就在那之下,我正在尝试获取值并将它们更改为 15.5、15.5、15.5 和绿色。我意识到我可能做错了。

public class Triangle extends codeAssignHelper{

    public double base;
    public double side1;
    public double side2;
    public String colour;


    Triangle(double base, double side1, double side2, String colour){
        this.base = base;
        this.side1 = side1;
        this.side2 = side2;
        this.colour = colour;
    }

    public void setBase(double base){
        this.base = 15.5;
    }

    public void setSide1(double side1){
        this.side1 = 15.5;
    }

    public void setSide2(double side2){
        this.side2 = 15.5;
    }

    public void setColour(String colour){
        this.colour = "green";
    }


    public double getBase(){
        return this.base;
    }
    public double getSide1(){
        return this.side1;
    }
    public double getSide2(){
        return this.side2;
    }
    public String getColour(){
        return this.colour;
    }


    public static void main(String[] args){


    }
}

这是我的帮手 class,我已经打印了 triangle1 和 triangle2,我只想重新打印 triangle1 的值但已更新。我意识到它可能不理解我想专门更新 triangle1。

class codeAssignHelper{

    public static void main(String[] args){

        Triangle triangle1 = new Triangle(1.0,1.0,1.0,"black");
        Triangle triangle2 = new Triangle(3.0, 4.0, 5.0, "red");


        System.out.println("Welcome to the Triangle tester!");
        System.out.println("-------------------------------------------------------");
        System.out.println("This program will instantiate objects of a triangle and test all of the methods of the Triangle class.");
        System.out.println("-------------------------------------------------------");
        System.out.println("For triangle1 length of base is:        " + triangle1.base);
        System.out.println("For triangle1 length of side 1 is:      " + triangle1.side1);
        System.out.println("For triangle1 length of side 2 is:      " + triangle1.side2);
        System.out.println("For triangle1 colour is:                " + triangle1.colour + "\n");

        System.out.println("Triangle2:");
        System.out.println("Base:       " + triangle2.base);
        System.out.println("Side1:      " + triangle2.side1);
        System.out.println("Side2:      " + triangle2.side2);
        System.out.println("Colour:     " + triangle2.colour + "\n");

    //MY PROBLEM - Need to update triangle1's values here
        System.out.println("Testing setter methods on triangle1.");
        System.out.println("Triangle1:");
        System.out.println("Base:       " + triangle1.getBase());
        System.out.println("Side1:      " + triangle2.getSide1());
        System.out.println("Side2:      " + triangle2.getSide2());
        System.out.println("Colour:     " + triangle2.getColour() + "\n");
    }
}

预期输出: 欢迎使用三角测试仪!


本程序将实例化三角形的对象并测试三角形的所有方法class。


三角形 1 的底边长度为:1.0 对于边 1 的 triangle1 长度是:1.0 对于边 2 的 triangle1 长度是:1.0 对于 triangle1 颜色是:黑色

三角形2: 基础:3.0 第一面:4.0 第二面:5.0 颜色:红色

正在 triangle1 上测试 setter 方法。 三角形 1: 基础:15.5 第一面:15.5 第二面:15.5 颜色:绿色

您只需像这样调用 setter,然后再次使用 getter 打印值:

triangle1.setBase(15.5);
triangle1.setBase(15.5);
triangle1.setSide2(15.5);
triangle1.setColour("green");

我看到您对设置器进行了硬编码,以设置特定值并忽略参数。也许那只是为了测试目的,但它应该是这样的:

public void setBase(double base){
        this.base = base;
    }

其他二传手当然也一样。

最后,Class 的数据元素应该是私有的,这就是您首先实现 setter 和 getter 的原因,因此只有来自对象自身的方法 class 才能与其元素的值。 所以像这样:

private double base;
private double side1;
private double side2;
private String colour;