java中的this的作用,java中this是什么
java this有什么用?
java中this关键字的作用
1.这就调用了current属性:它的主要作用是当类中的数据需要初始化时,可以由此赋值,而不是随便定义一个变量,这样更有利于代码的阅读和理解。
比如:
Class Book{//定义书的类别。
私有字符串名称;//书籍名称
私有int价格;//图书价格
Book (string name,int price){//用这个来初始化类的数据
this.name=name
this.price=价格;
}
/*public Book(String n,int p){ //如果不使用这个关键字,只能这样赋值,不利于统一变量和属性。
name=n;
价格=p;
}*/
公共字符串getInfo(){
退货图书:名称,价格:价格;
}
}
公共类ThisDemo{
公共静态void main(String args[]){
System.out.printIn(新书( Java ,89.9)。getInfo())
}
}
2.这就调用了方法(公共方法、构造方法)
(1)常用方法:
Class Book{//定义书的类别。
私有字符串名称;//书籍名称
私有int价格;//图书价格
Book (string name,int price){//用这个来初始化类的数据
this.name=name6 this.price=价格;
this . print();//调用这种普通的方法。虽然不使用这个也可以调用这种普通的方法,但是最好加上一个好习惯,为了区分方法的定义来源。
}
公共字符串getInfo(){
退货图书:名称,价格:价格;
}
公共作废打印(){
system . out . printin( * * * * * * * * * * * *);
}
}
公共类ThisDemo{
公共静态void main(String args[]){
System.out.printIn(新书( Java ,89.9)。getInfo())
}
}(2)构造方法:普通方法和构造方法的区别在于,构造方法在创建后只能使用一次来初始化数据,而普通方法在创建后可以多次调用。
当需要使用构造方法输出相同的重复内容时,如果不使用这个关键字,就只能使用下面的代码:
复制代码
Class Book{//定义书的类别。
私有字符串名称;//书籍名称
私有int价格;//图书价格
book(){//没有参数构造
system . out . printin( * * * * * * * * * * * * * *);
}
Book(字符串名称){//单参数构造
system . out . printin( * * * * * * * * * * * * * *);
this.name=name
}
Book (string name,int price){//双参数构造
system . out . printin( * * * * * * * * * * * * * *);
this.name=name
this.price=价格;
}
公共字符串getInfo(){
退货图书:名称,价格:价格;
}
}
公共类ThisDemo{
公共静态void main(String args[]){
System.out.printIn(新书( Java ,89.9)。getInfo())
}
}显然,这极大地浪费了代码行数,但这应该用来调用构造方法,如下所示:
Class Book{//定义书的类别。
私有字符串名称;//书籍名称
私有int价格;//图书价格
book(){//没有参数构造
system . out . printin( * * * * * * * * * * * * * *);
}
Book(字符串名称){//单参数构造
this();//调用该类中的无参数构造
this.name=name
}
Book (string name,int price){//双参数构造
这个(名字);//调用该类中的单参数构造
this.price=价格;
}
公共字符串getInfo(){
退货图书:名称,价格:价格;
}
}
公共类ThisDemo{
公共静态void main(String args[]){
System.out.printIn(新书( Java ,89.9)。getInfo())
}
}注意:对这个的调用必须是构造函数中的第一条语句,否则会出错,当然也不能用正常的方法调用构造函数。
最重要的是,使用这个调用不能形成循环,也就是不能形成没有出口的递归调用。
3.这表示当前的方法。
课堂用书{
公共void fun(){
System.out.printIn(趣味方法本);
}
}
}
公共类ThisDemo{
公共静态void main(String args[]){
Book b1=新书();
system . out . printin( MAIN method B1);
B1 . fun();//b1调用fun方法(this=b1)
//两个输出结果的地址是一样的,说明此时这代表b1
system . out . printin( * * * * * * * * * * * * * * * *)
Book b2=新书();
system . out . printin( MAIN method B2);
B2 . fun();//此时输出结果与b2相同。
}
}在整个过程中,这个的定义一直没有变。只要某个对象调用该类中的方法,这就表示当前正在执行的对象。这就是java中使用这个的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。