基本问题 - 在方法中设置对象的特征并在 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;
我正在使用 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;