๐บ[JVAV] ๊ฐ์ฒด์งํฅ๊ณผ ํด๋์ค๐บ
1. ๊ฐ์ฒด
์ธ์ ๋ชจ๋ ๊ฒ์ด ๊ฐ์ฒด์ด๋ค.
(1)๊ฐ์ฒด๋ง๋ค ๊ณ ์ ์ ํน์ฑ๊ณผ ํ๋์ ๊ฐ์ง๊ณ ์๋ค.
(2) ๋ค๋ฅธ ๊ฐ์ฒด๋ค๊ณผ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฑ, ์ํธ์์ฉํ๋ฉด์
์กด์ฌํ๋ค
(3) ex) TV, ์์, ์ฑ ์,์ง,์นด๋ฉ๋ผ....
2. ๊ฐ์ฒด ์งํฅ ํน์ฑ
- ์บก์ํ : ๊ฐ์ฒด๋ฅผ ๊ฐญ์๋ก ์ธ์ ๋ด๋ถ๋ฅผ ๋ณผ ์ ์๊ฒ ํ๋ ๊ฒ(์ ๊ทผ์ ์ด์)
 - ์์ : ์์ ๊ฐ์ฒด์ ์์ฑ์ด ํ์ ๊ฐ์ฒด์ ๋ฌผ๋ ค์ง
 - ๋คํ์ฑ : ๊ฐ์ ์ด๋ฆ์ ๋ฉ์๋๊ฐ ํด๋์ค๋ ๊ฐ์ฒด์ ๋ฐ๋ผ ๋ค๋ฅด๊ฒ ๋์ํ๋๋ก ๊ตฌํ
 
3. ํด๋์ค์ ๊ฐ์ฒด
ํด๋์ค
- ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ด๊ธฐ ์ํ ์ค๊ณ๋ ํน์ ํ
 - ๊ฐ์ฒด์ ์์ฑ๊ณผ ํ๋์ ํฌํจ
 - ex) ๋ถ์ด๋นต ํ
 
๊ฐ์ฒด
- ํด๋์ค์ ๋ชจ์ ๊ทธ๋๋ก ์ฐ์ด๋ธ ์ค์ฒด
 
- ํ๋ก๊ทธ๋จ ์คํ ์ค์ ์์ฑ๋๋ ์ค์ฒด
 - ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ๋ ๊ตฌ์ฒด์ ์ธ ์ค์ฒด
 - ์ธ์คํด์ค๋ผ๊ณ ๋ ๋ถ๋ฆ
 - ex) ๋ถ์ด๋นต
 
4. ํด๋์ค์ ๊ตฌ์ฑ
//ํด๋์ค์ ๊ธฐ๋ณธ ๊ตฌ์ฑ
public class Circle { //ํ๋(๋ณ์)
	public int radius;
    public String name;
    
    public Circle(){
    }
    public double getArea(){
    	return 3.14 * radius * radius;
   }
}
ํด๋์ค์ ์ธ
- class ํค์๋๋ก ์ ์ธ
 - ํด๋์ค๋ {์ผ๋ก ์์ํ์ฌ }์ผ๋ก ๋ซ์ผ๋ฉฐ ์ด๊ณณ์ ๋ชจ๋ ํ๋์ ๋ฉ์๋ ๊ตฌํ
 - ํด๋์ค ์ ๊ทผ ๊ถํ, public
 
ํ๋์ ๋ฉ์๋
- ํ๋ : ๊ฐ์ฒด ๋ด์ ๊ฐ์ ์ ์ฅํ๋ ๋ฉค๋ฒ๋ณ์
 - ๋ฉ์๋ : ํจ์์ด๋ฉฐ ๊ฐ์ฒด์ ํ๋์ ๊ตฌํ
 
์์ฑ์
- ํด๋์ค์ ์ด๋ฆ๊ณผ ๋์ผํ ํน๋ณํ ๋ฉ์๋
 - ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์๋์ผ๋ก ํ ๋ฒ ํธ์ถ๋๋ ๋ฉ์๋
 
5. ๊ฐ์ฒด ์์ฑ ๋ฐ ์ ๊ทผ
- ๊ฐ์ฒด ์์ฑ
- ๋ฐ๋์ new ํค์๋๋ฅผ ์ด์ฉํ์ฌ ์์ฑ
 - new ๋ ๊ฐ์ฒด์ ์์ฑ์ ํธ์ถ
 - ex) Circle donut = new Circle();
 
6. ์์ฑ์
- ๊ฐ์ฒด๊ฐ ์์ฑ๋ ๋ ์ด๊ธฐํ๋ฅผ ์ํด ์คํ๋๋ ๋ฉ์๋
 - ์์ฑ์๋ ๋ฉ์๋์ด๋ค.
 - ์์ฑ์ ์ด๋ฆ์ ๋ฐ๋์ ํด๋์ค ์ด๋ฆ๊ณผ ๋์ผ
 - ์์ฑ์๋ ๋ฆฌํด ํ์ ์์ด์ผ ํจ
 - ์์ฑ์๋ ์ฌ๋ฌ ๊ฐ ์์ฑ ๊ฐ๋ฅ -> ์ค๋ฒ๋ก๋ฉ
 - ์์ฑ์๋ new๋ฅผ ํตํด ๊ฐ์ฒด ์์ฑ ์ ๊ฐ์ฒด๋น ํ ๋ฒ ํธ์ถ
 - ์์ฑ์ ๋ชฉ์ ์ ๊ฐ์ฒด ์ด๊ธฐํ
 - ์์ฑ์๋ ๊ฐ์ฒด ์์ฑ ์ ๋ฐ๋์ ํธ์ถ๋จ
 
์์  ์ฝ๋๋ฅผ ๋ณด๊ณ ์ดํดํ๊ธฐ !!
public class Circle {
    int radius;
    String name;
    public Circle(){
        radius = 1;
        name = "";
    } //์์ฑ์1, ๋ฐ์ง๋ฆ1, ์ด๋ฆ์ ๋น์นธ์ผ๋ก ์ด๊ธฐํ ์ํจ๋ค.
    public Circle(int r, String n){  //๋งค๊ฐ๋ณ์ ์กด์ฌ
        this.radius = r;
        this.name = n;
    } //์์ฑ์2, ๋งค๊ฐ๋ณ์๊ฐ ์กด์ฌํ๋ ์์ฑ์
    public Circle(int r1){
        this.radius = r1;
    }  //์์ฑ์3
    public Circle(String n1){
        this.name = n1;
    }  //์์ฑ์4
    public double getARea(){  //๋์ด ๊ตฌํ๊ธฐ
        return 3.14 * radius * radius;
    }
7. this ๋ ํผ๋ฐ์ค
this
- ๊ฐ์ฒด ์์ ์ ๋ํ ๋ ํผ๋ฐ์ค (this.๋ฉค๋ฒ ํํ๋ก ๋ฉค๋ฒ ์ฌ์ฉ)
 - ํ์์ฑ
(1) ๊ฐ์ฒด์ ๋ฉค๋ฒ ๋ณ์์ ๋ฉ์๋ ๋ณ์์ ์ด๋ฆ์ด ๊ฐ์ ๊ฒฝ์ฐ
(2) ๋ค๋ฅธ ๋ฉ์๋ ํธ์ถ ์ ๊ฐ์ฒด ์์ ์ ๋ ํผ๋ฐ์ค ์ ๋ฌ ํ ๊ฒฝ์ฐ
 - ๊ฐ์ฒด ์์์์ this
//๊ฐ์ฒด ์์์์ this๋ ์์ ์ ๊ฐ๋ฆฌํจ๋ค. publicl Circle(int radius){ this.radius = radius; } 
this()๋ก ๋ค๋ฅธ ์์ฑ์ ํธ์ถ
- ํด๋์ค ๋ด์ ๋ค๋ฅธ ์์ฑ์ ํธ์ถ
 - ์์ฑ์ ๋ด์์๋ง ๊ฐ๋ฅ
 - ๋ฐ๋์ ์์ฑ์ ์ฝ๋์ ์ ์ผ ์ฒ์์ ์ํ
 
8. ํด๋์ค ์ ๊ทผ ์ง์ ์(์ ์ด์)
์ ๊ทผ ์ง์ ์ 4๊ฐ์ง
- private : ์ธ๋ถ๋ก๋ถํฐ ์ฐจ๋จ
 - public : ๋ชจ๋ ํด๋์ค์์ ํ์ฉ
 - protected : ๋์ผ ํจํค์ง์ ์์ ํด๋์ค์ ํ์ฉ
 - default : ๋์ผ ํจํค์ง ํ์ฉ
 
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐บ[JVAV] ๊ฐ์ฒด์งํฅ๊ณผ ํด๋์ค๐บ), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@youjin0411/๊ฐ์ฒด์งํฅ๊ณผ-ํด๋์ค์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
                                
                                
                                
                                
                                
                                ์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ
์ธ  ๋ฐ๊ฒฌ์ ์ ๋
                                (Collection and Share based on the CC Protocol.)
                            
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค