JAVA基础知识梳理(2)--对象的创建


public class Account {
	String customer;
	double balance;
	
	/*create a new instance of Account*/
	public Account(String name) {
		customer = name;
	}
	//get balance
	public double getBalance() {
		return balance;
	}
	//depoist
	public 	void deposit(double sum) {
		if(sum>0) {
			balance = balance+sum;
		}
	}
	//withdraw money
	public void withdraw(double sum) {
		if(sum<balance&&sum>0) {
			balance = balance-sum;
		}
	}
	
	public String getCoustomer() {
		return customer;
	}
	
	public String getDetail() {
		return "Type: " + "Account\n"
				+ "Customer: " + customer + "\n"
				+ "Balance: " + balance;
	}
}

public class TestAccount {

	
	public static void main(String[] args) {
		Account acc;
		//一个对象引用可以指向一个或0个对象
		acc = new Account("me");
		acc.deposit(300);
		Account acc1;
		//一个对象可以有多个引用指向它
		acc1 = acc;
		System.out.println(acc1.getBalance());
		acc1.withdraw(200);
		System.out.println(acc1.getBalance());
		System.out.println(acc.getBalance());
		
		
		//一旦重新赋值,就是一个新的地址引用,引用指向了一个新开辟的地址
		acc1 = new Account("aaa");
		System.out.println(acc1.getDetail());
		
		System.out.println(acc.getBalance());
		
	}
}

通过例子我们来理解对象,与对象引用,

Account acc; //这是一个引用,属于一个引用变量,引用变量在栈中开辟内存空间
acc = new Account("me");//这是一个新建对象,此时会在堆中开辟一个内存来存储这个对象,并把地址赋值给引用变量acc

Account acc1;//新的引用

acc1 = acc;  //acc1与acc指向同一个内存地址,所以是对同一对象进行操作,相互影响

acc1 = new Account("aaa"); //新建对象,此时会在堆中开辟一个内存来存储这个对象,并把地址赋值给引用变量acc1所以此时                                                  acc1和acc指向的不是同一内存地址,也就是说指向的不是同一对象,相互不影响。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值