编程语言
首页 > 编程语言> > Java中对象初始化

Java中对象初始化

作者:互联网

  系统在生成对象时,会为对象分配内存空间,并调用构造方法对实例变量进行初始化。当对象不会使用时,系统会自动调用垃圾回收程序回收其占用的内存。

 

一.构造方法

  构造方法名与类名相同,不定义返回类型,通常被声明为public,可以有任意多个参数,不能在程序中显示的调用。当要生成一个对象时,会自动调用该类的构造方法为对象进行初始化,若未声明构造方法,编译器便会自动使用默认的构造方法。

 

默认构造方法:

1.无参数,方法体为空

2.使用默认的构造方法初始化对象时,如果在类中没有给实例对象赋初值,则对象的属性值为0或空。

public class BankAccount{
	String ownerName;
	int accountNumber;
	float balance;
}

public class BankTester{
	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);
	}
}

//运行结果
ownerName = null
accountNumber = 0
balance = 0.0

  

自定义构造方法

  在生成对象时给构造方法传送初始值,为对象进行初始化。也可以显示声明无参数的构造方法,方法体中可以定义默认初始化方式。

//为BankAccount声明一个有三个参数的构造方法
public BankAccount(String initName, int initAccountNumber, float initBalance){
	ownerName = initName;
	accountNumber = initAccountNumber;
	balance = initBalance;
}

//假设一个新账号的初始余额为0,则可增加一个带有两个参数的构造方法
public BankAccount(String initName, int initAccountNumber){
	ownerName = initName;
	accountNumber = initAccountNumber;
	balance = 0.0f;
}

//无参数的构造方法
public BankAccount(){
	ownerName = "";
	accountNumber = 99999;
	balance = 0.0f;
}

 

二.方法重载与方法重写

  1.方法重载

  在一个类中可以允许有两个及以上的同名方法,但是必须要有独一无二的参数列表。在方法调用时时,可以通过参数列表的不同来辨别调用哪一个方法。

  方法调用的规则为:

//为BankAccount声明一个有三个参数的构造方法
public BankAccount(String initName, int initAccountNumber, float initBalance){
	ownerName = initName;
	accountNumber = initAccountNumber;
	balance = initBalance;
}

//假设一个新账号的初始余额为0,则可增加一个带有两个参数的构造方法
public BankAccount(String initName, int initAccountNumber){
	ownerName = initName;
	accountNumber = initAccountNumber;
	balance = 0.0f;
}

//无参数的构造方法
public BankAccount(){
	ownerName = "";
	accountNumber = 99999;
	balance = 0.0f;
}

  声明构造方法时使用this方法,可以在一个构造方法中调用另外的构造方法,通常是参数较少的构造方法调用参数较多的构造方法。

public BankAccount(){
	this("",99999,0.0f);
}

public BankAccount(String initName, int initAccountNumber){
	this(initName,initAccountNumber,0.0f);
}
public BankAccount(String initName, init initAccountNumber,
	float initBalance){
	ownerName = initName;
	accountNumber = initAccountNumber;
	balance = initBalance;
}

  

  2.方法重写

  方法重写是建立在继承的基础上的,重写是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。即外壳不变,核心重写!

  方法重写的规则为:

class Account{
     public void add(String Name,int Id){

    }
}

class BankAccount extends Account{

    public void add(String Name,int Id){
         System.out.println("The accountname is" + Name + "and Id is " + Id);
    }
}

  当需要在子类中调用父类被重写的方法时,需要使用super关键字。

public void onResume(){
    super.onResume();  
}

  

 

   

   

标签:BankAccount,初始化,Java,构造方法,对象,initAccountNumber,initName,重写,public
来源: https://www.cnblogs.com/thwyc/p/12253926.html