类与对象
- 类的定义格式
注意:(1)类名使用大驼峰格式、方法名或者变量名都是小驼峰。
(2)一般一个java文件只定义一个类。
(3)一个Java文件只有一个public类,且类名要和文件名相同。
(4)main方法一般用public 修饰的类。
二、类的实例化
定义了一个类,相当于就自定义了一个新的引用数据类型。
用类创建对象的过程就是类的实例化。使用关键字new。
注意:(1)实例化出的对象可以利用.访问成员变量和成员方法。
(2)同一个类可以实例化出多个实例。
三、this引用
形参变量和成员变量名相同了,此时为了区分可以在成员变量前加上this,表示当前对象的引用。
什么是this引用?
Java编译器给每一个非静态成员方法添加了一个隐藏的引用类型参数,该引用参数指向当前的对象,当某一个成员方法运行时会调用该成员方法的对象。
注意:
- 哪个对象调用就是哪个对象的引用类型。
- this只能在成员方法中使用。
- 只能引用当前对象,不能引用别的对象。
三、对象的构造和初始化
方法内部定义一个局部变量如果不初始化会报错,但是成员变量不会,如果没初始化,会有初始值。
构造方法:
是一个特殊的成员方法,没有返回值且不可写void;方法名和类名相同。
在创建对象时,由编译器自动调用,并且整个对象的生命周期内只能调用一次。
注意:
(1)构造方法可以重载。
(2)构造方法如果没有写,会默认一份没有参数的构造方法。
(3)一旦用户定义了有参数的构造方法,就不会默认没有参数的构造方法。
(4)在构造方法中可以使用this引用调用别的构造方法。但是必须时第一句中。
访问修饰限定符:
常见的包:
static 关键字:
static修饰成员变量:
(1)成员变量属于类不属于哪一个对象。所有对象共享。
(2)对成员变量的访问用类名。
static 修饰成员方法:
也是类的成员方法,且内部不可以用this。
静态方法不能直接利用非静态方法,要使用new对象。
静态方法不能重写。
static成员变量的初始化:
一般不放在构造方法中初始化。
分为两种:就地初始化和静态代码块初始化。
就地初始化就是直接在定义的时候直接初始化。
代码块:
{}使用花括号括起来的就是代码块。根据代码块的位置和关键字,又可以分为四种:
- 普通代码块。定义在方法中的代码块
- 构造块。又叫实例代码块;一般初始化实例成员变量
- 静态块。
- 同步代码块