1. this()

 - μƒμ„±μž μ•ˆμ—μ„œ λ‹€λ₯Έ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•΄μ„œ μ‚¬μš© ν• μˆ˜ μžˆλ‹€.

 - 클래슀λͺ…와 같은 μƒμ„±μžλͺ…이 μ•„λ‹Œ this()λΌλŠ” ν‚€μ›Œλ“œλ‘œ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•œλ‹€

    ? μƒμ„±μžλ₯Ό 호좜 ν• λ•Œ μƒμ„±μžλͺ…μœΌλ‘œ ν˜ΈμΆœν•˜λ©΄ 더 νŽΈν•  것 같은데 μ™œ thisλΌλŠ” ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œκ±ΈκΉŒ?

       μžλ°” 문법이 λ§Œλ“€μ–΄ μ§ˆλ•Œ 이미 ν΄λž˜μŠ€λ³€μˆ˜μ™€ 클래슀 λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  λ•Œ 클래슀λͺ….λ³€μˆ˜, 클래슀λͺ….ν•¨μˆ˜λ‘œ 호좜 ν•΄μ„œ 이미 문법을 선점 λ‹Ήν•΄               μƒμ„±μžλ₯Ό 호좜 ν•  λ•Œ thisλ₯Ό μ‚¬μš©ν•˜κ²Œ λ˜μ—ˆλ‹€.

 -  ν•œ μƒμ„±μžμ—μ„œ λ‹€λ₯Έ μƒμ„±μžλ₯Ό 호좜 ν• λ•ŒλŠ” λ°˜λ“œμ‹œ μ²«μ€„μ—λ§Œ 호좜이 κ°€λŠ₯ν•˜λ‹€

    ? μƒμ„±μž μ•ˆμ—μ„œ 이미 μ΄ˆκΈ°ν™”λ₯Ό λ‹€ ν–ˆλŠ”λ° λ§ˆμ§€λ§‰μ— λ‹€λ₯Έ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•œλ‹€λ©΄ μœ„μ— μ΄ˆκΈ°ν™” λ˜μ—ˆλ˜ 것듀이  무의미 해지기 λ•Œλ¬Έμ— 제일 첫쀄에 호         μΆœ ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.

 

β˜…β˜…β˜…β˜…β˜… κΈ°μ–΅ν•˜κΈ°) 1.μƒμ„±μžλ₯Ό 호좜 ν• λ•ŒλŠ” λ°˜λ“œμ‹œ 첫쀄에 ν˜ΈμΆœν•˜κΈ° 2. 클래슀λͺ…이 μ•„λ‹Œ this둜 ν˜ΈμΆœν•˜κΈ°

 

 

 

β—‹ μƒμ„±μž 호좜 예제

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
public class Con{
            int x;
    
        Con(){
            
            //μƒμ„±μž ν˜ΈμΆœ
            this(1000);        
            
            x = 10;
            System.out.println("μΈμžκ°€ μ—†λŠ” μƒμ„±μž");
            System.out.println("Con이 κ°–κ³ μžˆλŠ” x: " +this.x);
        }
 
        Con(int x){
            
            this.x=x;
            System.out.println("μΈμžκ°€ ν•˜λ‚˜μΈ μƒμ„±μž");
            System.out.println("Con μ΄ κ°–κ³ μžˆλŠ” x: " +this.x);
 
        }
 
    public static void main(String[] args){
    
        Con ob1 = new Con();
        
    }
 
 

 

μ‹€ν–‰κ²°κ³Ό

μ½”λ“œ μ„€λͺ…)

24λ²ˆμ€„) Con κ°μ²΄ ob1이 μƒμ„± λ˜λ©΄μ„œ Con() μƒμ„±μžκ°€ ν˜ΈμΆœ λœλ‹€.
4λ²ˆμ€„) con()μƒμ„±μžκ°€ ν˜ΈμΆœ λ˜λ©΄μ„œ
7λ²ˆμ€„) μ œμΌ μ²«μ€„에 this(1000)이 ν˜ΈμΆœ λ˜μ—ˆμœΌλ―€λ‘œ
14λ²ˆμ€„)Con(1000)이 ν˜ΈμΆœ λ˜λ©΄μ„œ
16λ²ˆμ€„)x의 κ°’은 1000이 λœλ‹€. μƒμ„±μžν˜ΈμΆœμ΄ λλ‚˜κ³ 
9λ²ˆμ€„)μ›λž˜ Con()으둜 λŒμ•„κ°€ x=10이 λ“€μ–΄κ°€μ„œ  x의 κ°’은 10으둜 λ°”뀐닀.

 

? μ—¬κΈ°μ„œ 의문점 ?

Q. μœ„μ— μ½”λ“œκ°™μ΄ ν•˜λ©΄ μƒμ„±μžλ₯Ό ν˜ΈμΆœν•΄ 봀자 μ΄ˆκΈ°ν™”ν•œ 값이 λ°”λ€ŒλŠ”λ° μ™œ ν˜ΈμΆœν•˜λŠ” 걸까?

1)

1
2
3
4
5
6
7
8
9
Car(){
    this("white",auto, 4);
}
 
Car(String color,String gearType , int door){
    this.color = color;
    this.gearType = gearType;
    this.door = door; 
}
 
2)
1
2
3
4
5
6
7
8
9
10
Car(){
    this.color = "white";
    this.gearType = auto;
    this.door = 4
}
 
// μƒμ„±μž ν˜ΈμΆœμ„ μ‚¬μš©ν•˜κ²Œ λ˜λ©΄
Car(){ 
    this("white",auto, 4);
}

 

A. - 2번 μ½”λ“œμ— μœ„μ— Car()와 μ•„λž˜ Car()λŠ” 같은 일을 ν•˜μ§€λ§Œ μ•„λž˜ Car()λŠ” this ν˜ΈμΆœμ„ 톡해 μ΄ˆκΈ°ν™” ν•΄μ£Όλ―€λ‘œ μ’€ 더 μ½”λ“œλ₯Ό κ°„λž΅ν•˜κ²Œ ν• μˆ˜ μžˆλ‹€.

   - μƒμ„±μžλ“€μ€ 일반적으둜 μ„œλ‘œ 관계가 깉은 κ²½μš°κ°€ λ§Žμ•„μ„œ μ„œλ‘œ ν˜ΈμΆœν•˜λ„λ‘ ν•˜μ—¬ 유기적으둜 μ—°κ²°ν•΄μ£Όλ©΄ 더 쒋은 μ½”λ“œλ₯Ό μ–»μœΌμˆ˜ 있고 μˆ˜μ •μ΄ ν•„μš”         ν•œ κ²½μš°μ—λ„ 적은 μ½”λ“œλ§Œμ„ λ³€κ²½ν•˜λ©΄ λ˜λ―€λ‘œ μœ μ§€λ³΄μˆ˜κ°€ μ‰¬μ›Œμ§„λ‹€.

 

 

 

 

 

 

+ Recent posts