Java基础学习摘要之面向对象

面向对象

形式参数和返回值

方法的形参(方法返回值)
    基本数据类型,传递对应的数据类型的这种值
    引用数据类型:
        引用类型是(具体)类:需要传递该类的具体对象
        抽象类:需要传递的是该抽象类的子类对象
        接口:需要传递该接口的子实现类对象

内部类:(观察源码 :存在内部类的方式)

     在一个类A中定义另一个类B,类B就是类A的内部类.

内部类的分类:

    不管是成员内部类还是局部内部类,都是可以访问外部类的成员,包括私有.

    成员内部类(非静态的):在外部类的成员位置定义的这个类.
                        直接通过外部类访问成员内部类中的成员方法
        格式:外部类名.内部类名 对象名 = 外部类对象.内部类对象;
            对象名.内部类中的方法();

            成员内部类的修饰:
                private :保证数据的安全性;
                static:为了数据的方便调用

    静态的成员内部类:
          通过外部类访问静态的成员内部类中的成员方法:
        格式:外部类名.内部类名 对象名 = new 外部类名.内部类名() ;
            对象名访问.方法();

        静态的成员内部类中,不管成员方法是静态的还是非静态的,只要访问外部类的成员,该成员必须
    被static修饰!

    局部内部类:在外部类的局部位置中定义的类:

        针对jdk1.8以下
        局部内部类访问局部变量的时候,该变量必须被final修饰,局部变量-->常量(常驻内存)

            通过外部类访问局部内部类的成员方法;
            创建外部类对象
            使用外部类对象调用外部类的成员方法;

    匿名内部类:
         前提:接口/类(具体类/抽象类)
         格式:
               new  接口名/类名(){
               重写或者实现方法();
                } ;

        匿名内部类的本质:继承该类或者实现该接口子类(子实现类)对象

多态

多态形成条件:
                    1)有继承
                    2)有重写
                    3)父类引用指向子类对象
多态中的成员访问特点
        a:成员变量
            编译看左边,运行看左边。
        b:构造方法
            创建子类对象的时候,会访问父类的构造方法,对父类的数据进行初始化。
        c:成员方法
            编译看左边,运行看右边。
        d:静态方法
            编译看左边,运行看左边。

Object:任何类的根类,任何继承自该类

有三种获取字节码文件对象的方式
    1)getClass() ;  它可以获取当前类的字节码文件对象(class 类对象)
    2)数据类型的class属性
        String.class   Student.class
    3)Class类提供了一个静态方法:
        forName(String path):path:当前类的全路径名称 (开发中常用的)
        hashCode() ; 返回的int类型整数类型理解地址值,它不是实际地址值(hashtable:哈希表
                    跟他有关系)
        getClass():class 类对象

Class类

            String getName() ;返回的就是当前类的全限定名
            包名.类名;
            toString():建议他所有的子类都重写该方法
            防止输出对象名称的时候,打印的是地址值

你可能感兴趣的:(JavaSE)