java 이것은 무엇에 사용되나요?
java
1에서 이 키워드의 역할은 현재 속성을 호출합니다. 주요 기능은 클래스의 데이터를 초기화해야 할 때 단순히 정의하는 대신 이를 통해 값을 할당할 수 있다는 것입니다. 변수 할당이 코드를 읽고 이해하는 데 더 도움이 됩니다
예:
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. 이 호출 방법(일반 방법, 구성 방법)
(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()) } }
분명히 이는 줄 수를 크게 낭비합니다. 이 메서드는 다음과 같이 호출되어야 합니다.
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. 이것은 현재 메소드를 나타냅니다.
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의 정의는 변경되지 않았습니다.
위 내용은 자바에서 이것의 용도는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!