java 引用传递 关键字,Java基础知识——引用传递、this关键字

本文详细讲解了Java中的引用传递和this关键字的使用。通过引用传递可以改变对象的内容,但不能改变对象本身。this关键字用于指向当前对象,常用于调用构造方法。此外,还展示了如何在学生类中通过引用传递来实现图书借阅功能。
摘要由CSDN通过智能技术生成

本文以及以后的java基础知识随笔中的文章,都是来至网络课堂51CTO学院牛牧老师的《深入浅出之-JavaSE基础教程》的课堂笔记。相关的代码为课堂中出现的和自己写的两部分。

一、引用传递

引用传值:通过引用传递可以改变实参对象的内容,但是不能改变实参对象。

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

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值