일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- #binary
- html object
- html id
- html charset
- html multimedia
- 토큰경제
- html youtube
- #1차원배열
- #성적관리프로그램
- html plug-in
- #자바상속#자바이즈어#is~a
- #다차원포인터
- #JAVASCRIPT
- git flow
- border-box
- #CallByAddress
- #C++ 연산자함수오버로딩
- html5 new tag
- mac terminal command
- #2차원배열
- relative path
- 하이퍼레저패브릭
- docker example
- html video
- #bubbleSort
- html code
- hyperledger transaction
- #android activity
- #3차원배열
- #C++ has~a
- Today
- Total
A sentimental robot
This 본문
- This란? 자기자신을 호출하는 reference
- 객체 안의 필드를 구별해 주는 역할을 한다.
- This는 instance 메소드의 매개변수의 첫번째 자리에 항상 존재하고 있다. ( 생략되어 있음 )
- This 는 선언할 수 없고, 사용만 가능하다.
- 사용목적
1) 매개변수와 필드의 이름이 같을 경우 구별하기 위해 사용한다.
2) method에서 자기자신을 리턴해야 할 경우 사용한다.
- static 메소드에는 This가 없다. ( 객체를 만들기도 전에 생성되는 메소드이기 때문에 )
- 메소드를 공유함으로서 메모리를 절약할 수 있다.
- This 호출 this() : 생성자 함수에서 또 다른 생성자 함수를 호출
중복된 코드를 줄이고, 한 군데에서 관리하기 위해 사용
public class Hello2 {
private int a;
public void setA(int a)
{
this.a=a; // this : 매개변수와 필드의 이름이 같을 경우 구별하기 위해 사용한다.
}
public int getA(){
return a;
}
public static void main(String[] args) {
Hello2 ct=new Hello2();
ct.setA(100);
System.out.print(ct.getA()); //100출력
}
}
public Hello2 getObject(){ //객체 자기자신을 리턴하겠다는 뜻
return this;
}
public class Hello2 {
int a;
int b;
public Hello2() {
this(0,0); //a=b=0;
}
public Hello2(int a) {
// this.a = a;
// b = 0;
this(a,0);
}
public Hello2(int a, int b) {
this.a = a;
this.b = b;
}
public int getA() {
return a;
}
public int getB() {
return b;
}
public static void main(String[] args) {
Hello2 ct01 = new Hello2(); //0 ,0
Hello2 ct02 = new Hello2(10); //10,0
Hello2 ct03 = new Hello2(30,50); //30,50
System.out.println(ct01.getA()+" "+ct01.getB());
System.out.println(ct02.getA()+" "+ct02.getB());
System.out.println(ct03.getA()+" "+ct03.getB());
}
}
class Apple {
void f2(Banana ban) {
System.out.println("Apple f2");
ban.f3();
}
}
class Banana {
void f1(Apple ap) {
System.out.println("Banana f1");
ap.f2(this); // new Banana()를 매개변수로 던지면 새로 생성된Banana객체가 생성되고 그 객체의 f3이다. 하지만 this를 넘기면 현재생성된 객체를 넘겨주는 것이다.
}
void f3() {
System.out.println("Banana f3");
}
}
public class Day {
public static void main(String[] args) {
Banana ban = new Banana();
ban.f1(new Apple());
}
}
'Java' 카테고리의 다른 글
"Has~A" exercise (0) | 2017.12.28 |
---|---|
Has~a (0) | 2017.12.28 |
Object oriented style exercise (0) | 2017.12.28 |
Object-oriented style score management (0) | 2017.12.28 |
The elements of "Class" (0) | 2017.12.28 |