> Java > Java베이스 > 자바에서 이것의 용도는 무엇입니까?

자바에서 이것의 용도는 무엇입니까?

藏色散人
풀어 주다: 2019-11-13 11:29:12
원래의
4524명이 탐색했습니다.

자바에서 이것의 용도는 무엇입니까?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿