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();
	}
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值