首页 > 代码库 > Java面向对象的基本思想理解

Java面向对象的基本思想理解

1、封装:把一些数据类型(属性)和有关数据类型的操作(方法)封装起来,形成一个不可分开的实体(类);给内部的属性私有化,提供公开的方法。当外部需要访问时,可以不用管实体内部的具体逻辑关系,通过对象调用类内部的方法就行了;

    优点:信息隐藏(安全性)、简化操作;

    例子:一个账户类,属性有:账号、密码等;方法有存钱、取钱等;因为要保护个人信息,所以将属性私有化,然后提供公开的get,set方法,这样就不用每创建一个账户就要去改账号和密码了,只需要通过这个类的实例调用get、set方法就行了。


2、继承:将一些公有的特性(属性)和行为(方法)拿出来封装在一个类(父类)中,其他类可以通过继承这个类来得到这些属性和方法,就不用每次都重新定义了;

    优点:代码复用性好、简化操作;

    例子:一个Person类,里面有姓名、年龄等属性,有说话、吃饭等方法;然后定义一个学生类时,只用继承Person类,就可以不需要再定义这些属性和方法(也可以重新定义),只要分别赋值就可以了。


3、多态:程序中定义的引用变量所指向的具体类或者通过这个引用变量发出的方法调用,在编译的时候是不确定的,只有到运行时才知道具体指向哪个类,具体调用哪个方法;

    优点:灵活、抽象、行为共享、代码共享

    例子:Person  p=new  Student()这就是多态;在编译时,p指向哪个类,p调用的方法是哪个类里的都是不确定的,在运行时才确定;

    多态里有向上造型和向下造型;向上造型是自动转化的,小类型自动转换成大类型;向下造型是强制的,不是所有时候都可以转化;如:

Father  fa=new  Father();

Child   ci=new  Child();

ci=(Child)fa;这样编译能通过,但是运行时会出现java.lang.ClassCastException (类转换异常)

    如果是:创建父类对象,实例化子类就可以进行向下造型;

    补充:多态发生的前提:

        1、重载:方法签名不同:参数类型不同、参数个数不同、参数顺序不同,方法名要相同;与返回类型、访问权限无关;

        2、重写:a、方法签名要完全相同;

                        b、访问权限子类重写的方法不能小于父类里的方法(更开放);

                        c、子类重写的方法抛出的异常应该和父类方法抛出相同或者是父类方法抛出的异常的子类;

                        d、返回类型:如果是基本类型,则要相同;如果是引用类型,子类方法应该与父类相同或者是父类的子类(要有包含关系)

        多态中经常用到一个关键词instanceof:    x instanceof A:检验x是否为类A的对象,返回值为boolean型。常用在equals方法的重写里面。


4、抽象:从一些已有的事物中抽取出我们所关心的特性(属性)和行为(方法),从而形成一个新的事物的过程。

    优点:代码复用性好,操作方便

    例子:各种各样的汽车,我们看到都知道是车,是因为我们都有一个抽象的概念,比如说:四个轮子,能跑等等,这就是抽象!

 


本文出自 “Java学习” 博客,请务必保留此出处http://12181171.blog.51cto.com/12171171/1955941

Java面向对象的基本思想理解