Java基礎知識——引用傳遞、this關鍵字

本文以及以後的java基礎知識隨筆中的文章,都是來至網絡課堂51CTO學院牛牧老師的《深入淺出之-JavaSE基礎教程》的課堂筆記。相關的代碼爲課堂中出現的和自己寫的兩部分。

網址 http://edu.51cto.com/course/course_id-513.html

一、引用傳遞

引用傳值:通過引用傳遞可以改變實參對象的內容,但是不能改變實參對象。

public class House{
String owner;
String room;
House(){}
House(String owner,String room){
	this.owner=owner;
	this.room=room;
}
public static void changeRoom(House h)//引用傳遞,值傳遞,實質是對象的hashCode。
{
h.room="客廳"
System.out.println("changeRoom方法的hashCOde:"+h.hashCode());
}
public void showRoom()
{
	SYstem.out.println(this.ower+"的房屋,裏面有個漂亮的:"+this.room);
}
public  static void main(String[] args){
	House h=new House("叫獸易小星","廚房");
	h.showRoom();
	System.out.println("-------------------");
	System.out.println("主方法中的hashCode:"+h.hashCode());
	House.changeRoom(h);
	h.showRoom();
}
}
二、this關鍵字

指向當前對象,指調用當前方法的那個對象。一般來說this關鍵字指當前對象本身,this可以調用構造方法。

this關鍵字有兩種用法:1、指向當前對象;2、調用構造方法:this();放在構造方法的第一句。

House(){
    this.ower=ower;
	this.room=room;
	this.door=door;}
House(String ower,String room){
	this();
	this.ower=ower;
	this.room=room;
}
House(String ower,String room,String door){
	this(ower,room);
	this.door=door;
}
三、設計實例
設計學生類,設計圖書館類,學生的成員方法中傳遞圖書的引用。

class Books
{
	String name;
	String auther;
	String press;
	String lender;
	Boocks(String name,String auther,String press)
	{
		this.name=name;
		this.auther=auther;
		this.press=press;
		this.lender="李白清";
	}
	public void showInfo()
	{
      System.out.println("書名:"+this.name+" ,借書人是:"+this.lender);
	}
}


class Students
{
	String  sid;
    String  name;
	int age;

	Students(String sid,String name ,int age)
	{
		this.sid=sid;
		this.name=name;
		this.age=age;
	}
	public void lendBook(Books book)
	{
		book.lender=this.name;
		//以下是新建對象,不是引用傳遞;
	/*
	*book=new Books("我所瞭解的生活","韓寒","浙江文藝出版社");
	*book.lender=this.name; 
	*新建了一個對象,並把借書人的name付給它,但是並不改變實參對象b本身。
	*/
	}
	public static void main(String[] args)
	{
		Books b=new Books("java編程思想","侯敏","電子工業出版社");
        Student s=new Student("9527","周猩猩","21");
		s.lendBook(b);
		b.showInfo();
	}
}





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章