类与对象的关系:
- 类是对一类对象的描述
- 对象是类的具体实例(对象==实例)
[public] [abstract | final] class 类名 [extends 超类] [implements 接口列表] { 数据成员声明及初始化; 方法成员声明及方法体; }
以上是类声明语法 [ ] 外面的都不能省。
对象声明与创建:创建类的实例(对象),通过对象使用类的功能。
* 使用对象之前,先声明指向它的引用变量。
例子:Table aTable;
aTable = new Table();
解释:Table是已经声明的类名,声明引用变量aTable,用于存储该类对象的引用;声明一个引用变量时并没有生成对象。
第二行创建对象,new的作用时:在内存中为Table类的对象分配内存空间;让对象返回它的引用(aTable)。
对象初始化:系统在生成对象时,会为对象分配内存空间,并自动调用构造方法对实例变量进行初始化。
构造方法:用来初始化对象,每个类都需要有构造方法。分为默认构造方法和自定义构造方法。
默认构造方法:
- 没有参数,方法体为空;
- 使用默认的构造方法初始化对象时,如果在类声明中没有给实例变量赋初值,则对象的属性值为0或null。
一个默认构造方法的例子:
class BankAccount { String ownerName; int accountNumber; float balance; } public class BankTest { public static void main(String[] args) { BankAccount myAccount = new BankAccount(); System.out.println("ownerName = " + myAccount.ownerName); System.out.println("accountNumber = " + myAccount.accountNumber); System.out.println("balance = " + myAccount.balance); } }
自定义构造方法与方法重载:
- 在生成对象时给构造方法传送初始值,为对象进行初始化
- 构造方法可以被重载
- 一个类中有两个及以上同名的方法,但参数表不同,这种情况就被称为方法重载。在方法调用时,可以通过参数列表的不同来辨别应该调用哪个方法。
- 只要显式声明了构造方法,编译器就不在生成默认的构造方法;也可以显式声明无参数的构造方法,方法体中可以定义默认初始化方式。
public BankAccount(String initName, int initAccountNumber, float initBalance) { ownerName = initName; accountNumber = initAccountNumber; balance = initBalance; } public BankAccount(String initName, int initAccountNumber) { this(initName, initAccountNumber, 0.0f); } public BankAccount() { this("", 0, 0.0f); }
为类BankAccount自定义构造方法,使用this关键字在一个构造方法中调用另外的构造方法
根据初始化时传入的初始值数量不同,对象初始化时调用不同的构造方法。
来源:https://www.cnblogs.com/life-long-learner-xly/p/12580180.html