面向对象的程序设计( OOP )三大特性:

1)封装性:

  将业务中的数据及其处理方式方法抽象出来并封装成一个整体(类)。

 

  封装的目的: 安全性、重用性。

 

        a)将数据隐藏起来,从而达到安全的目的。

        b)将数据和代码封装起来,从而达到一定的独立性。   

        因此,它就具有一定的重用性;从而提供高了编程的效率。

 

 一个类由哪几部分组成?

① 实例变量

② 构造器

③ 设置器

④ 访问器

⑤ 功能方法

  封装:(百度)

封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。该逻辑单元负责将所描述的属性隐藏起来,外界对客体内部属性的所有访问只能通过提供的用户接口实现。这样做既可以实现对客体属性的保护作用,又可以提高软件系统的可维护性。

                    案例:需要一个类来管理普通人的信息。

                   分析: 要管理普通的信息,则需要从这个业务抽象出普通的属性来以及它的能力(方法)。

 

                   结论: 一个标准类由五部分组成。因此,在封装类按五个部分来封装。

 

2)继承性:

1什么是继承?

2.java中如何继承

3、通过一个案例来体验并明白为什么需要继承或者说:继承有何好处?

 

                         1) 有一个Person用来描述和管理普通人的信息。

                         2) 有另一个Student用来描述和管理学生的信息。

                         在现实生活中,以上两个类存在什么关系?

 

         理解:  任何一个学生都是一个普通人。 答案:对。

                    任何一个普通人都是一个学生。答案: 不对。

                     从任何一个学生身上可以看到普通人的特性。答案:对。

                  从任何一个普通人身上可以看到学生的特性。答案: 不对。

 

在实际类的封装中,发现,某个类的70--80%的成份成另一个现存类中已经存在;

因此,专家想:在生成(封装)这个类时,若70--80%成份能从现存类继承过来,则

就可以大大提高这个类的生成效率。

4、继承的好处:

        1) 提高子类生成的效率。

        2) 极大地提高了父类代码的重用性。

 

3)多态性:

统一性、高效性。

这种由于子类重写父类方法,然后用父类引用指向子类对象,调用方法时候会进行动态绑定,这就是多态

1、在Java中,父类的对象变量可以引用本类的对象。同时,它还可以引用子类的对象。

                         例如:  Person p1 = new Person();

                                      p1 = new Student();   //向上转型

 

                         由此可得出: Object类型的对象变量可以引用所有类的对象。

 

2、什么是动态绑定?

    1、什么是动态绑定?

        指的是:父类的对象变量去调用子类中重写的方法,在源程序的状态下(即:没有运行时)无法确定调用了哪个子类对象的方法;只有在程序执行期间根据父类的对象变量所引用的子类对象来确定方法是哪个子类对象的方法。

            前提:

                1)有一个父类,它又有多个子类。

                2)在所有子类中对来自父类的同一个方法或几个方法重写了。

                3)父类的对象变量引用了不同的子类对象。

                4)要通过父类的对象变量去调用子类对象中重写的方法。

   

        目的:实现了多态的价值,体现了多态的统一性和高效性。

 

       在源程序中,通过父类的对象变量去调用子类对象重写的方法。此时,不可在源程序状态确定该方法是哪个子类对象的方法,只有程序执行期间,根据父类的对象变量所引用的实际对象才能确定该方法是哪个子类对象的方法。

                         例如: 以下代码中  ss[i].area();中的area()方法在源程序(没有运行时)中不可确定area()方法是哪个子类对象的方法,只有在程序运行期间根据ss[i]所对应的实际对象来确定。这种现象称之为动态绑定。

 

3、发生动态绑定有什么前提?

                         1) 发生一个父类有多个子类。(当然,父类也可以是接口[后述])

                         2) 在所有子类中对来自父类的某个方法或某几个方法重写了。

                            3)在应用时,发生了父类的对象变量引用了多个子类的对象。(即: 多态)

                         4) 在应用时,通过父类的对象变量去调用子类中重写的方法。(即: 动态绑定)    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值