Java (Triangle类)设计一个名为Triangle的类,该类扩展了GeometricObject
该类包含:Java (Triangle类)设计一个名为Triangle的类,该类扩展了GeometricObject,java,inheritance,Java,Inheritance,该类包含: 三个名为side1、side2和side3的double数据字段,默认值1.0表示三角形的三条边 一种无参数构造函数,用于创建具有指定的边1、边2和边3的三角形 所有三个数据字段的访问器方法 名为getArea()的方法,该方法返回三角形的面积 名为getPermiture()的方法返回此三角形的周长 *名为toString()的方法,该方法返回三角形的字符串描述 有关计算三角形面积的公式,请参见编程练习2.15(java编程入门第9版) toString()方法实现如下: re
- 三个名为side1、side2和side3的double数据字段,默认值1.0表示三角形的三条边
- 一种无参数构造函数,用于创建具有指定的边1、边2和边3的三角形
- 所有三个数据字段的访问器方法
- 名为getArea()的方法,该方法返回三角形的面积
- 名为getPermiture()的方法返回此三角形的周长
我在练习中遇到的问题是测试程序 如果你能帮助我,告诉我如何从输入中生成三角形,我将非常感激 我目前的代码是: 几何体对象
public class GeometricObject {
private String color = " white ";
private boolean filled;
private java.util.Date dateCreated;
public GeometricObject() {
dateCreated = new java.util.Date();
}
public GeometricObject(String color, boolean filled) {
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public boolean isFilled() {
return filled;
}
public void setFilled(boolean filled) {
this.filled = filled;
}
public java.util.Date getDateCreated() {
return dateCreated;
}
public String toString() {
return "Created on " + dateCreated + "\n color: " + color + " and filled ";
}
}
三角计划
public class Triangle extends GeometricObject {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public Triangle() {
}
public Triangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double setSide1() {
return side1;
}
public double setSide2() {
return side2;
}
public double setSide3() {
return side3;
}
public void setSide1(double side1) {
this.side1 = side1;
}
public void setSide2(double side2) {
this.side2 = side2;
}
public void setSide3(double side3) {
this.side3 = side2;
}
public double getArea() {
return (side1 + side2 + side3) / 2;
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public String toString() {
return " Triangle: Side 1 = " + side1 + " Side 2 = " + side2
+ " Side 3 = " + side3;
}
}
测试程序。
import java.util.Scanner;
public class TestTriangle {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the Triangle");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.println("Enter the color of the Triangle");
String color = input.next();
System.out.println(" Is the Triangle filled? Reply with 'True' or 'False' ");
String filled = input.next();
}
{
new Triangle(side1, side2, side3);
//How do i get the information into theTriangle?
System.out.println("The Triangle Sides are \n side 1: " + side1 + "\n Side 2: " + side2 + "\n Side 3: " + side3);
System.out.println("The Triangle's Area is " + (side1 + side2 + side3) / 2);
System.out.println("The Triangle's Perimeter is "
+ (side1 + side2 + side3));
System.out.println("The Triangle's Color is " + //what goes here?);
System.out.println("Is the Triangle filled? " + //what goes here?);
}
}
您需要像这样创建一个新的
三角形
对象,以便有一个引用
Trangle triangle = new Triangle(side1, side2, side3);
// ^^^^^^ This is the most important thing you're missing. You need a reference
// point for your object. That's the only way you can access it's
// properties.
您还需要设置它的填充
和颜色
属性
triangle.setFilled(filled);
triangle.setColor(color);
然后,您可以像这样调用其方法:
System.out.println("The Triangle Sides are \n side 1: "
+ triangle.getSide1() + "\n Side 2: " + triangle.getSide2()
+ "\n Side 3: " + triangle.getSide3());
System.out.println("The Triangle's Area is " + triangle.getArea());
System.out.println("The Triangle's Perimeter is " + triangle.getPerimeter();
System.out.println("The Triangle's Color is " + triangle.getColor());
System.out.println("Is the Triangle filled? " + triangle.isFilled());
您可以访问GeometricObject
的isFilled()
、setFilled()
、getColor()
和setColor()
,因为三角形
是GeometricObject
(扩展了
),所以它继承了它的所有方法
顺便说一下,这不是计算三角形面积的方法:
public double getArea() {
return (side1 + side2 + side3) / 2; // This is so wrong
}
检查这个正确的公式
编辑:代码有另一个问题
编辑:三角形公式
public double getArea() {
int p = getPerimeter() / 2
return Math.sqrt(p * ((p - side1) * (p - side2) * (p - side3));
}
几何对象
package geometricobject;
import java.util.Scanner;
/**
*
* @author Kirubel
*/
abstract class GeometricObject
{
private String color = "white";
private boolean filled;
private java.util.Date dateCreated;
/** Construct a default geometric object */
protected GeometricObject()
{
}
/** Construct a geometric object with color and filled value */
protected GeometricObject(String color, boolean filled)
{
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
/** Return color */
public String getColor()
{
return color;
}
/** Set a new color */
public void setColor(String color)
{
this.color = color;
}
/** Return filled. Since filled is boolean ,
* the get method is named isFilled */
public boolean isFilled()
{
return filled;
}
/** Set a new filled */
public void setFilled(boolean filled)
{
this.filled = filled;
}
/** Get dateCreated */
public java.util.Date getDateCreated()
{
return dateCreated;
}
@Override
public String toString() {
return "created on " + dateCreated + "\ncolor: " + color +
" and filled: " + filled;
}
/** Abstract method getArea */
public abstract double getArea();
/** Abstract method getPerimeter */
public abstract double getPerimeter();
/**
* @param args the command line arguments
*/
}
class Triangle extends GeometricObject
{
public double side1;
public double side2;
public double side3;
public Triangle() //default constructor
{
side1=1.0;
side2=1.0;
side3=1.0;
}
public Triangle(double side1,double side2,double side3) //peremetrised constructor
{
this.side1=side1;
this.side2=side2;
this.side3=side3;
}
@Override
public double getPerimeter() //function for getting peremeter for triangle
{
return(side1+side2+side3) ;
}
@Override
// function for getting area of triangle
public double getArea()
{
double area,s;
s=side1+side2+side3;
area = Math.sqrt(s * (s- side1) * (s - side2) * (s - side3));
return(area);
}
@Override
public String toString()//to print the data
{
String s;
s="Triangle:side1 "+ side1 +" side2 " + side2 + " side3 "+side3;
return(s);
}
private String getSide1() {
// TODO Auto-generated method stub
return null;
}
private String getPerimeter(double d) {
// TODO Auto-generated method stub
return null;
}
private String getPerimeter(String string) {
// TODO Auto-generated method stub
return null;
}
private String getSide3() {
// TODO Auto-generated method stub
return null;
}
private String getSide2() {
// TODO Auto-generated method stub
return null;
}
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the Triangle");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.println("Enter the color of the Triangle");
String color = input.next();
System.out.println(" Is the Triangle filled? Reply with 'True' or 'False' ");
String filled = input.next();
}
{
Triangle triangle = new Triangle(side1, side2, side3);
triangle.setFilled(isFilled());
triangle.setColor(getColor());
// Display
System.out.println("The Triangle Sides are \n side 1: "
+ triangle.getSide1() + "\n Side 2: " + triangle.getSide2()
+ "\n Side 3: " + triangle.getSide3());
System.out.println("The Triangle's Area is " + triangle.getArea());
System.out.println("The Triangle's Perimeter is " + triangle.getPerimeter());
System.out.println("The Triangle's Color is " + triangle.getColor());
System.out.println("Is the Triangle filled? " + triangle.isFilled());
}
}
三角形package geometricobject;
import java.util.Scanner;
/**
*
* @author Kirubel
*/
abstract class GeometricObject
{
private String color = "white";
private boolean filled;
private java.util.Date dateCreated;
/** Construct a default geometric object */
protected GeometricObject()
{
}
/** Construct a geometric object with color and filled value */
protected GeometricObject(String color, boolean filled)
{
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
/** Return color */
public String getColor()
{
return color;
}
/** Set a new color */
public void setColor(String color)
{
this.color = color;
}
/** Return filled. Since filled is boolean ,
* the get method is named isFilled */
public boolean isFilled()
{
return filled;
}
/** Set a new filled */
public void setFilled(boolean filled)
{
this.filled = filled;
}
/** Get dateCreated */
public java.util.Date getDateCreated()
{
return dateCreated;
}
@Override
public String toString() {
return "created on " + dateCreated + "\ncolor: " + color +
" and filled: " + filled;
}
/** Abstract method getArea */
public abstract double getArea();
/** Abstract method getPerimeter */
public abstract double getPerimeter();
/**
* @param args the command line arguments
*/
}
class Triangle extends GeometricObject
{
public double side1;
public double side2;
public double side3;
public Triangle() //default constructor
{
side1=1.0;
side2=1.0;
side3=1.0;
}
public Triangle(double side1,double side2,double side3) //peremetrised constructor
{
this.side1=side1;
this.side2=side2;
this.side3=side3;
}
@Override
public double getPerimeter() //function for getting peremeter for triangle
{
return(side1+side2+side3) ;
}
@Override
// function for getting area of triangle
public double getArea()
{
double area,s;
s=side1+side2+side3;
area = Math.sqrt(s * (s- side1) * (s - side2) * (s - side3));
return(area);
}
@Override
public String toString()//to print the data
{
String s;
s="Triangle:side1 "+ side1 +" side2 " + side2 + " side3 "+side3;
return(s);
}
private String getSide1() {
// TODO Auto-generated method stub
return null;
}
private String getPerimeter(double d) {
// TODO Auto-generated method stub
return null;
}
private String getPerimeter(String string) {
// TODO Auto-generated method stub
return null;
}
private String getSide3() {
// TODO Auto-generated method stub
return null;
}
private String getSide2() {
// TODO Auto-generated method stub
return null;
}
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the Triangle");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.println("Enter the color of the Triangle");
String color = input.next();
System.out.println(" Is the Triangle filled? Reply with 'True' or 'False' ");
String filled = input.next();
}
{
Triangle triangle = new Triangle(side1, side2, side3);
triangle.setFilled(isFilled());
triangle.setColor(getColor());
// Display
System.out.println("The Triangle Sides are \n side 1: "
+ triangle.getSide1() + "\n Side 2: " + triangle.getSide2()
+ "\n Side 3: " + triangle.getSide3());
System.out.println("The Triangle's Area is " + triangle.getArea());
System.out.println("The Triangle's Perimeter is " + triangle.getPerimeter());
System.out.println("The Triangle's Color is " + triangle.getColor());
System.out.println("Is the Triangle filled? " + triangle.isFilled());
}
}
新三角形(侧1、侧2、侧3)
?好的,非常感谢您的快速回复。我添加了你建议的代码,现在我离目标更近了!嗨,谢谢你的回答。颜色和填充都给了我错误<代码>三角形=新三角形(边1、边2、边3);三角形。设置填充(填充);三角形。设置颜色(颜色)还有所有三角形.getSide())
in`System.out.println(“三角形边是\n边1:“+triangle.getSide1()+”\n边2:“+triangle.getSide2()+”\n边3:“+triangle.getSide3())”。另外,我可以使用getColor()
,setColor()
,isFilled()
,setFilled(),
从GeometricObject
当我需要根据输入生成三角形时?好的,我现在得到的错误如下:在这些行上System.out.println(“三角形边是\n边1:+triangle.getSide1()+”\n边2:+triangle.getSide2()+”\n边3:+triangle.getSide3())代码>-类型Triangle的方法getSide1()未定义-类型Triangle的方法getSide2()未定义-类型Triangle的方法getSide3()未定义!非常感谢。现在差不多了:)您的triangle类中有六个方法。其中三个应该是get
方法。那应该能解决你的问题。请接受此答案。从用户处获取输入后,它不会显示结果或答案。示例运行#1:输入三角形的1边:13输入三角形的2边:14输入三角形的3边:15输入三角形的颜色:红色输入三角形是否已填充(是/否):是区域:84.0周长:42.0颜色:红色填充?:真实样本运行#2:输入三角形1侧:9输入三角形2侧:40输入三角形3侧:41输入三角形颜色:橙色输入三角形是否填充(是/否):否区域:180.0周长:90.0颜色:橙色填充?:false