java中this什么用

互联网 19-11-11

java中this什么用

1、this调用当前属性:其主要作用是当需要给类中的数据进行初始化时,可以通过this来进行赋值,而不用随便定义一个变量来进行赋值,更有利于代码的阅读与理解(推荐教程:java教程

class Book{//定义书的类     private String name;//书本名字     private int price;//书本价格     public Book(String name,int price){ //使用this对类的数据进行初始化         this.name = name;                 this.price = price;     }     /*public Book(String n,int p){ //若不使用this关键字只能这样进行赋值,不利于将变量与属性统一起来         name = n;         price = p;     }*/     public String getInfo(){         return "书籍:" + name + ",价格:" + price;     } } public class ThisDemo{     public static void main(String args[]){         System.out.printIn(new Book("Java",89.9).getInfo())     } }

2、this调用方法(普通方法、构造方法)

(1)普通方法:

class Book{//定义书的类     private String name;//书本名字     private int price;//书本价格     public Book(String name,int price){//使用this对类的数据进行初始化         this.name = name; 6         this.price = price;         this.print();//调用本类普通方法,虽然可以不用使用this也可以进行本类普通方法的调用,但是好的习惯最好应该加上,目的是可以区分方法的定义来源     }     public String getInfo(){         return "书籍:" + name + ",价格:" + price;     }     public void print(){         System.out.printIn("***********");     } } public class ThisDemo{     public static void main(String args[]){         System.out.printIn(new Book("Java",89.9).getInfo())     } }

(2)构造方法:普通方法与构造方法的区别是构造方法在创建后只能掉用一次,用来初始化数据,而普通方法在创建后可以调用多次。

当需要使用构造方法输出同一重复内容时,若不使用this关键字,则只能使用如下代码:

class Book{//定义书的类     private String name;//书本名字     private int price;//书本价格     public Book(){//无参构造         System.out.printIn("*************");     }     public Book(String name){//一参构造         System.out.printIn("*************");         this.name = name;     }     public Book(String name,int price){//二参构造         System.out.printIn("*************");         this.name = name;         this.price = price;         }     public String getInfo(){         return "书籍:" + name + ",价格:" + price;     } } public class ThisDemo{     public static void main(String args[]){         System.out.printIn(new Book("Java",89.9).getInfo())     } }

显然,这样大大浪费了代码行数,而应该使用this进行构造方法的调用,方法如下:

class Book{//定义书的类     private String name;//书本名字     private int price;//书本价格     public Book(){//无参构造         System.out.printIn("*************");     }     public Book(String name){//一参构造         this();//调用本类中的无参构造         this.name = name;     }     public Book(String name,int price){//二参构造         this(name);//调用本类中的一参构造         this.price = price;         }     public String getInfo(){         return "书籍:" + name + ",价格:" + price;     }    } public class ThisDemo{     public static void main(String args[]){         System.out.printIn(new Book("Java",89.9).getInfo())     } }

最为重要的是,使用this调用不能形成循环,即不能形成递归调用而没有出口。

3、this表示当前方法

class Book{     public void fun(){         System.out.printIn("FUN方法"+this);     }     } } public class ThisDemo{     public static void main(String args[]){         Book b1 = new Book();         System.out.printIn("MAIN方法"+b1);         b1.fun();//有b1调用fun方法(this = b1)         //两个输出结果的地址一样,代表着此时this代表着b1         System.out.printIn("*************")         Book b2 = new Book();         System.out.printIn("MAIN方法"+b2);         b2.fun();//此时输出结果和b2一样     } }

在整个过程中,this的定义没有变,只要有某一个对象调用本类中的方法,此时this就表示当前执行的对象。

以上就是java中this什么用的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: this作用
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:java怎么与数据库连接

相关资讯