JAVA 의 this 사용법
class B{
String name;
B(){
this("name");//会自动调用带String参数的构造方法
}
B(String name){
this.name = name;
}
}
public class Hello {
String s = "Hello";
public Hello(String s){
System.out.println("s = " + s);
System.out.println("1 -> this.s = " + this.s);
this.s = s;
System.out.println("2 -> this.s = " + this.s);
}
public static void main(String[] args) {
Hello x=new Hello("HelloWorld!");
}
}
실행 결과:
s = HelloWorld! 1 -> this.s = Hello 2 -> this.s = HelloWorld!
이 예 에서 구조 함수 Hello 에서 매개 변수 s 는 Hello 와 같은 이름 입 니 다. 이때 s 를 직접 조작 하면 매개 변수 s 를 조작 합 니 다.Hello 와 같은 구성원 변수 s 를 조작 하려 면 this 로 참조 해 야 합 니 다.실행 결과 의 첫 줄 은 구조 함수 에서 전 달 된 매개 변수 s 를 직접 인쇄 하 는 것 입 니 다.두 번 째 줄 은 구성원 변수 s 에 대한 인쇄 입 니 다.세 번 째 줄 은 구성원 변수 s 에 전 달 된 인자 s 값 을 먼저 부여 한 다음 에 인쇄 하 는 것 이기 때문에 결 과 는 Hello World 입 니 다!
public class A {
public A() {
new B(this).print();
}
public void print() {
System.out.println("Hello from A!");
}
}
public class B {
A a;
public B(A a) {
this.a = a;
}
public void print() {
a.print();
System.out.println("Hello from B!");
}
}
실행 결과: Hello from A!Hello from B!
이 예 에서 대상 A 의 구조 함수 에서 new B (this) 로 대상 A 자신 을 매개 변수 로 대상 B 의 구조 함수 에 전달 했다.
public A() {
Thread thread = new Thread() {
public void run() {
for(;;) {
A.this.run();
try {
sleep(1000);
} catch(InterruptedException ie) { }
}
}
}; //注意这里有;
thread.start();
}
public void run() {
System.out.println("i = " + i);
i++;
}
public static void main(String[] args) throws Exception {
new A();
}
}
위의 예 에서 thread 는 익명 의 대상 입 니 다. 정의 에서 run 함수 에 외부 클래스 의 run 함 수 를 사 용 했 습 니 다.이 때 는 함수 가 동명 이인 이기 때문에 직접 호출 하면 안 된다.이때 두 가지 방법 이 있 는데 하 나 는 외부의 run 함 수 를 이름 으로 바 꾸 는 것 이다. 그러나 이런 방법 은 중간 에 개 발 된 응용 에 있어 서 는 바람 직 하지 않다.그러면 이 예 에서 의 방법 으로 외부 클래스 의 클래스 이름 에 this 인용 을 추가 하여 외부 클래스 의 방법 run 을 호출 하 는 것 을 설명 할 수 있 습 니 다.
4.구조 함수 에서 this 를 통 해 같은 class 의 다른 구조 함 수 를 호출 할 수 있 습 니 다. 예 를 들 어
public class Flower{
Flower (int petals){}
Flower(String ss){}
Flower(int petals, Sting ss){
//petals++;调用另一个构造函数的语句必须在最起始的位置
this(petals);
//this(ss);会产生错误,因为在一个构造函数中只能调用一个构造函数
}
}
주의해 야 할 것 은: 1: 구조 에서 다른 구조 함 수 를 호출 할 때 호출 동작 은 반드시 최초의 위치 에 두 어야 한다.2: 구조 함수 이외 의 어떤 함수 에서 도 구조 함 수 를 호출 할 수 없습니다.3: 하나의 구조 함수 에서 하나의 구조 함수 만 호출 할 수 있 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.