黑马程序员——Java基础---面向对象(封装、继承、多态)

来源:互联网 发布:国家电网题库软件免费 编辑:程序博客网 时间:2024/05/21 09:37


-----------android培训java培训java学习型技术博客、期待与您交流!------------


  一、对象

        就是指的一个个实体

          在生活中,实体指的就是某一个或一类实实在在存在的事物

          java程序中的对象:是通过new关键字在堆内存中创建的实体

               

     面向对象:是一种解决问题的思想,用这种思想解决问题,我们关心的是事情中

               的各个实体对象;用这种思想写程序,我们关心的是需求中的功能有

               没有哪个现成的类中已有函数实现了,如果有,就创建这个类的一个

               实体,然后通过实体来调用该函数。

       

  二、面向对象的特点

      1、封装

      2、继承

      3、多态

   


       1.封装

            其实就是包装的意思,封装就是把事物中的细节给隐藏了,需要对外提供

            一些可以访问这些隐藏细节的方式。

 

   

           1.1好处:

             a.封装隐藏了细节,可以提高程序的安全性

             b.封装可以提高程序的维护性

             c.提高程序的复用性


           1.2封装的关键字——private

              表示私有的,只能自己用,只能本类用

              格式: private  类型  变量名


                在java中,书写封装类时,通常是成员变量全部私有化,然后对外提

            供public函数,可以让其它程序间接访问私有成员提供的public函数,通

            常有两种:赋值函数(setXxxx)、取值函数(getXxxx


      2.继承

             在java中,建立类与类之间的关系,需要用到关键字extends(继承)

             格式:类 extends 类 {}  

   

          2.1java中继承的特点:

            java只支持单一继承和多层次继承

     

          2.2继承中构造方法的特点

               在创建子类对象时,会先执行父类的构造函数,再执行子类的构造

            函数原因是在构造函数中存在着隐士三步:

                1.super(),调用父类的构造函数

                2.显示初始化

                3.执行构造代码块


           2.3继承中成员的特点:

              成员变量:当子父类中存在一摸一样的成员变量时,子类会优先使用

                        自己的成员变量在开发中,如果在父类中已经声明了某个

                        成员变量后,子类在继承后就可以直接使用,不需要在书

                        写相同的成员变量

              成员方法:在子父类中存在一模一样的成员函数时,子类对象在调用

                        函数时,会优先使用自己的成员函数,这种方法叫做重写。

               

                重写:发生在子父类中,方法名相同,参数列表相同,返回值类型相

                      同,在继承后发现父类的某些方法不适合子类本身使用后,可

                      以进行重写,

               

                重写的注意事项:

                      1.父类中的private方法,不参与子类方法的重写

                      2.子类在重写父类中的方法时,必须保证重写方法的访问权限

                         大于或等于父类中方法的访问权限

                      3.父类中的静态成员方法,子类在重写后,也必须是静态的

                      4. 使用final修饰成员方法不能被重写


       3.多态

            指事物的多种表现形态,使用多态可以提高程序的扩展性,在java中,除

            了可以使用对象本身的类型来描述外,还可以使用对象的父类来描述。

            

            例如:子类Dog 对象dog 父类Animal

                  Dod dog = new Dog()  使用对象的本身类型描述

                  Animal dog = new Dog() 使用对象的父类型描述

 

            3.1多态的前提:

                 1.多态必须建立在继承基础上

                 2.需要子类重写父类的方法

 

            3.2使用多态的利弊:

               利:多态可以提高程序的扩展性

               弊:父应用不能使用子类特有的功能


            3.3多态的转型:

                1.类型提升  父类 父引用 = new 子类()

                    当想要提高程序的扩展性,并且不需要访问子类对象的特有成

                    员时使用

                2.强制转换  子类 子引用 = (子类) 父引用

                    当想要访问子类对象中的特有成员时使用,需要用到关键字

                    instancesof,避免发生ClassCastException异常

 








              





 






               



0 0