📜  OOAD-面向对象的原理(1)

📅  最后修改于: 2023-12-03 15:18:06.966000             🧑  作者: Mango

OOAD-面向对象的原理

面向对象分析与设计(简称OOAD)是一种软件开发方法,主要的设计思想是将系统看做一个由许多独立的对象组成的整体,通过对象之间的协作和信息交互来完成系统的功能。下面我们来了解一下OOAD的基本原理。

封装性

封装性是面向对象编程的重要特性之一。它指的是将数据和行为封装在类中,对外部的数据和行为进行保护,只能通过类的接口访问。

比如,定义一个类 Person,其中包含 nameage两个私有的属性,以及 getName()getAge()两个公有的方法,这样外部请求就只能通过这两个公有方法来获取 Person 的信息,而不能直接访问 nameage属性。代码如下:

public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
继承性

继承是指子类可以继承父类的属性和方法,并且可以在子类中添加新的属性和方法。这样可以提高代码的复用性,并且可以通过多态实现一些巧妙的程序设计。

比如,定义一个 Student 类,继承 Person 类,并添加 school属性和 getSchool()方法,如下所示:

public class Student extends Person {
    private String school;

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }
}

通过继承, Student 类已经从 Person 类中继承了 nameage属性以及 getName()getAge()方法,而我们只需要添加 school属性和 getSchool()方法即可。

多态性

多态性是指同一个方法可以被不同的对象调用产生不同的结果。多态性可以通过继承和接口实现。

比如,我们定义一个 Animal接口,其中包含一个 move()方法。然后我们定义三个类 CatDogBird实现 Animal 接口,这三个类分别实现自己的 move() 方法。代码如下:

public interface Animal {
    void move();
}

public class Cat implements Animal {
    @Override
    public void move() {
        System.out.println("猫在走路~");
    }
}

public class Dog implements Animal {
    @Override
    public void move() {
        System.out.println("狗在奔跑~");
    }
}

public class Bird implements Animal {
    @Override
    public void move() {
        System.out.println("鸟在飞翔~");
    }
}

这样,我们就可以通过统一的接口调用不同的方法,实现多态性。

总结

以上只是OOAD面向对象的基本原理。在实际开发中,面向对象的编程思想会极大地提高代码的复用性和可维护性,并且通过面向对象的方法能够更好地理解和设计复杂的系统。

【注】上述代码片段为Java语言片段,Markdown中的代码块可以通过用三个点号:```,配合语言缩写来插入语言的代码片段。