๐Ÿ˜บ[JVAV] ๊ฐ์ฒด์ง€ํ–ฅ๊ณผ ํด๋ž˜์Šค๐Ÿ˜บ

1. ๊ฐ์ฒด

์„ธ์ƒ ๋ชจ๋“  ๊ฒƒ์ด ๊ฐ์ฒด์ด๋‹ค.

(1)๊ฐ์ฒด๋งˆ๋‹ค ๊ณ ์œ ์˜ ํŠน์„ฑ๊ณผ ํ–‰๋™์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.
(2) ๋‹ค๋ฅธ ๊ฐ์ฒด๋“ค๊ณผ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๋“ฑ, ์ƒํ˜ธ์ž‘์šฉํ•˜๋ฉด์„œ
์กด์žฌํ•œ๋‹ค
(3) ex) TV, ์˜์ž, ์ฑ…์ƒ,์ง‘,์นด๋ฉ”๋ผ....


2. ๊ฐ์ฒด ์ง€ํ–ฅ ํŠน์„ฑ

  • ์บก์Šํ™” : ๊ฐ์ฒด๋ฅผ ๊ฐญ์Š๋กœ ์‹ธ์„œ ๋‚ด๋ถ€๋ฅผ ๋ณผ ์ˆ˜ ์—†๊ฒŒ ํ•˜๋Š” ๊ฒƒ(์ ‘๊ทผ์ œ์–ด์ž)
  • ์ƒ์† : ์ƒ์œ„ ๊ฐ์ฒด์˜ ์†์„ฑ์ด ํ•˜์œ„ ๊ฐ์ฒด์— ๋ฌผ๋ ค์ง
  • ๋‹คํ˜•์„ฑ : ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์†Œ๋“œ๊ฐ€ ํด๋ž˜์Šค๋‚˜ ๊ฐ์ฒด์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ๊ตฌํ˜„

3. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด

ํด๋ž˜์Šค

  1. ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„ ํ˜น์€ ํ‹€
  2. ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ํ–‰๋™์„ ํฌํ•จ
  3. ex) ๋ถ•์–ด๋นต ํ‹€

๊ฐ์ฒด

  1. ํด๋ž˜์Šค์˜ ๋ชจ์–‘ ๊ทธ๋Œ€๋กœ ์ฐ์–ด๋‚ธ ์‹ค์ฒด
  • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ์ƒ์„ฑ๋˜๋Š” ์‹ค์ฒด
  • ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ๊ฐ–๋Š” ๊ตฌ์ฒด์ ์ธ ์‹ค์ฒด
  • ์ธ์Šคํ„ด์Šค๋ผ๊ณ ๋„ ๋ถ€๋ฆ„
  • 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 : ๋™์ผ ํŒจํ‚ค์ง€ ํ—ˆ์šฉ

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ