๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ฐ ์–ธ์–ด/Java

์ž๋ฐ”, ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(1)

<Java์˜ ์ •์„ ๊ฐœ์ •3ํŒ>์„ ๊ธฐ๋ณธ์œผ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค.

 

๋ชฉ์ฐจ

  • 1. ํด๋ž˜์Šค์™€ ๊ฐ์ฒด
  • 2. ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ
  • 3. ์˜ค๋ฒ„๋กœ๋”ฉ overloading
  • 4. ์ƒ์„ฑ์ž constructor
  • 5. ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™”

 

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

public class Animal{  //ํด๋ž˜์Šค
    Animal cat = new Animal();  //๊ฐ์ฒด
}
  • ํด๋ž˜์Šค : ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ๊ธฐ๋Šฅ์„ ํ•จ.
  • ๊ฐ์ฒด : newํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด Animalํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ธ cat, ์ฆ‰ Animal์˜ ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง. 
  • ์ธ์Šคํ„ด์Šค : ํŠน์ • ๊ฐ์ฒด(cat)๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค(Animal)์˜ ๊ฐ์ฒด์ธ์ง€๋ฅผ ๊ด€๊ณ„์œ„์ฃผ๋กœ ์„ค๋ช…ํ•  ๋•Œ ์‚ฌ์šฉ๋จ. 

 


2. ๋ณ€์ˆ˜์™€ ๋ฉ”์„œ๋“œ

2-1) ๋ณ€์ˆ˜(์„ ์–ธ ์œ„์น˜์— ๋”ฐ๋ผ ๋ถ„๋ฅ˜)

ํด๋ž˜์Šค ๋ณ€์ˆ˜
(static ๋ณ€์ˆ˜, ๊ณต์œ  ๋ณ€์ˆ˜)

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๊ฐ€ ์ธ์Šคํ„ด์Šค ๋งˆ๋‹ค ๋…๋ฆฝ์ ์ธ ์ €์žฅ๊ณต๊ฐ„์„ ์ง€๋‹Œ๊ฑฐ์™€ ๋‹ฌ๋ฆฌ ํด๋ž˜์Šค ๋ณ€์ˆ˜๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณตํ†ต๋œ ์ €์žฅ๊ณต๊ฐ„(๋ณ€์ˆ˜)์„ ๊ณต์œ ํ•œ๋‹ค.

์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. → ํด๋ž˜์Šค์ด๋ฆ„.๋ณ€์ˆ˜์ด๋ฆ„

ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋  ๋•Œ ์ƒ์„ฑ๋˜๊ณ , ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์œ ์ง„๋œ๋‹ค.

public์„ ์•ž์— ๋ถ™์ด๋ฉด ์ „์—ญ๋ณ€์ˆ˜๊ฐ€ ๋œ๋‹ค.

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ๋งŒ๋“ค์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๋จผ์ € ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค.

๋…๋ฆฝ์ ์ธ ์ €์žฅ๊ณต๊ฐ„์„ ๊ฐ€์ง€๋ฏ€๋กœ, ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.

์ง€์—ญ๋ณ€์ˆ˜ ์„ ์–ธ๋œ ๋ธ”๋Ÿญ{}์„ ๋ฒ—์–ด๋‚˜๋ฉด ์†Œ๋ฉธ๋˜์–ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

 

2-2) ๋ฉ”์„œ๋“œ

- ์„ ์–ธ

int add(int x, int y){
    int result = x+y;
    return result;
}

- ํ˜ธ์ถœ

๋ฉ”์„œ๋“œ ์ด๋ฆ„(๊ฐ’1, ๊ฐ’2, ...)

 

2-3) ํด๋ž˜์Šค(static)๋ฉ”์„œ๋“œ์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ

- ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ

  • ํด๋ž˜์Šค๋ฅผ ์„ค๊ณ„ํ•  ๋•Œ, ๋ฉค๋ฒ„๋ณ€์ˆ˜ ์ค‘ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์— ๊ณตํ†ต์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— static์„ ๋ถ™์ธ๋‹ค.
  • ํด๋ž˜์Šค ๋ณ€์ˆ˜(static ๋ณ€์ˆ˜)๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.(ํด๋ž˜์Šค์ด๋ฆ„.๋ฉ”์„œ๋“œ์ด๋ฆ„)
  • ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ํด๋ž˜์Šค ๋ฉค๋ฒ„๊ฐ€ ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„๋ฅผ ์ฐธ์กฐ/ํ˜ธ์ถœํ•  ๊ฒฝ์šฐ ๋ณ„๋„์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค.
  • ๋ฉ”์„œ๋“œ ๋‚ด์—์„œ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด static์„ ๋ถ™์ด๋Š” ๊ฒƒ์ด ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์‹œ๊ฐ„์ด ์งง์•„์ ธ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋œ๋‹ค.

- ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ : ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ๊ด€๋ จ๋œ ์ž‘์—…์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ

 


3. ์˜ค๋ฒ„๋กœ๋”ฉ Overloading

  • ์ •์˜ : ํ•œ ํด๋ž˜์Šค ๋‚ด์— ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ •์˜ํ•˜๋Š” ๊ฒƒ
  • ์žฅ์  : ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ํ•˜๊ณ , ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ฐ›๋Š” ๋ฉ”์„œ๋“œ๋“ค์„ ๊ฐ™์€ ์ด๋ฆ„์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.(์ด๋ฆ„ ์ ˆ์•ฝ)
  • ์กฐ๊ฑด : ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง€๊ณ , ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ฐœ์ˆ˜ ๋˜๋Š” ํƒ€์ž…์ด ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค.
  • ์ฃผ์˜ : ๊ฐ€๋ณ€์ธ์ž๋ฅผ ์„ ์–ธํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์˜ค๋ฒ„๋กœ๋”ฉํ•˜๋ฉด, ์˜ค๋ฒ„๋กœ๋”ฉ๋œ ๋ฉ”์„œ๋“œ๋“ค์„ ๊ตฌ๋ถ„ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋”ฐ๋ผ์„œ, ๊ฐ€๋ณ€์ธ์ž๋ฅผ ์„ ์–ธํ•œ ๋ฉ”์„œ๋“œ๋Š” ์˜ค๋ฒ„๋กœ๋”ฉํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.

 


4. ์ƒ์„ฑ์ž constructor

์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ฉ”์„œ๋“œ(์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ ์•„๋‹˜!)

1. ๊ธฐ๋ณธ ์ƒ์„ฑ์ž default constructor : ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋‚ด์šฉ์ด ์—†๋Š” ์ƒ์„ฑ์ž๋ฅผ ์ถ”๊ฐ€ํ•ด ์คŒ
ํด๋ž˜์Šค ์ด๋ฆ„(){} 

2. ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์—†๋Š”/์žˆ๋Š” ์ƒ์„ฑ์ž
class Cord{
    Card(){}  //๋งค๊ฐœ๋ณ€์ˆ˜ ์—†๋Š” ์ƒ์„ฑ์ž
    Card(String k){}  //๋งค๊ฐœ๋ณ€์ˆ˜ ์žˆ๋Š” ์ƒ์„ฑ์ž. ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ์›ํ•˜๋Š” ๊ฐ’์œผ๋กœ ์ดˆ๊ธฐํ™” ๊ฐ€๋Šฅ
}

 


5. ๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™”

๋ฉค๋ฒ„๋ณ€์ˆ˜์˜ ์ดˆ๊ธฐํ™” ๋ฐฉ๋ฒ•

  1. ๋ช…์‹œ์  ์ดˆ๊ธฐํ™” : ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•
  2. ์ƒ์„ฑ์ž
  3. ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ(์ธ์Šคํ„ด์Šค/ํด๋ž˜์Šค) : ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ ๋‚ด์—์„œ๋Š” ์กฐ๊ฑด๋ฌธ, ๋ฐ˜๋ณต๋ฌธ ๋“ฑ์„ ์ž์œ ๋กญ๊ฒŒ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•ด์„œ ๋ช…์‹œ์  ์ดˆ๊ธฐํ™”๋ณด๋‹ค ๋ณต์žกํ•œ ์ดˆ๊ธฐํ™”๋ฅผ ํ•  ์ˆ˜ ์žˆ๋‹ค.
1. ์ธ์Šคํ„ด์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ -> ์ธ์Šคํ„ด์Šค๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ์ดˆ๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.
class ํด๋ž˜์Šค ์ด๋ฆ„{
    {...}        //๋ชจ๋“  ์ƒ์„ฑ์ž์—์„œ ๊ณตํ†ต์œผ๋กœ ์ˆ˜ํ–‰๋ผ์•ผ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ๋Š”๋ฐ ์‚ฌ์šฉ๋จ.
}

2. ํด๋ž˜์Šค ์ดˆ๊ธฐํ™” ๋ธ”๋Ÿญ -> ํด๋ž˜์Šค๊ฐ€ ์ฒ˜์Œ ๋กœ๋”ฉ๋  ๋•Œ ๋‹จ ํ•œ๋ฒˆ ์ดˆ๊ธฐํ™”๋œ๋‹ค.
class ํด๋ž˜์Šค ์ด๋ฆ„{
     static{...}
}