Java OOP封装.为什么是Object.doSomething(); 比doSomething(对象)更好;?

use*_*114 5 java oop

我正在努力解释java中的oop概念.

oop的一个主要原则是物体有方法; 所以Object.method(); 作品.我将其与程序编程进行对比,其中必须使用方法(Object).

这称为封装吗?

oop方式有哪些优点?

Mat*_*ttW 1

OOP的另外两个优点是重用和多态性。

重用: 如果您doSomething(Object)在一个文件或一个程序中使用,它可能适合该程序。现在,假设您需要Object在另一个程序中使用您的。您需要doSomething()在新程序中复制该方法(可能是复制并粘贴它)。这可能有效,但这是一种不好的做法,并且使维护该逻辑成为一场噩梦。如果doSomething()逻辑是内部的函数Object,那么该逻辑与对象“共存”。

多态性: 想象另一种情况,对象只是许多相似类型中的一种。如果您利用接口,许多对象都可以实现该doSomething()功能以满足其特定需求。

例子:

interface ICar
{
    void doSomething();
    void getFuel();
}

class GasCar : ICar
{
    public void doSomething()
    {
        //do something a gas car would do
    }
    public void getFuel()
    {
        //logic to pull gas out of a tank
    }
}

class ElectricCar : ICar
{
    public void doSomething()
    {
        //do something an electric car would do
    }
    public void getFuel()
    {
        //logic to pull fuel out of a battery
    }
}
Run Code Online (Sandbox Code Playgroud)