1 介绍
经过上篇的介绍,接下来我们进入实操阶段。我们创建来求三角形的周长和面积,怎么完成这个需求呢?
首先,三角形肯定有三条边,所以我们创建一个三角形的对象,该对象有三条边的属性。
三角形周长公式:
三角形面积公式:
- private:私有属性,代表该作用域只能在同一个类中起作用,当然可以使用反射打破这一属性。
- public:公开属性,代表该作用域能够被其他类访问,就比如你创建的类,如果没有public权限,编译器首先会编译不过去,再然后你这个类也是毫无意义,其他类无法访问。只能在自身类中调用。
- default:默认属性,代表该作用域可以在 任意包 中调用。
- protected:受保护属性,代表该作用域受到保护。
3 示例
3.1 创建形状类
Shape类具有周长和面积的属性: ```java public class Shape { /**
- 周长 / private double perimeter; /*
面积 */ private double area;
public double getPerimeter() { return perimeter; }
public double getArea() { return area; }
protected void setPerimeter(double perimeter) { this.perimeter = perimeter; }
protected void setArea(double area) { this.area = area; }
}
<a name="Zqwn6"></a>
## 3.2 创建三角形类
```java
// 三角形类继承形状类,拥有形状类的全部属性
public class Deltoid extends Shape{
private double length1;
private double length2;
private double length3;
protected double getLength1() {
return length1;
}
protected void setLength1(double length1) {
this.length1 = length1;
}
protected double getLength2() {
return length2;
}
protected void setLength2(double length2) {
this.length2 = length2;
}
protected double getLength3() {
return length3;
}
protected void setLength3(double length3) {
this.length3 = length3;
}
/**
* 私有属性必须使用公开方法,将属性值传递出去,可以让其他类调用,获取数据
* 这是一个构造函数
* length1 a边
* length2 b边
* length3 c边
*/
public Deltoid(double length1, double length2, double length3) {
super();
this.length1 = length1;
this.length2 = length2;
this.length3 = length3;
// 三角形周长计算
this.setPerimeter(length1+length2+length3);
// 三角形面积计算
double s = ( length1+length2+length3)/2;
this.setArea(Math.sqrt(s *(s-this.length1)*(s-this.length2)*(s-this.length3)));
}
public Deltoid() {
super();
}
}
3.3 三角形周长和面积的测试
public class TestMain(){
public static void main(String[] args){
// 创建三角形对象,为三角形的三边赋值
// 并且三角形周长和面积,计算后得到答案后,传给父类属性:面积和周长
Deltoid deltoid =new Deltoid(2,3,4);
// 获取三角形周长
double perimeter = deltoid.getPerimeter();
// 获取三角形面积
double area = deltoid.getArea();
System.out.println("三角形的周长是"+perimeter);
System.out.println("三角形的面积是"+area);
}
}
3.4 结果
三角形的周长是9.0
三角形的面积是2.9047375096555625