一.方法
1. 方法是一个类的对象中用来完成某个任务的一组相关的语句。它们用来完成该对象中或其他对象中的特定任务,并且使用了一种在其他语句中用到的函数和子程序的方法。
参数传递是值传递。当一个对象做为一个参数传递到方法中时,参数的值就是对象的引用。对象的内容可以在被调用的方法中改变,但对象的引用不能改变,即参数的值是不变的。
2. this关键字用来指向当前对象或类实例,可以在任何出现对象引用的地方使用this指针。Java语言自动将实例变量,方法调用与关键字this相联系。
3. 重载方法
同一个类中或有继承关系的类中,几个具有相同行为但不同参数的方法构成重载方法。当调用时根据参数的类型和数量进行区分,选择合适的方法。
且参数表必须有明显的不同,避免由 float自动转换到double这样的语义混淆,仅返回值不同不足以区分重载方法。
4.重写方法
若子类中定义的方法,其名称,返回值类型及参数表正好与父类中方法的名称,返回值类型及参数表完全相同,则称新方法重写了旧方法。
即得到与变量的运行时类型(变量所引用的对象的类型)相关的行为,而不是与变量的编译时类型相关的行为。C++中要加关键字Virtual,Java中称为重写方法。
重写方法的规则:
(1)方法名称,返回值类型,参数的类型,个数和顺序与它重写的方法一致。
(2)重写方法不能比被重写方法的访问性差。(public, private, protected)
(3 ) 重写方法不能比被重写方法抛出更多异常。
二.构造函数
方法名称必须与类名称完全相同,且不含返回值。
用new创建一个对象,进行以下操作:
1)为对象分配存储空间
2)初始化对象实例,要么赋初值,要么用默认值(数字为0,对象为null,布尔型用false,字符用’/0’)
3) 调用该类的构造函数。
一个类可以有多个构造函数,由new语句中的参数决定调用哪一个。一个类至少有一个构造函数,若没有则Java自动提供一个默认构造函数,但是没参数表,函数体为空,可用new Xxx()方式调用。当自己定义了一个带参数的构造函数后,默认构造函数失去,用new Xxx()方式会出错。有多个构造函数时,可调用其中一个实现另一个。
Java中执行子类构造函数前要求先调用父类构造函数版本。可通过在子类构造函数第一行用super()的方式调用一个特定的父类构造函数作为子类构造函数的一部分。用不同的参数决定具体调用哪一个。用super()调用时,调用父类默认构造函数,若父类无默认构造函数,则出错。
同理,super和this一样必须放在构造函数的第一行,但是不能放在同一个单独行。