189 8069 5689

JAVA面向对象笔记

类class
    将一类事物的特征和动作,封装为属性和方法(封装相关数据,方法代码);
封装  
    实例,一个具体的个体(new创建)
    可以保存独立的数据,独立控制执行指定方法;
引用
    保存一个实例的地址
    引用特殊值null
    局部代码块:
        在方法中提供一个{}.
        局部代码块可以提高栈内存的效率,可以提前释放局部的变量内存。
    构造方法
        构造代码块:会在每一次创建对象时调用,构造代码块是先与构造方法执行的
        使用方式:直接在类中提供一个{}
        新建实例时执行,子类调用父类的无参构造方法
        class定义类必须要有构造方法
        不定义,默认为无参
        构造方法作用:任意
        常用方法:赋值

    this 
        1.this.属性名---本类里的成员变量,当变量名重复时使用
        2.this.方法名------本类的方法名
        3.This(……)----本类里的构造方法,减少代码重复
            This()只能用在构造方法中的第一行

    Overload 方法重载:一个方法有多种参数传递方式
        同名不同参数,

继承:
    把原有类中的公共的代码抽取到一个新类中,原有类和新类使用extends关键字进行联。新类称之为父类,原有类称之为子类,子类会继承父类的所有属性和方法。但是子类只能使用对子类可见的属性和方法。
    JAVA只支持单继承,只能继承一个父类,一个父类可以有多个子类

    不继承父类的部分
        构造方法
        私有成员 private
    子类实例
        由父类实例和子类实例绑定,整体作为一个实例
        调用时,先找子类,再找父类
    Overried 方法重写:在父子类中出现了方法签名一致的非静态方法,就称之为重写(Override),或者称之为覆盖
        子类调用父类方法时,父类方法不满足子类的需求,需要重写,
        必须与父类的返回值与参数一致;
        两同:方法名,参数列表相同
        返回值异常两小:
            1.返回值:
              如果返回值为基本数据类型,子类的返回值必须和父类相同
              如果返回类型为引用数据类型,子类返回值小于等于父类;
            2.异常:
            子类向上抛出的异常 要小于等于父类;
        一大:
            访问修饰符权限;public >protected>default>privade>
            子类的访问修饰符权限必须大于等于父类;
    Super
        super关键字可以调用父类可见的方法和属性
        super()和this()不能共存
        1.super.属性名-----父类里面的成员变量
        2.super.方法名---父类的方法名
        3.super()/super(参数) ----调用父类的无参构造/可见方法
            Super()只能出现在构造方法体第一句
            每一个类的构造方法有默认的super();

多态:事物的多种形态
    //编译看左边,运行看右边:
    编译时多态:方法重载
    运行时多态:向上造型,方法重写
    一致的类型,所有子类型实例,都可以被当做一致的父类型来处理
    向上转型:
        定义一个父类的变量,用以引用子类的地址空间
        只能调用父类中定义的方法
    向下转型:
        强制转换,需要保证转型的安全
        Instanceof 判断运行期的类型
        对真实类型及其父类型判断,都得到true

抽象类abstract
    半成品的类,一个未完成的类
    抽象方法只有方法定义,没有方法代码
    需要用abstract关键词定义
        1.作为通用方法在父类中定义;
        2.要求子类必须完成该方法;
        3.抽象类不能实例化,未完成时半成品;具体子类可以创建实例;

    抽象要点
        被abstract修饰的类称之为抽象类,被abstract修饰的方法称之为抽象方法
        一个类中如果有抽象方法,这个类必须为抽象类
        抽象类不能实例化!!!
        抽象类必须要有一个子类,子类可以实现抽象类中的抽象方法.如果子类实现类的抽象方法,那么久可以通过向上造型来使用抽象类.
        final不能修饰抽象类,final修饰的类为最终类不能被继承,抽象类必须要被继承
        抽象类可以写构造方法的
        抽象类可以提供普通方法
        抽象类中的抽象方法可以重载
        抽象类中抽象方法不能使用private修饰,抽象方法必须被子类实现
        抽象方法不能被static修饰,静态方法可以直接使用类名调用,在抽象类中没有意义.
        受java的单继承的影响,抽象类不能够同时继承多个类

接口interface
    接口是功能的集合,接口是比抽象类更抽象的"类",在JDK1.8之前接口中只能放抽象方法.
    接口是特殊的类
    接口是结构设计共计,用来解耦合,隔离实现
    语法:
        Interface 代替class关键词
        implements代替extends关键词
        接口中只能定义:
            公开的常量
                //接口中是可以的定义变量,,
                Public  static  finalinta=5;
                //变量默认修饰符publicstaticfinal,实际上是一个常量
            公开的抽象方法
                Public   abstract  void  show();//接口中的方法默认修饰符public  abstract
                接口不能实例化,必须在implements中实现接口中的抽象方法
                接口中的方法可以重载
            公开的内部类,内部接口
        接口中没有构造方法
        类可以同时实现多个接口:
            Class A extends Object implements x,y,z{}
        接口之间继承,不用实现关键词(可以继承多个接口),用extends
            Interface A extends x,y,z{
            }

        一个类可以实现多个接口,子接口中可以有相同的方法(接口中只有方法名没有具体的实现代码)
        java中接口是网状
        java中继承是树状结构
        java放弃了对接口的编译检查
        Javap xxx.calss可以反编译

![](/upload/otherpic76/226982.jpg)

网页名称:JAVA面向对象笔记
标题链接:http://cdxtjz.cn/article/phdoch.html

其他资讯