C์–ธ์–ด

๋ฐฐ์—ด์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

  • int a[10]; โ‡’ 8byte ์งœ๋ฆฌ a๋ ˆํผ๋Ÿฐ์Šค ๋ณ€์ˆ˜ ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„ ๊ณผ 40byte ์ •์ˆ˜ ๋ฐฐ์—ด ๊ณต๊ฐ„.
  • a ๋Š” a[0] ์˜ ์ฒซ ๋ฒˆ์งธ byte ๋ฅผ ๊ฐ€๋ฆฌํ‚จ๋‹ค.
  • a ๋Š” 8byte ์งœ๋ฆฌ โ€˜ํฌ์ธํ„ฐ ๋ณ€์ˆ˜โ€™ ์ด๋‹ค.
  • arr[0] ์™€ *arr ๋Š” ๊ฐ™๋‹ค.
    arr[9999] ์™€ *(arr + 9999) ๋Š” ๊ฐ™๋‹ค.

๐Ÿ’ก ๋ฐฐ์—ด์˜ ํ•ต์‹ฌ : 2๊ฐœ๋งŒ ์•Œ๋ฉด **๋ชจ๋“  ๊ณณ**์„ ์ฐพ์•„ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๋ช‡ ์นธ์ธ์ง€, a[0] ์˜ ์ฒซ ๋ฒˆ์งธ byte

๋ฐฐ์—ด ์™œ ์‚ฌ์šฉํ•˜๋Š”๊ฐ€ ?

  • ๋ณ€์ˆ˜ 1๊ฐœ๋กœ ๊ณต๊ฐ„ ์—ฌ๋Ÿฌ ๊ณณ์„ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋‹ค.
  • ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์•„๋†“์„ ์ˆ˜ ์žˆ๋‹ค.
  • ๋ฐฐ์—ด ์š”์†Œ์— ๋Œ€ํ•œ ์ ‘๊ทผ์ด ๋งค์šฐ ๋น ๋ฅด๋‹ค.

์ž๋ฐ”

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

// ๋ฌธ์ œ : ๋ ˆํผ๋Ÿฐ์Šค๋ณ€์ˆ˜์— ๊ฐ’ ํ• ๋‹น๊ณผ์ • ์„ค๋ช…

class Main {
  public static void main(String[] args) {
  
    ์ž๋™์ฐจ a์ž๋™์ฐจ;
    
    a์ž๋™์ฐจ = new ์ž๋™์ฐจ();
    
    a์ž๋™์ฐจ.๋‹ฌ๋ฆฌ๋‹ค();
  }
}

// ์ž๋™์ฐจ ์„ค๊ณ„๋„!
class ์ž๋™์ฐจ {
  void ๋‹ฌ๋ฆฌ๋‹ค() {
    System.out.println("์ž๋™์ฐจ๊ฐ€ ๋‹ฌ๋ฆฝ๋‹ˆ๋‹ค.");
  }
}
  • ๊ฐ์ฒด๊ฐ€ ์„œ๋กœ ์›๊ฒฉ ์กฐ์ข…ํ•œ๋‹ค ?

โ†’ ์ „์‚ฌ๊ฐ์ฒด ์•ˆ์—๋Š” ๋ฌด๊ธฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ, ๋ฌด๊ธฐ๋ฆฌ๋ชจ์ฝ˜์ด ๋“ค์–ด๊ฐ„๋‹ค.

โ†’ ์ „์‚ฌ๊ฐ€ ๋ฌด๊ธฐ๋ฅผ ์›๊ฒฉ ์กฐ์ข…ํ•˜๊ณ  ์žˆ๋Š” ์ƒํƒœ.

  • ๋ชจ๋“  ๊ฐ์ฒด๋“ค์€ ์„œ๋กœ๋ฅผ ํ‰์ƒ ๋ณผ ์ˆ˜ ์—†๋‹ค.
    • ์ „์‚ฌ๊ฐ€ ์™ธ๋ถ€ ๊ฐ์ฒด์— ์š”์ฒญํ•  ๋•Œ, โ€˜๋ฆฌ๋ชจ์ฝ˜โ€™์œผ๋กœ ์›๊ฒฉ ์กฐ์ •ํ•œ๋‹ค.

์ƒ์†

  • ์ƒ์†์€ IS ๊ด€๊ณ„์ด๋‹ค.
    • ์ฒญ๋‘ฅ์˜ค๋ฆฌ๋Š” ์˜ค๋ฆฌ์ด๋‹ค.
    • ์‚ฌ๋žŒ์€ ๋™๋ฌผ์ด๋‹ค.
  • ์ƒ์†์œผ๋กœ ๋ฉ”์†Œ๋“œ์˜ ์ค‘๋ณต ์‚ฌํ•ญ ์ œ๊ฑฐ ๊ฐ€๋Šฅ.
    • ์ž๋ฐ”์—์„œ๋Š” is ๋ฅผ extends ๋ผ๊ณ  ์‚ฌ์šฉํ•œ๋‹ค.
      ์ฆ‰, ์‚ฌ๋žŒ extends ๋™๋ฌผ
    • ์‚ฌ๋žŒ์€ ์ž์‹ class, ๋™๋ฌผ์€ ๋ถ€๋ชจ class. ๋ถ€๋ชจ class์˜ ๋ชจ๋“  ๊ฒƒ์„ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค.
      โ†’ ์ •ํ™•ํžˆ๋Š” **๋ณต์‚ฌ**๋ผ์„œ ๋“ค์–ด๊ฐ)

๋””์ž์ธ ํŒจํ„ด

  1. ์ƒ์†, ๊ตฌ์„ฑ์˜ ํ•„์š”์„ฑ
  2. ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ๋ณ€ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๋ณ€ํ™”ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์œผ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌํ•˜๋ผ.
  3. ์ „๋žต ํŒจํ„ด(Startegy Pattern)

์˜ค๋ฆฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜์„ ํ†ตํ•ด ์ƒ์†, ๋ฉ”์†Œ๋“œ์˜ค๋ฒ„๋ผ์ด๋”ฉ ์ดํ•ดํ•˜๊ธฐ.

  • ctrl + 1 โ‡’ class, method ์ž๋™ ์ƒ์„ฑ
  • ๊ฐ์ฒด์ง€ํ–ฅ ํŒจํ„ด โ‡’ ์ค‘๋ณต์„ ์–ผ๋งˆ๋‚˜ ๊น”๋”ํ•˜๊ฒŒ ์ œ๊ฑฐํ•˜๋Š๋ƒ. ๊ฐ€ ๊ด€๊ฑด์ด๋‹ค.
    • ์†Œ์Šค์ฝ”๋“œ ์ค‘๋ณต์ด๋ž€?
  • ๋ฉ”์†Œ๋“œ ์˜ค๋ฒ„๋ผ์ด๋“œ๋ž€?
    • ๊ธฐ์กด ๋ฉ”์†Œ๋“œ๊ฐ€ ๋ณ„๋กœ์—ฌ์„œ, ์ƒˆ๋กœ ๋งŒ๋“œ๋Š” ํ–‰์œ„. (๊ณ ๋ฌด์˜ค๋ฆฌ ์˜ ๋‚ ๋‹ค() ์žฌ์ •์˜)
      โ†’ ๊ธฐ์กด ๋‚ ๋‹ค() ๋ฉ”์†Œ๋“œ๋Š” super.๋‚ ๋‹ค();๋ผ๋Š” ๊ฒƒ์œผ๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋‹ค!
  • ์ƒ์†์œผ๋กœ๋Š” ๋ชจ๋“  ์ž์‹๋“ค์„ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค.
  • static โ‡’ class ์ธ์Šคํ„ด์Šค ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ํด๋ž˜์Šค ๋ณ€์ˆ˜๋กœ ๋ฐ”๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅ.
  • ๋‹ค์ค‘์ƒ์†์€ ๋ง‰ํ˜€ ์žˆ๋‹ค !!!
    • class ๋กœ๋ด‡์˜ค๋ฆฌ extends ์˜ค๋ฆฌ, ๊ณ ๋ฌด์˜ค๋ฆฌ { } โ‡’ (x) new ๋กœ๋ด‡์˜ค๋ฆฌ().๋‚ ๋‹ค(); ๋ฅผ ํ•  ๋•Œ, ๋ฌด์—‡์„ ๊ฐ€์ ธ์™€์•ผ ํ• ์ง€ ๋ชจ๋ฅธ๋‹ค.
      ์ฆ‰, ์˜ค๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ฌ์ง€, ๊ณ ๋ฌด์˜ค๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜ฌ์ง€ ์• ๋งคํ•˜๋‹ค.
  • ์ƒ์†์œผ๋กœ๋Š” ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์—†๋‹ค. (์ƒ์† ์‚ฌ์šฉ์„ ์ง€์–‘ํ•˜๋Š” ์ด์œ )
    • class ๋กœ๋ด‡์˜ค๋ฆฌ ์—์„œ ์˜ค๋ฆฌ์˜ ๋‚ ๋‹ค(); ์™€ ๊ณ ๋ฌด์˜ค๋ฆฌ์˜ ํ—ค์—„์น˜๋‹ค(); ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  ์‹ถ์€๋ฐ, ๋‹ค์ค‘์ƒ์†์€ ๋ง‰ํ˜€ ์žˆ๋‹ค. ๊ทธ๋ž˜์„œ, ์˜ค๋ฆฌ๋งŒ ์ƒ์†๋ฐ›๊ณ  ํ—ค์—„์น˜๋‹ค(); ๋Š” ๊ทธ๋ƒฅ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•ด๋ดค์ง€๋งŒ,
      โ†’ ์—ญ์‹œ ๊ณ ๋ฌด์˜ค๋ฆฌ ํ—ค์—„์น˜๋‹ค(); ์™€ ์ค‘๋ณต์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๊ฑด ์–ด์ฉ” ์ˆ˜ ์—†๋‹ค.

์นผ a์นผ;
// a์นผ ๋ณ€์ˆ˜์—๋Š” ์˜ค์ง ์นผ ๋ฆฌ๋ชจ์ฝ˜๋งŒ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค.
// a์นผ ๋ณ€์ˆ˜๋Š” ์˜ค์ง ์นผ ๊ฐ์ฒด๋ž‘๋งŒ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋‹ค.

class Main {
	public static void main(String[] args) {
	  ๋ฌด๊ธฐ a๋ฌด๊ธฐ = new ์นผ();
	  a๋ฌด๊ธฐ.๊ณต๊ฒฉ();
		// ์ถœ๋ ฅ : ์นผ๋กœ ๊ณต๊ฒฉํ•ฉ๋‹ˆ๋‹ค.
    }
}
class ๋ฌด๊ธฐ { }
class ์นผ extends ๋ฌด๊ธฐ {    // ์นผ is ๋ฌด๊ธฐ , ์นผ์€ ๋ฌด๊ธฐ๋ผ๋Š” ๋œป.
	void ๊ณต๊ฒฉ() { }
}  

์ •๋ฆฌ

  • ํด๋ž˜์Šค๋กœ ํ•  ์ˆ˜ ์žˆ๋Š” 3๊ฐ€์ง€
    • ๋ณ€์ˆ˜ ์ƒ์„ฑ : ์‚ฌ๋žŒ a์‚ฌ๋žŒ;
      ๊ฐ์ฒด ์ƒ์„ฑ : new ์‚ฌ๋žŒ();
      ๋ฆฌ๋ชจ์ฝ˜ ์ƒ์„ฑ : new ์‚ฌ๋žŒ();
  • ๋ฉ”์„œ๋“œ๊ฐ€ ์“ฐ์ด๋Š” 2๊ฐ€์ง€ ์ƒํ™ฉ
    • ๊ฐ์ฒด์—์„œ๋Š” ๊ธฐ๋Šฅ
      ๋ฆฌ๋ชจ์ฝ˜์—์„œ๋Š” ๋ฒ„ํŠผ
  • ์‚ฌ๋žŒ a์‚ฌ๋žŒ;
    • a์‚ฌ๋žŒ ์ด๋ผ๋Š” ๋ณ€์ˆ˜์—๋Š” ์˜ค์ง! ์‚ฌ๋žŒ ๋ฆฌ๋ชจ์ฝ˜๋งŒ ๋“ค์–ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
    • a์‚ฌ๋žŒ ์ด๋ผ๋Š” ๋ณ€์ˆ˜๋Š” ์˜ค์ง ์‚ฌ๋žŒ ๊ฐ์ฒด์™€ ์—ฐ๊ฒฐ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์ƒ์†์œผ๋กœ๋Š” ๋‹จ์ˆœํ•œ ์ค‘๋ณต์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๋ณต์žกํ•œ ์ค‘๋ณต์€ ํ•ด๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค.
    => ๊ตฌ์„ฑ์„ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค.
  • ๋‹ค์ค‘์ƒ์†์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์†Œํ”„ํŠธ์›จ์–ด์˜ ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋ฒ•, ์ข‹์€ ์„ค๊ณ„๊ธฐ๋ฒ•, ๋””์ž์ธ ํŒจํ„ด ๋“ฑ์€ ์˜ค์ง ์ค‘๋ณต์†Œ์Šค์ฝ”๋“œ๋ฅผ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ์—†์• ๊ธฐ ์œ„ํ•ด์„œ ์กด์žฌํ•œ๋‹ค.
  • ์ค‘๋ณต์ด ์•ˆ ์ข‹์€ ์ด์œ .
    • ๋‚˜์ค‘์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ธธ ๋•Œ, ๋ฐ”๊ฟ”์•ผ ํ•˜๋Š”๊ฒŒ ๋งŽ์•„์ง„๋‹ค.
      โ†’ ๋งŒ์•ฝ ํ•˜๋‚˜๋กœ ๊ด€๋ฆฌํ•˜๋ฉด, ๊ทธ ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋.
    • ์ด ์ค‘๋ณต์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ์ฒด์ง€ํ–ฅ ๊ธฐ๋ฒ•์„ ๋„์ž…ํ–ˆ๋‹ค.
profile
Strengthen the core.

0๊ฐœ์˜ ๋Œ“๊ธ€