目录
-
类和对象
面向对象是根据面向过程而来
面向对象中也是包含面向过程面向过程: 洗袜子
1.倒一盆水
2.把袜子扔进去
3.倒洗衣粉泡一泡
4.搓一搓晾起来
面向对象: 那个对象具备洗袜子这个功能来帮助我们完成
虐汪版: -->找一个对象(女朋友) 直接将袜子给你女朋友即可以完成
找一个洗衣机 --> 洗衣服(袜子)
类 ---->描述一个对象
类的主要作用就是用来描述对象使用,对象是类的实例化(具体实现)
世间万物皆对象
如何描述类:
访问权限修饰符 class 类名{
描述了
属性 --> 当前对象具备哪些特征
方法 --> 当前对象具备哪些功能
}对象的创建:
类名 对象名 = new 类名(有参或者无参);
类的说明:
1.一个文件中可以存在多个class,但是只能有一个class使用public修饰,而且这个类必须和文件同名
2.一个文件中有多少个class(.java)就会生成多少个.class文件
3.一个类中若存在main方法,那么这个类称为执行类
4.类所创建来的对象是引用类型, 即new创建的都是开辟在堆空间
5.绝对不要使用 == 来判断两个对象是否相等 ,因为==是判断他们的地址,若需要判断两个对象是否相等 equals 判断对象的内容
6.自定义类所创建对象不能直接使用equals, 源码中equals的实现就是 == 判断,需要重写
7.因为使用new关键都是创建在堆中的,这块空间的数据需要进行回收,而java提供一种机制---->GC垃圾回收机制,专门用来管理队中所创建的对象,如果发现某个对象没有引用了(即为NULL),GC会对当前对象进行回收。
构造方法:帮助创建对象的同时对类中所提供的属性进行初始化
构造方法定义:
访问权限修饰符 类名(){
} -->无参构造方法
访问权限修饰符 类名(参数){
} --> 有参构造方法
问题:构造方法可以使用private修饰吗?
完全可以。
java中单例模式:
单例模式中一个类只有一个实例存在,避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;比如hibernate中的SessionFactory即是单例模式。
单例模式的实现<主要介绍两种>:
1.饿汉模式(线程不安全,不能延时加载)
public class Singleton{ private static Singleton instance = new Singleton(); private Singleton(){} public static Singleton newInstance(){ return instance; } }
2.懒汉模式(线程安全,可以延时加载)
public class Singleton{ private static Singleton instance = null; private Singleton(){} public static Singleton newInstance(){ if(null == instance){ instance = new Singleton(); } return instance; } }