1 介绍

经过上篇的介绍,接下来我们进入实操阶段。我们创建来求三角形的周长和面积,怎么完成这个需求呢?
首先,三角形肯定有三条边,所以我们创建一个三角形的对象,该对象有三条边的属性。
三角形周长公式:

  • 面向对象之入门实战 - 图1

三角形面积公式:

  • 面向对象之入门实战 - 图2

    2 访问修饰符

    什么是访问修饰符?就是一个类,是否是公开状态,或者私有状态。比如:人与人之间的隐私。
    而类也有一种关系,访问修饰符定义了其他类是否可以访问的权限。
    分类:
  1. private:私有属性,代表该作用域只能在同一个类中起作用,当然可以使用反射打破这一属性。
  2. public:公开属性,代表该作用域能够被其他类访问,就比如你创建的类,如果没有public权限,编译器首先会编译不过去,再然后你这个类也是毫无意义,其他类无法访问。只能在自身类中调用。
  3. default:默认属性,代表该作用域可以在 任意包 中调用。
  4. protected:受保护属性,代表该作用域受到保护。

面向对象之入门实战 - 图3

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; }

}

  1. <a name="Zqwn6"></a>
  2. ## 3.2 创建三角形类
  3. ```java
  4. // 三角形类继承形状类,拥有形状类的全部属性
  5. public class Deltoid extends Shape{
  6. private double length1;
  7. private double length2;
  8. private double length3;
  9. protected double getLength1() {
  10. return length1;
  11. }
  12. protected void setLength1(double length1) {
  13. this.length1 = length1;
  14. }
  15. protected double getLength2() {
  16. return length2;
  17. }
  18. protected void setLength2(double length2) {
  19. this.length2 = length2;
  20. }
  21. protected double getLength3() {
  22. return length3;
  23. }
  24. protected void setLength3(double length3) {
  25. this.length3 = length3;
  26. }
  27. /**
  28. * 私有属性必须使用公开方法,将属性值传递出去,可以让其他类调用,获取数据
  29. * 这是一个构造函数
  30. * length1 a边
  31. * length2 b边
  32. * length3 c边
  33. */
  34. public Deltoid(double length1, double length2, double length3) {
  35. super();
  36. this.length1 = length1;
  37. this.length2 = length2;
  38. this.length3 = length3;
  39. // 三角形周长计算
  40. this.setPerimeter(length1+length2+length3);
  41. // 三角形面积计算
  42. double s = ( length1+length2+length3)/2;
  43. this.setArea(Math.sqrt(s *(s-this.length1)*(s-this.length2)*(s-this.length3)));
  44. }
  45. public Deltoid() {
  46. super();
  47. }
  48. }

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