面向对象(Day13)

类之间的关系

        继承

面向对象(Day13)_第1张图片

        实现

面向对象(Day13)_第2张图片

        依赖

面向对象(Day13)_第3张图片

        关联

面向对象(Day13)_第4张图片

        聚合

面向对象(Day13)_第5张图片

        组合

面向对象(Day13)_第6张图片

 内部类

        概念:类体中的类,就叫内部类,

        应用场景:当一个事物的内部,还需要另一个完整的结构时,并且该结构只对当前类提供服务,我们就i可以创建内部类。

        内部类可以访问外部类的私有化属性。

        内部类的类名=外部类类名$内部类类名

        class a{

                        class B{

                }

        }

        此时,编译后生成的class文件名字是:A$B

成员内部类

        成员内部类可以等同看作成员变量,类体中没有static修饰,成员内部类可以用权限修饰符修饰。

        在成员内部类中不能有静态声明。

        成员内部类可以直接访问外部类中的所有属性。

面向对象(Day13)_第7张图片

静态内部类

        静态内部类可以看作静态变量,要用static修饰。

        静态内部类中可以声明静态方法也可以声明成员方法。

        静态内部类中无法直接访问外部类的成员属性,需要创建对象。

面向对象(Day13)_第8张图片

局部内部类

        局部内部类可以等同看作局部变量,局部内部类中不能有静态声明。

        局部内部类的名字:外部类类名$1内部类类名。

        如果局部内部类名字相同,则为外部类类名$1内部类类名、外部类类名$2内部类类名以此类推

        如果内部类访问外部方法中的局部变量,则该变量需要加final修饰,不可以二次赋值。jdk1.8以后final可以省略

面向对象(Day13)_第9张图片

面向对象(Day13)_第10张图片

 

匿名内部类

        匿名内部类的类名为:外部类类名$1,以此类推

        一般在调用方法时,需要传入一个对象的时候(一般是接口实现类对象),这时候这个类不可以复用。可以在不创建class类直接传入一个匿名内部类即可。

        语法:方法名(new 父类/父接口(){匿名内部类的类体});

        匿名内部类就是一个子类,等于是不创建对应的子类文件,直接创建一个临时使用的子类对象。

        匿名内部类不可以复用。

        匿名内部类中不可以有静态声明,但可以声明常量。

        不能直接访问外部的成员属性,需要创建对象才行。

面向对象(Day13)_第11张图片

设计模式

        设计模式:代表了最佳的实践方式。

        软件设计模式又称设计模式。是一套被反复使用、多数人只晓得、经过分类编目的、代码设计经验的总结。

        使用设计模式是为了可重复使用代码,让代码更容易被他人理解,保证代码可靠性,程序的重要性。

单例模式

        单例模式:让某个类只创建一个对象,提供一个获取对象的方法,调用多次,得到的对象是同一个对象。

        方法:

                1.构造方法私有化,不能让外部直接访问

                2.需要提供一个用于获取对象的静态方法

                3.提供一个用于保存对象的静态变量

        根据对象的创建时机,分为两类

                1.饿汉模式:类加载后立刻创建对象

                2.懒汉模式:第一次创建对象时再创建对象

        懒汉模式

面向对象(Day13)_第12张图片

        饿汉模式 

面向对象(Day13)_第13张图片

 

你可能感兴趣的:(java,开发语言)