面向对象编程

面向对象编程,第1张

面向对象编程
1.面向过程与面向对象2.类(class)
3.面向对象三大特征4.面向对象关键字
5.object类6.包装类

1.面向过程与面向对象

  • 面向过程
  • 面向对象:类;对象(两个要素)       

2.类(class)                                                                                              

  • 类:   int  age;     String  name;    String  sex;      定义一些变量保存信息
  • 定义类: 

                   class  类名{

                      所含变量定义;

                                      }

  • 使用类实例化对象:在定义了类之后只是定义了数据类型,要有使用类,必须用该类型定义相应的“变量”。一般情况下由类定义的“变量”不叫“定义变量”,而叫“实例化对象”(object)    

                                                   类名   对象名 = new  类名();

                                        eg:Customer zhangsan=new  Customer();

  • 对象的引用性质:           

                       和数组名一样,对象名也是表示一个引用,对象名赋值并不是将该对象中的内容进行赋值,只是将引用赋值。  

  • 成员函数: 

              Java中的函数编写在一个类中,一般称为成员函数。

  • 定义和使用成员函数: 

                       void  函数名称{

                                             函数内容; 

                                                 } 

  • 函数参数的传递 

                1.简单数据类型采用值传递       void fun(int a){a=a+1;}-------c.fun(a)

                2. 引用数据类型采用引用传递      void fun (int []  arr){arr[0]=arr[0]+1;}------c.fun(arr)

3.面向对象的三大特征 

  • 封装 

      将不能暴露的成员隐藏起来 

      1.封装的设计思想

      2.如何进行封装:使用权限修饰符;

                                      定义与属性存取相关的方法;

      3.四种权限修饰符:private,public,protected,default 

  • 继承 

       在Java中被继承的叫做父类,基类,超类,与之对应的类称为子类或派生类

       1.为什么需要继承

         提高代码复用性

         类与类之间产生了关系,关系的出现,就是多态的由来

        2.继承的格式

                 class SubClass extends SuperClass {}

        3.继承的限制

                     单继承局限:不能多继承,两个类的耦合性增加,如果父类有改动时会直接影响子类。 

                     显式继承&隐式继承

       4.子类都逃不出父类构造的调用

       5.继承的特性

                  子类拥有父类对象所有的属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法子类是无法访问,只是拥有。

                  子类可以拥有自己的属性和方法,即子类可以对父类进行扩展。

                  子类可以用自己的方式实现父类的方法。

                  提高了类之间的耦合性(继承的缺点,耦合度高就会造成代码之间的联系越紧密,代码独立性越差)。

         6.解决父类没有不带参数的构造函数的两个方法

             给父类增加一个不带参的空构造函数

             在子类的构造函数中,第一句用super给父类构造函数传参数

             注意:super必须写在子类构造函数的第一句,参数必须和父类的参数列表类型匹配

  • 多态 

       1.多态是什么

           多态性是指允许不同类的对象对同一消息作出响应,多态性包括参数化多态性和包含多态性,多态性语言具有灵活,抽象,行为共享,代码共享的优势,很好的解决了应用程序函数同名问题。

       2.多态性的使用:重载;覆盖

           重载:发生在同一类中,与父类子类,继承无关系。标识一个函数除了函数名外,还有函数的参数(个数和类型),一个类中可以有两个或更多的函数,叫同一个名字而他们的参数不同。只是他们的功能相似,所以命名一样,增加可读性。

           覆盖:发生在子类中,必须有继承的情况下才有覆盖发生。继承一个类,也就有父类的全部方法,要改变哪个功能,就可以把那个函数在子类中重新实现一遍。这样在调用方法的时候,就是执行子类的过程了,父类中的函数就被覆盖了。

           在重写时,子类函数的访问权限不能比父类更加严格

           在覆盖的情况下,如果一定要在子类中调用父类的成员函数,可以直接使用“super.函数名”

      3. 多态性应用举例:

            Animal类,有cat和dog两个子类,,在Animal中有个say方法,当Cat调用这个方法的时候输出的是“小猫喵喵喵”,当Dog调用这个方法时,输出的是“小狗汪汪汪”,这就是Java多态的实现。

      4.使用多态

          函数传入的形参可以是父类类型,而实际传入的可以是子类对象。

          函数的返回类型是父类类型,而实际返回的可以是子类对象。

     5.子类和父类对象的类型转换:

          子类类型对象转换成父类类型:无需转换

          父类类型对象转换成子类类型:强制转换

4.面向对象关键字             

1.package关键字

2.import关键字

3.this关键字:当前对象的引用,谁来调用我,我就代表谁

4.static关键字:静态的

5.instanceof关键字:类型判断

6.final关键字:修饰类不能被继承;修饰函数在被子类继承的情况下,show函数不能被重写;修饰成员变量。

7.abstract关键字:修饰类(抽象类);修饰方法(抽象方法);

  抽象类,抽象方法:被继承,被重写 

  不能被实例化,必须被重写,可以含有普通函数

8.interface关键字:

   接口中的所有成员变量(全局变量):默认是由public,static,final修饰的

   接口中的所有抽象方法(abstract):默认是由public,abstract修饰的

   接口是抽象方法和常量值定义的集合。

   接口和类的关系:并列,实现

   接口可以通过extends继承另一个接口

   一个类可以在继承一个父类的同时实现一个或多个接口

5.object类

   1.==和equals方法

   2.object类的equals方法

   3.object类的toString()方法

6.包装类 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/739981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-28
下一篇 2022-04-28

发表评论

登录后才能评论

评论列表(0条)

保存