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

๐Ÿ’ป Deep Wide Programming/Javascript & Vanila JS

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํด๋ž˜์Šค์™€ ์˜ค๋ธŒ์ ํŠธ์˜ ์ฐจ์ด์  ์•Œ์•„๋ณด๊ธฐ(feat. ํŒŒ์ด์ฌ์ด๋ž‘ ๋ญ๊ฐ€ ๋‹ค๋ฅผ๊นŒ?)

728x90
๋ฐ˜์‘ํ˜•

๐Ÿ“Œ ํด๋ž˜์Šค์™€ ์˜ค๋ธŒ์ ํŠธ

์ถœ์ฒ˜: ๋“œ๋ฆผ์ฝ”๋”ฉ by ์—˜๋ฆฌ

 

๋ถ•์–ด๋นต ํ‹€(template) : ํด๋ž˜์Šค

object: ํŒฅ์„ ๋„ฃ์œผ๋ฉด ํŒฅ๋ถ•์–ด๋นต, ํฌ๋ฆผ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ๋ฉด ํฌ๋ฆผ ๋ถ•์–ด๋นต!

 

โœ…ํŒŒ์ด์ฌ์—์„œ์˜ ํด๋ž˜์Šค์™€ ๊ฐ์ฒด ๊ฐœ๋…๊ณผ ๊ฐ™๋‹ค. ๋‘˜๋‹ค ๊ฐ์ฒด์ง€ํ–ฅ์–ธ์–ด!

 

 

๐Ÿ“Œ์ž๋ฐ”์ŠคํŠธ๋ฆฝํŠธ์—์„œ ํด๋ž˜์Šค ์‚ฌ์šฉํ•˜๋Š”๋ฒ•

ํŒŒ์ด์ฌ๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š”, ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด 'constructor'๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ํŒŒ์ด์ฌ์—์„œ๋Š” def ์™€ self๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” 'constructor/method์™€ this'๋ฅผ ์ด์šฉํ•œ๋‹ค. ๊ตฌ์กฐ๋Š” ์œ ์‚ฌํ•˜๋‹ค. 

 

(์ขŒ) ํŒŒ์ด์ฌ ํด๋ž˜์Šค ์„ ์–ธ (์šฐ) ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํด๋ž˜์Šค ์„ ์–ธ

๋˜ํ•œ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋„ ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. 

ํŒŒ์ด์ฌ์—์„œ๋Š” ๋ณ„๋‹ค๋ฅธ ๋ณ„๋„ ์ฝ”๋“œ ์—†์ด ๊ทธ๋ƒฅ ์ƒ์„ฑํ•˜๋ฉด ๋˜๋Š”๋ฐ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” const์™€ new๋ฅผ ์จ์ค€๋‹ค.

 

 

๐Ÿ“Œ Getter & Setter

incapsulation => private ๋งŒ๋“œ๋Š” ๊ฒƒ

ํด๋ž˜์Šค์˜ ์‚ฌ์šฉ์ž๊ฐ€ ๋ถˆ์˜จํ•œ ํ˜•ํƒœ๋กœ ๋ฐ์ดํ„ฐ ๊ฐ’์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ, ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ๋ฐฉ์–ด์ ์ธ ํƒœ๋„๋กœ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ Getter & Setter. 

 

 

get age() {

 return this._age;

}

set age(value) {

 this._ age = value <0? 0 : value;
}

 

 

๐Ÿ“Œ์ž๋ฐ”์ŠคํŠธ๋ฆฝํŠธ์—์„œ ํด๋ž˜์Šค ์ƒ์†

๋งŒ์•ฝ ๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๋ฉด, ํ•ด๋‹น ๋ถ€๋ชจ ํด๋ž˜์Šค์—๋‹ค๊ฐ€ ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹์˜ ๋ณ€ํ˜•์€ ์ถ”ํ›„ ๋ถ€๋ชจ ํด๋ž˜์Šค๊ฐ€ ์—…๋ฐ์ดํŠธ ๋  ๋•Œ ์ถฉ๋Œ/์˜ค๋ฅ˜ ์ด์Šˆ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. 

 

์ด๋Ÿฐ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•  ๋•Œ, ์—ฌ๊ธฐ์— 'ํ‰๊ท ๊ฐ’' ๊ณ„์‚ฐ์„ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹ถ๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด, ๋ฐ”๋กœ ์ด Person class ์— ํ‰๊ท ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€์ž‘์šฉ๋“ค์„ ๊ณ ๋ คํ•ด์„œ, ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•œ๋‹ค. 

์ด๋ ‡๊ฒŒ ๋งŒ๋“ค๊ณ  ๋‚˜๋‹ˆ, ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์ด ๋งŽ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, '์ƒ์†'๊ฐœ๋…์ด ์‚ฌ์šฉ๋œ๋‹ค. 

extends๋ฅผ ์ด์šฉํ•ด์„œ ๋ถ€๋ชจ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์†Œ๋“œ๋“ค์„ ์ƒ์†ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ค‘๋ณต๋˜๋Š” ๋‚ด์šฉ์€ ์ง€์›Œ์ฃผ๊ณ , ์ถ”๊ฐ€ํ•  ๋ฉ”์†Œ๋“œ๋งŒ ์ž‘์„ฑํ•ด์ฃผ๋ฉด ๋!

 

 

๐Ÿ‘€๐Ÿpython

์ƒ์†๋ฐ›์„ ๋ถ€๋ชจ ํด๋ž˜์Šค๋ฅผ () ์•ˆ์— ์จ์„œ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ํŒŒ์ด์ฌ์˜ ์ƒ์†๊ณผ๋Š” ์‚ด์ง ๋‹ค๋ฅด๋‹ค.

 

 

๐Ÿ“ŒSuper

์ž์‹ํด๋ž˜์Šค์—์„œ ๋ถ€๋ชจํด๋ž˜์Šค ์†์„ฑ+์ถ”๊ฐ€ ํ•ด์ฃผ๊ณ  ์‹ถ์„๋•Œ, ์ค‘๋ณต์„ ์ค„์ด๊ธฐ ์œ„ํ•ด 'super'๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 

์ž˜ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. 

728x90
๋ฐ˜์‘ํ˜•