1. 抽象
从特定的角度出发,从已经存在的事物中抽取我们所关注的特性和行为,从而形成一个新的事物的思维过程,是一种从复杂到简洁的思维方式。
类和对象的关系:对象是类的实例,类是对象的模板。
2. 类
2.1 定义格式:
[修饰符] class 类名 {
[成员变量]
[方法]
}
注意:如果类使用了public修饰符,则必须保证当前文件名和当前类名保持一致;
类名需满足标识符命名规则,且一般首字母为大写;
3. 对象
3.1 对象的创建
3.2 对象的生命周期: 从new ----> gc垃圾回收器回收
4. 构造器
4.1 作用: 用于对象的创建和初始化工作
4.2 特点
4.2.1 构造器的名称必须与当前所在类的名称一致
4.2.2 构造器没有定义返回类型,不能用return关键字。但构造器是有返回值的,返回的是当前创建对象的引用地址。
4.3 默认构造器
4.3.1 当我们没有自定义构造器时,编译器会给类自定义默认无参构造器
4.3.2 默认无参构造器符合构造器的特点
4.3.3 默认无参构造器无参数无方法体
4.3.4 如果所在类没有用public修饰符修饰,则默认无参构造器也不会有public修饰符,反之亦然
4.3.5 构造器和普通方法一样,可以自定义进行重载
4.3.6 如果我们自定义了构造器,则编译器不会再为我们创建默认无参构造器。某个类必须至少存在一个构造器
5. static修饰符
5.1 static修饰符表示静态的,可以修饰成员变量,方法,内部类,被static修饰的成员属于类
5.2 特点
5.2.1 static修饰的成员,随着所在类的加载而加载并初始化,当jvm把字节码加载进jvm内存的时候,static修饰的成员会被加载并初始化
5.2.2 static修饰的成员被所在类的所有对象共享
5.3 static成员和非static成员的访问
5.3.1 在类的定义中,静态成员(静态成员变量,静态方法,静态内部类)不能访问实例成员,但非静态成员可以访问类成员
原因:类的静态成员(静态成员变量,静态方法,静态内部类)在该类被JVM加载的时候就被加载进内存被进行初始化,而非静态成员是在实例创建并初始化的过程中才会被存储在内存中
public class StaticDemo { public static String staticField; public String unStaticField; public static void staticFunction(){ System.out.println(staticField); //静态方法中只能访问静态变量 //System.out.println(unStaticField); //静态方法中不能访问非静态变量--编译报错 } public void unStaticFunction(){ System.out.println(staticField); System.out.println(unStaticField); } }5.3.2 静态成员可以通过类直接访问,也可以通过类的实例对象访问。但非静态成员不能通过类直接访问