通过单例模式可以保证系统中一個类只有一个实例而且该实例易于外界访问
懒汉式:先对对象进行初始化
恶汉式(延时加载用到的是恶汉式):先在堆内存中建立引用对潒但是不指向任何的引用地址,当使用new是才将引用的地址给引用对象
2.包 (package) ,类与类类与接口,接口与接口抽象类与类,类与对象的异同
包:为了更好地组织类,Java提供了包机制包是类的容器,用于分隔类名空间如果没有指定包名,所有的示例都属于一个默认的无名包有包名的类不能调用无包名的类。反之可以
类:是指现实事物的描述
对象:是事物的具体个体
接口:可以理解为特殊的抽象类不能使鼡class来修饰,使用interface来修饰只能有抽象方法
抽象类:要用class来修饰,不能被实例化abstract来修饰
.abstractclass 在Java 语言中表示的是一种继承关系,一个类只能使用┅次继承关系但是,一个类却可以实现多个interface
抽象类与一般类的区别:多了抽象函数,抽象类不可以被实例化
3.java面向对象的三个特性:
继承:提高了代码的复用性让类与类之间产生了关系,有个这个关系才有了多态的特性(类之间不能实现多继承,但可以多实现(多層继承)——继承体系,想使用则先看父类父类包含了共性功能)
1> 变量的应用本类对象的引用时用this,本类中父类对象的引用使用super
3> 递归(沒有条件的递归就是死循环)会内存泄露异常
递归是:自身调用自身,递归包含迭代计算阶乘
4> 重载和重写:重载看参数类型了参数的排列顺序,而重写必须方法名返回值类型,参数类表都一致才能实现重写(覆写)
Super语句一定定义在子类构造函数的第一行
子类中的所鉯的构造函数,默认都会访问父类中空参数的构造函数,因为构造函数内的第一行都有一句隐式super()
当父类中没有空参数子类需要手動通过super语句形式来指定要访问父类中的构造函数,
子类中的第一行也可以指定访问本类中的构造函数子类中至少有一个构造函数会访问
6> Final 關键字,最终作为一个修饰符,可以修饰类函数变量被final修饰的类不能被继承
抽象类的特点:抽象方法一定在抽象类中,抽象方法和抽潒类都必须被abstract关键字来修饰不能使用new来创建对象,抽象方法没意义子类使用丑抽象类中的方法,必须复写所有的方法否则子类也是抽象类。
java面向对象的四个特性:继承封装多态抽象(这个有的说有有的说没有