三角形类Triangle
设计一个名为 Triangle 的类来扩展 GeometricObject 类。该类包括:
1、三个名为 side1,side2,side3 的double 数据域表示这个三角形的三条边,它们的默认值是1.0.
2、一个无参构造方法创建的默认的三角形
3、一个能创建带指定side1,side2,side3的三角形的构造方法
4、所有三个数据域的访问器方法
5、一个名为getArea()的方法返回这个三角形的面积
6、一个名为getPerimeter()的方法返回这个三角形的周长
7、一个名为toString()的方法返回这个三角形的字符串描述
问题分析:
按部就班,根据要求,从数据域,到构造方法(无参,有参),到方法,到测试类
学会使用继承以及继承的方法就好
代码演示(已验证)
1、创建的类:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
|
// 创建的类
package java_testquestions;
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 filled() {
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: " +filled;
}
}
public class Triangle extends GeometricObject
{
private double side1;
private double side2;
private double side3;
String color;
Triangle(){
side1 = 1.0 ;
side2 = 1.0 ;
side3 = 1.0 ;
}
public Triangle( double side1, double side2, double side3) {
this .side1 = side1;
this .side2 = side2;
this .side3 = side3;
}
public double getSide1() {
return side1;
}
public double getSide2() {
return side2;
}
public double getSide3() {
return side3;
}
// 父类中已有该方法
public void setColor(String Color) {
color = Color;
}
public String getColor() {
return color;
}
public double getArea() {
double s = (side1+side2+side3)* 1.0 / 2 ;
double area = Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
return area;
}
public double getPerimeter() {
return side1+side2+side3;
}
public String toString() {
return "Triangle: side1 = " +side1 + "side2 = " +side2 + " side3 = " +side3;
}
}
|
2、测试类,Triangle_Test
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// 测试类
package java_testquestions;
import java.util.Scanner;
public class Triangle_Test
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
System.out.println( "请输入三角形的三条边:" ); // 需要用字符串类型输入,这样在下面 输入颜色时就不会报错
String side11 = input.nextLine();
double side1 = Double.parseDouble(side11);
String side22 = input.nextLine();
double side2 = Double.parseDouble(side22);
String side33 = input.nextLine();
double side3 = Double.parseDouble(side33);
// double side1 = input.nextDouble();
// double side2 = input.nextDouble();
// double side3 = input.nextDouble();
Triangle triangle = new Triangle(side1,side2,side3);
System.out.println( "请输入三角形的颜色: " );
String color = input.nextLine();
triangle.setColor(color);
System.out.println( "\n" );
System.out.println( "请输入是否填充 true or false:" );
boolean filled = input.nextBoolean();
triangle.setFilled(filled);
System.out.println( "三角形的面积为 :" +triangle.getArea());
System.out.println( "三角形的周长为 :" +triangle.getPerimeter());
System.out.println( "三角形的颜色为 :" +triangle.getColor());
System.out.println( "三角形是否填充 :" +triangle.filled());
}
}
|
泡泡:
创建类的话认真点应该没什么,在测试类里面有一个细节需要注意:在输入 double 类型 的边长时,要先使用字符串类型输入,然后在转化为double类型数据,转化方式如下:
1
2
3
4
5
6
|
String side11 = input.nextLine();
double side1 = Double.parseDouble(side11);
String side22 = input.nextLine();
double side2 = Double.parseDouble(side22);
String side33 = input.nextLine();
double side3 = Double.parseDouble(side33);
|
嗯,ok,收工。
补充:利用java编写三角形的判定程序
我就废话不多说了,大家还是直接看代码吧~
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public static void main(String[] args) {
// TODO 自动生成的方法存根
int a,b,c;
System.out.println(“请输入三角形的三边”);
@SuppressWarnings (“resource”)
Scanner sc= new Scanner(System.in);
System.out.println(“a=”);
a=sc.nextInt();
System.out.println(“b=”);
b=sc.nextInt();
System.out.println(“c=”);
c=sc.nextInt();
if ((a+b)>c&&(b+c)>a&&(c+a)>b)
System.out.println(a+”,”+b+”,”+c+”能构成三角形!”);
else
System.out.println(a+”,”+b+”,”+c+”不能构成三角形!”);
}
|
运行结果如下所示
程序小总结:
有的时候,我们需要在满足某种条件时进行一些操作,而不满足条件时就不进行任何操作,这个时候我们可以只使用 if 语句。也就是说,if else 不必同时出现。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持服务器之家。如有错误或未考虑完全的地方,望不吝赐教。
原文链接:https://blog.csdn.net/qq_42124842/article/details/90752580