Java 类练习

OOP h04

根据所给的 Test,补充实现三个类。

0x00 Apple

根据所给信息,知道 Apple 类具有无参构造方法 Apple() 和含参构造方法 Apple(size, color),具有 getColor()getSize() 方法,具有 colorsize 属性,默认 colorred

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
package com.huawei.classroom.student.h04;

/**
* @author super
*/
public class Apple {
private String color;
private int size;

public Apple() {
this.color = "red";
this.size = 0;
}
public Apple(int size, String color) {
this.color = color;
if (size >= 0)
this.size = size;
else
this.size = 0;
}

public String getColor() {
return this.color;
}
public int getSize() {
return this.size;
}
}

0x01 Triangle

根据所给信息,需要实现设置三角形的三条边,并求其面积。

已知三角形三边求面积,利用海伦公式:

设三角形三边为 abc,$p=\frac{a+b+c}{2}$,则面积$$S=\sqrt{p(p-a)(p-b)(p-c)}$$

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.huawei.classroom.student.h04;

/**
* @author super
*/
public class Triangle {
private double lenA, lenB, lenC;

public void setA(double len) {
this.lenA = len;
}
public void setB(double len) {
this.lenB = len;
}
public void setC(double len) {
this.lenC = len;
}
public double getArea() {
double p = (lenA + lenB + lenC) / 2.0;
return Math.sqrt(p * (p-lenA) * (p-lenB) * (p-lenC));
}
}

0x02 MyStack

使用顺序栈实现。

定义最大元素数量、栈数组、数组索引作为栈顶指针,入栈和出栈对应元素的插入和索引的移动。

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
package com.huawei.classroom.student.h04;

/**
* @author super
*/
public class MyStack {
private int maxSize;
private int[] stack;
private int top;

public MyStack(int size) {
this.maxSize = size;
this.stack = new int[this.maxSize];
this.top = -1;
}
public int pop() {
if (this.top == -1)
return 0;
else
return this.stack[top--];
}
public void push(int e) {
this.stack[++top] = e;
}
public boolean isEmpty() {
return top == -1;
}
public boolean isFull() {
return top == this.maxSize - 1;
}
}