java理论之java面向对象

---恢复内容开始---

面向对象的四大特征:抽象   继承  封装   多态  

   一:面向对象中的类

      1:类的作用  代码复用

      2:类的构成---代码段 : 一个完整的大括号就是一个代码段,就代表一个独立的内存空间

           ---动态代码段 : 就是没有任何修饰的一对大括号

           ---静态代码段:用static修饰的一对大括号static{},是在加载阶段运行的代码段

           ---成员变量 : 保存在堆内存中,堆内存的大小是动态分配的.   它的调用对象名.成员变量名     成员变量属于关联关系---成员变量的值是另外一个类对象的应用

           ---静态变量 : 是属于类级别的,每个对象中的值都一样,保存在内存中的静态数据区   它的调用:类名.静态变量名

           ---局部变量 : 在方法中声明的变量是局部变量,并且声明的时候,就必须赋值    局部变量属于依赖关系 ---局部变量的值是另外一个类对象的应用

           ---常量 : 声明:public static final 数据类型 大写_ = 值 ; 在整个软件生命周期中,值不会改变

           ---成员方法 : 没有static修饰的方法叫成员方法    它的调用 : 通过对象名.成员方法名

           ---静态方法 : 用static修饰的方法   调用 : 类名.静态方法名----保存在静态代码区中

           ---构造方法 :用于在类实例化中,创建当前类对象的方法(实例化当前类对象); 默认是:公共的,静态的,没有返回值的,名字和类名一样的

           ---this对象 :1 给成员变量加前缀,然后赋值

                 2 用在构造方法中,重载调用本类中别的构造方法,this()重载调用的时候,必须写在构造方法的第一行

                 3 用于表示本类的对象,里面保存了本类的地址,this位于堆内存中第一个内存片中

                 4 在堆内存中,我们有堆内存中第一个内存片的内存地址作为整个对象的内存地址,并且命名为this

           ---super对象 : super代表的是当前子类对象中的父类型特征。

                    在子类的构造方法重载调用父类别的构造方法的时候,必须卸载第一行

                    super()和this()不能重复出现

                    super可以用来调用父类的成员属性和成员方法

      3:类的形式---系统类,类库类,普通类和内部类

            内部类分为4种 : 静态内部类

                    成员内部类

                   局部内部类

                   匿名内部类

      4:类的继承---一个类只能从一个类继承,只有成员变量和成员方法可以被继承(局部变量在方法的内部,无所谓被继承)

             ---implements  可以从多个接口实现

             ---继承中方法的覆写Override : 1 必须是有继承关系的两个类之间

                         2 方法名,返回值类型,参数列表必须相同

                         3 重写的方法不能比原有的方法有更低的访问权限

                         4 重写的类不能比父类有更宽泛的异常

                         5 私有方法不能被覆盖重写,即使被覆写了,也会访问父类的

                         6 构造方法不能被重写

                         7 静态方法不能被重写

                         8 覆写是特指成员方法的覆写,和成员变量,静态变量和静态方法无关

      5:类与对象之间 的6种关系 ---继承,实现,依赖(局部变量是另外一个类对象的引用),关联(成员变量是另外一个类对象的引用),聚合(类中的集合中的元素是另外一个类对象的引用),组合

      6:final---final修饰的类不能被继承

          final修饰的方法不能被重写

          final修饰的局部变量不能二次赋值

          final修饰的成员变量必须立刻赋值

            final修饰的静态变量,就是常量了

      6:特殊类:抽象类

           接口---里面全是抽象方法的类就是接口,接口里面没有变量只有常量

           常量---大写    public static final AAA;特点:在软件的生命周期不会改变

    二:对象 new对象实例化的4个步骤---1 调用构造方法;2  开辟空间;3 复制;4 赋值

    三:抽象类    用abstract修饰的类就是抽象类

          抽象类中不一定有抽象方法,但是抽象方法一定声明在抽象类中

          没有方法体的方法叫抽象方法,就是指大括号都没有的方法,需要用abstract修饰

          一个非抽象类结继承一个抽象类,必须把所有的抽象方法实现

          抽象类和抽象方法都不能被final,因为就是被用来继承实现的,final是不能被继承和覆写的,冲突

    四:接口  接口的声明---[修饰符列表] interface 接口名 {}

        接口内容   1 常量,psf,但是接口中默认就是常量,所以psf可以被省略

              2 所有的方法都是抽象方法,所以abstract可以被省略

              3 接口中没有构造方法,接口不能被实例化

              4 接口之间可以多继承,extends

              5 一个类只能继承一个类,但是可以实现多个接口

              6 一个非抽象类,实现一个接口必须全部实现接口中的方法

    五:多态  多态发生在赋值的时候

        继承与实现---extend,implements

        向上转型---父类引用指向子类对象---把子类那个对象的内存地址赋值给父类对象的那个引用变量

        重写---@override

        向下转型---必须现有向上转型,然后才有向下转型

        多态的4种形式---成员方法多态:在方法声明的形参列表中的是父类的,调用传值的时候是子类的对象引用

                ---构造方法多态:构造方法声明的时候,是父类传值的时候,是子类的对象引用

                ---直接实例化多态:声明的时候是父类,实例化的时候是子类对象的引用的

                ---成员变量多态:成员变量声明为父类的,但是赋值的时候,是子类的对象引用

    六:Object---toString()每个对象对自己的一个文字描述,默认是输出对象的内存地址

          ---hashCode()返回该对象的内存地址

          ---equals()默认比较引用数据类型的内存地址,需要按照你的需求进行重写

          ---finalize()系统清理某个对象的垃圾的时候会调用的方法

---恢复内容结束---

面向对象的四大特征:抽象   继承  封装   多态  

   一:面向对象中的类

      1:类的作用  代码复用

      2:类的构成---代码段 : 一个完整的大括号就是一个代码段,就代表一个独立的内存空间

           ---动态代码段 : 就是没有任何修饰的一对大括号

           ---静态代码段:用static修饰的一对大括号static{},是在加载阶段运行的代码段

           ---成员变量 : 保存在堆内存中,堆内存的大小是动态分配的.   它的调用对象名.成员变量名     成员变量属于关联关系---成员变量的值是另外一个类对象的应用

           ---静态变量 : 是属于类级别的,每个对象中的值都一样,保存在内存中的静态数据区   它的调用:类名.静态变量名

           ---局部变量 : 在方法中声明的变量是局部变量,并且声明的时候,就必须赋值    局部变量属于依赖关系 ---局部变量的值是另外一个类对象的应用

           ---常量 : 声明:public static final 数据类型 大写_ = 值 ; 在整个软件生命周期中,值不会改变

           ---成员方法 : 没有static修饰的方法叫成员方法    它的调用 : 通过对象名.成员方法名

           ---静态方法 : 用static修饰的方法   调用 : 类名.静态方法名----保存在静态代码区中

           ---构造方法 :用于在类实例化中,创建当前类对象的方法(实例化当前类对象); 默认是:公共的,静态的,没有返回值的,名字和类名一样的

           ---this对象 :1 给成员变量加前缀,然后赋值

                 2 用在构造方法中,重载调用本类中别的构造方法,this()重载调用的时候,必须写在构造方法的第一行

                 3 用于表示本类的对象,里面保存了本类的地址,this位于堆内存中第一个内存片中

                 4 在堆内存中,我们有堆内存中第一个内存片的内存地址作为整个对象的内存地址,并且命名为this

           ---super对象 : super代表的是当前子类对象中的父类型特征。

                    在子类的构造方法重载调用父类别的构造方法的时候,必须卸载第一行

                    super()和this()不能重复出现

                    super可以用来调用父类的成员属性和成员方法

      3:类的形式---系统类,类库类,普通类和内部类

            内部类分为4种 : 静态内部类

                    成员内部类

                   局部内部类

                   匿名内部类

      4:类的继承---一个类只能从一个类继承,只有成员变量和成员方法可以被继承(局部变量在方法的内部,无所谓被继承)

             ---implements  可以从多个接口实现

             ---继承中方法的覆写Override : 1 必须是有继承关系的两个类之间

                         2 方法名,返回值类型,参数列表必须相同

                         3 重写的方法不能比原有的方法有更低的访问权限

                         4 重写的类不能比父类有更宽泛的异常

                         5 私有方法不能被覆盖重写,即使被覆写了,也会访问父类的

                         6 构造方法不能被重写

                         7 静态方法不能被重写

                         8 覆写是特指成员方法的覆写,和成员变量,静态变量和静态方法无关

      5:类与对象之间 的6种关系 ---继承,实现,依赖(局部变量是另外一个类对象的引用),关联(成员变量是另外一个类对象的引用),聚合(类中的集合中的元素是另外一个类对象的引用),组合

      6:final---final修饰的类不能被继承

          final修饰的方法不能被重写

          final修饰的局部变量不能二次赋值

          final修饰的成员变量必须立刻赋值

            final修饰的静态变量,就是常量了

      6:特殊类:抽象类

           接口---里面全是抽象方法的类就是接口,接口里面没有变量只有常量

           常量---大写    public static final AAA;特点:在软件的生命周期不会改变

    二:对象 new对象实例化的4个步骤---1 调用构造方法;2  开辟空间;3 复制;4 赋值

    三:抽象类    用abstract修饰的类就是抽象类

          抽象类中不一定有抽象方法,但是抽象方法一定声明在抽象类中

          没有方法体的方法叫抽象方法,就是指大括号都没有的方法,需要用abstract修饰

          一个非抽象类结继承一个抽象类,必须把所有的抽象方法实现

          抽象类和抽象方法都不能被final,因为就是被用来继承实现的,final是不能被继承和覆写的,冲突

    四:接口  接口的声明---[修饰符列表] interface 接口名 {}

        接口内容   1 常量,psf,但是接口中默认就是常量,所以psf可以被省略

              2 所有的方法都是抽象方法,所以abstract可以被省略

              3 接口中没有构造方法,接口不能被实例化

              4 接口之间可以多继承,extends

              5 一个类只能继承一个类,但是可以实现多个接口

              6 一个非抽象类,实现一个接口必须全部实现接口中的方法

    五:多态  多态发生在赋值的时候

        继承与实现---extend,implements

        向上转型---父类引用指向子类对象---把子类那个对象的内存地址赋值给父类对象的那个引用变量

        重写---@override

        向下转型---必须现有向上转型,然后才有向下转型

        多态的4种形式---成员方法多态:在方法声明的形参列表中的是父类的,调用传值的时候是子类的对象引用

                ---构造方法多态:构造方法声明的时候,是父类传值的时候,是子类的对象引用

                ---直接实例化多态:声明的时候是父类,实例化的时候是子类对象的引用的

                ---成员变量多态:成员变量声明为父类的,但是赋值的时候,是子类的对象引用

    六:Object---toString()每个对象对自己的一个文字描述,默认是输出对象的内存地址

          ---hashCode()返回该对象的内存地址

          ---equals()默认比较引用数据类型的内存地址,需要按照你的需求进行重写

          ---finalize()系统清理某个对象的垃圾的时候会调用的方法

原文地址:https://www.cnblogs.com/xcxcxc/p/4664098.html