如何理解面向对象

2025-10-17 14:08:42

1、记得当年,JAVA课第一讲就是面向对象,用老师的一句话“一切皆对象”,那么如何理解程序设计中的面向对象,我们重点关注下面向对象程序设计中的几个关键点,下面将以问答形式阐述(代码以JAVA示范,读者可联系其它面向对象语言):

如何理解面向对象

2、*什么是对象,对象的方法/属性又是什么?

这里的对象可以是一切的事物,包括:人、物体等

属性即是该事务的一些特征,如:颜色、大小等

方法是事务的动作,如:跑,跳等

举个例子:

家里养了一只棕色的泰迪,它今年一岁半了,喜欢“汪汪”叫

这里的泰迪就是一个对象,“棕色、一岁半”都是它的属性,叫是它的动作(即方法),用代码示范:

class Teddy{

        public Color color;//属性

        public double age;//属性

        public void bark(){}//方法

}

如何理解面向对象

3、*怎么理解程序中的

所谓“类”,即分类、归类(--可能有点不太恰当,但是方便理解)

就是把具有相似特征的事物放在一起统称为类

例如:生物学上有:鸟类、哺乳类等划分

4、*什么是继承

我们还拿上面的泰迪举例:

泰迪、腊肠、黄毛、斑点等,它们有犬类所共有的特征:都有眼睛、有鼻子、有耳朵、会叫、会跳。。。这些属性和方法都是从犬类继承过来的

这时我们就可以对上面泰迪的代码做些改动,首先定义一个犬类,它有一些通用的属性和方法

class Dog{  

        public Color color;//属性

        public double age;//属性

        。。。。

         public void bark(){}//方法

}

class Teddy extends Dog{//泰迪继承了犬类,即拥有犬类的通有属性和方法

}

5、*什么是多态

我们在上面的基础上再做一些改动,可以看出泰迪和腊肠都继承了犬类“叫”的动作,但是它们的叫又有些区别,像这不同的犬都用“叫”这个动作,但又有它们各自的特点,这就是多态

Dog类不变

class Teddy extends Dog{

        @override

         public void bark(){}

}

class Dachshund extends Dog{//腊肠

         @override

         public void bark(){}

}

如何理解面向对象

6、*什么是封装

这个其实比较好理解,拿现实生活的例子来说“汽车发动机”,如某国产轿车采用原装进口发动机,那么这个轿车生产商直接拿进口发动机来用,不知道发动机内部构造以及如何生产(PS:笔者衷心希望国产汽车能够强大起来

class Engine{

       private List<T> materials;

       private List<T> parts;

       。。。。

       private Engine produce(){

         ............

       }

/*****上面的原材料,零部件,生产工艺等等我们是看不到的***/

       public Engine getEngine(){//只能得到现成的发动机

            return produce();

       }

}

如何理解面向对象

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢