概念:
1.类:类是一个模板,它描述一类对象的行为和状态。
2.对象:对象是类的一个实例,有状态和行为。
Java类:
- Java类可以看作对象的模板。类可以包含成员变量,构造方法,成员方法,代码块。
- 变量:成员变量,类变量,局部变量。
- 成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。成员变量的销毁是随着对象的回收而进行的。
- 类变量:类变量声明在类中,方法体之外,但必须声明为static类型。类变量的初始化只在类加载时完成,且只进行一次初始化。类变量属于类,不属于对象,在内存中只有一份副本。推荐通过
类名.类变量
访问类变量。类变量的销毁是随着类的回收而进行的。 - 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 构造方法:
- 每个类都有构造方法。如果没有显式地为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。如果显式地为类定义构造方法,Java编译器将不会为该类提供一个默认构造方法。
- 在创建一个对象的时候,至少要调用一个构造方法。构造方法的名称必须与类同名,但是,与类同名的方法不一定是构造方法。一个类可以有多个构造方法。
- 构造方法没有返回值。
- 构造方法的调用只能使用
new
关键字。 - 构造方法一般用于创建对象并且初始化。
- 构造方法的可见性和当前类有关,当前类是
private
,构造方法也应该是private
类名([参数列表]){ //构造方法体 }
Java方法:
- Java方法就是成员方法。
- 成员方法就是描述对象的行为。
- 成员方法的定义:
[可见性] [修饰符] [返回值] 方法名(参数列表){ //方法体 }
- 可见性:就是
private public protected 缺省
关键字,用于限制访问的修饰符。详情见Java关键字--可见性 - 修饰符:就是
final static abstract ...
关键字,用于描述方法的特征。详情见Java关键字--final,Java关键字--static... - 返回值:包括void返回值,基本类型返回值,引用类型返回值。
- 参数列表:包括基本类型参数,引用类型参数。
- 可见性:就是
Java方法--返回值:
- void返回值:返回值类型为void,表示没有返回值。
[可见性] [修饰符] void 方法名(参数列表){ //方法体 //没有return语句 }
- 基本类型返回值:返回值类型为基本类型,包括int,char,long,float...
- 引用类型返回值:返回值类型为引用类型,包括类,接口...
[可见性] [修饰符] [返回值类型] 方法名(参数列表){ //方法体 //有return语句,且return返回的数据类型就是返回值类型。 }
Java方法--参数传递:
- 参数分为形参和实参,定义方法时的参数叫形参,调用方法时传递的参数叫实参。
- 基本类型参数:基本数据类型的变量作为方法的参数传递时,形参变量数值的改变通常不会影响到实参变量的数值,因为两个变量有各自独立的内存空间;即参数传递是值传递,传递的参数是值。
- 引用类型参数:引用数据类型的变量作为方法的参数传递时,形参变量指向内容的改变会影响到实参变量指向内容的数值,因为两个变量指向同一块内存空间;即参数传递的是引用传递,传递的参数是对象的引用。
Java方法--调用:
- 如果参数列表为空时,方法调用传递的参数也是空的。
- 如果参数列表不为空时,方法调用传递的参数类型必须和方法声明时参数列表的类型和顺序都一致。
- 如果方法使用
static
关键字修饰,那么方法调用直接是方法名(实际参数列表)
或者类名.方法名(实际参数列表)
。 - 如果方法没有使用
static
关键字修饰,那么方法调用必须在创建对象后,使用对象.方法名(实际参数列表)
。
Java方法--重载:
- 方法重载是当完成功能差不多情况下的方法实现。
- 方法重载,方法名必须相同。
- 方法重载,返回值类型可以相同,也可以不同。
- 方法重载,修饰符可以相同,也可以不同。
- 方法重载,参数列表必须不同。因为就是根据参数列表的不同区分调用的重载方法。
Java变量作用域:
- 变量的范围是程序中该变量可以被引用的部分。
- 方法内定义的变量被称为局部变量。
- 局部变量:局部变量的作用范围从声明开始,直到包含它的块结束。
- 局部变量必须声明才可以使用。
- 方法的参数范围涵盖整个方法。参数实际上是一个局部变量。
- for循环的初始化部分声明的变量,其作用范围在整个循环。
- 但循环体内声明的变量其适用范围是从它声明到循环体结束。
Java参数--可变参数:
- JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。
- 可变参数:一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。
- 可变参数定义:在方法声明中,在指定参数类型后加一个省略号(...) 。
typeName... parameterName
特殊方法--finalize()方法
- Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象。
- 在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。
- finalize() 一般格式是:
protected void finalize() { // 在这里终结代码 }
关键字 protected 是一个限定符,它确保 finalize() 方法不会被该类以外的代码调用。 - 当然,Java 的内存回收可以由 JVM 来自动完成。如果你手动使用,则可以使用上面的方法。