Java类和对象
对象:对象是类的一个实例
类:类是一个模板,它描述一类对象的行为和状态
创建类
class 类名{ //属性 //方法 }
创建对象
声明:声明一个对象,包括对象名称和对象类型
实例化:使用关键字new来创建一个对象
初始化:使用new创建对象时,会调用构造方法初始化对象
类名 对象名=new 类名(参数值);
访问属性和方法
对于非静态变量和方法,可以通过对象和.运算符来调用
对象名.属性名
对象名.方法名
对于静态变量和方法,可以通过类he.运算符来调用
类名.属性名
类名.方法名
变量类型
局部变量:在方法中定义的变量。变量声明和初始化都是在方法中,方法结束后,变量自动销毁。
成员变量:定义在类中,方法体之外的变量。在创建对象的时候实例化。
类变量:定义在类中,方法体之外,声明为static类型。
构造方法
构造方法与类名同名,没有返回值也不使用void声明,通过定义不同形参列表可以定义多个构造方法。
每个类都有构造方法,如果没有显示声明,则Java编译器会默认提供。
在创建对象的时候,至少要调用一个构造方法。
源文件声明规则
1、一个源文件只能有一个public类,但可以有多个非public类,源文件名称与public类的类名应保持一致。
2、包主要用来对类和接口进行分类,包对应嵌套的文件夹。
3、包的声明:package 包名。应放在源文件的首行,其对文件内定义的所有类都有效。
4、包的导入:import 包名.类名。应放在包的声明和类的声明之间,对文件内定义的所有类都有效。
访问修饰符
public
使用对象:类、接口、变量和方法。对所有类可见。
private
适用对象:变量和方法,不能修饰类。在同一类中可见。
default
使用对象:类、接口、变量和方法。对同一包内可见。
protected
使用对象:变量和方法,不能修饰类。对同一包内的类和所有子类可见。
非访问修饰符
static
静态变量:用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。静态变量也被称为类变量。
静态方法:用来声明独立于对象的静态方法。静态方法只能使用静态变量。
final
final变量:变量一旦赋值后,不能被重新赋值,被final修饰的实例变量必须显式指定初始值。
final方法:可以被子类继承,但是不能被重写
final类:不能被继承
abstract
抽象类:不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
抽象方法:一种没有任何实现的方法,该方法的具体实现由子类提供。
synchronized
声明的方法同一时间只能被一个线程访问。
transient
该修饰符包含在定义变量的语句中,用来预处理类和变量的数据类型。序列化的对象包含被transient修饰的实例变量时,Java虚拟机跳过该特定的变量。
volatile
volatile 修饰的成员变量在每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。而且,当成员变量发生变化时,会强制线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。
一个 volatile 对象引用可能是 null。