面向对象:在程序设计中使用对象来映射现实中的事物,使用对象的关系来描述事物之间的关系叫做面向对象;
面向对象的特点:封装,继承,多态;
封装:是面向对象的核心思想,将对象的属性和行为封装起来;(private修饰符)
继承:主要描述类和类之间的关系;子类可以继承父类除了private修饰属性或方法以外的所有属性和方法;
多态:是指在继承关系下不同子类重写父类的同名方法;也就是允许程序中出现同名现象;
定义类:关键字class修饰;在类的内部写变量和方法;
创建对象:对象是通过类来创建的;
创建语句:类名 对象名=new 类名();
例如 :Person p=new Person();
//Person p声明一个Person类型的变量p;
//"="将Person对象在内存中的地址赋值给变量p;这样变量p就持有了对象的引用;
当并没有为声明的变量赋值时,java虚拟机会自动为变量进行初始化:
成员变量类型 | 初始值 |
byte | 0 |
short | 0 |
int | 0 |
long | 0L |
float | 0.0F |
double | 0.0D |
char | 空字符串 |
boolean | false |
引用数据类型 | null |
当对象被实例化后,如果当前没有任何变量引用这个对象时,它将会成为垃圾对象,不能再被使用;
构造方法:在创建对象时会被自动调用;
需要满足以下三个条件:1.名字与对象名一致;2.无返回类型;3.不能使用return语句返回值;
之前说过方法可以重载;同理构造方法也可以重载;只要参数类型或者个数不同即可;
this关键字和static关键字在我之前的文章中已经写过,这里不再过多叙述;
单例模式:
单例模式是Java中的设计模式,是指在设计一个类时,运行期间针对该类只有一个实例对象;
特点:1.类的构造方法使用private修饰,
2.在该类的内部创建该类的实例对象,并使用静态变量INSTANCE引用该对象;并用private修饰
3.类的内部定义一个静态方法,用于返回该实例对象;
内部类:
java中,允许在类的内部定义类,这样的类成为内部类;根据内部类的位置,修饰符,和定义的方式将内部类分为 :
成员内部类,静态内部类,方法内部类;
成员内部类:在类的内部直接定义类,该类称为成员内部类,成员内部类可以访问外部类的所有成员;
创建成员内部类对象:外部类名.内部类名 对象名=new 外部类名().new 内部类名();
静态内部类:用static修饰的成员内部类成为静态内部类;他可以在不创建外部类对象的情况下被实例化;
静态内部类种只能访问外部类的静态成员,且在其中可以定义静态成员变量,而在非静态内部类中不允许定义静态 成员变量;
创建静态内部类对象:外部类名.内部类名 对象名=new 外部类名.内部类名();
方法内部类:在类中的方法里面定义的类,他只能在当前方法中被调用;