[Language/Typescript] ํด๋ž˜์Šค

2023. 7. 27. 13:29ใ†๐Ÿ”ค Language/TypeScript

์ •์˜

: ๊ฐ์ œ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํ•ต์‹ฌ ๊ตฌ์„ฑ ์š”์†Œ ์ค‘ ํ•˜๋‚˜๋กœ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ‹€์ด๋‹ค.

๊ตฌ์„ฑ์š”์†Œ

  • ์†์„ฑ(attribute): ๊ฐ์ฒด์˜ ์„ฑ์งˆ ๊ฒฐ์ •
  • ๋งค์„œ๋“œ(method): ๊ฐ์ฒด์˜ ์„ฑ์งˆ์„ ๋ณ€ํ™”์‹œํ‚ค๊ฑฐ๋‚˜ ๊ฐ์ฒด์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ๋“ค ์‚ฌ์šฉ
  • ๊ฐ์ฒด: ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ, instance๋ผ๊ณ ๋„ ํ•จ

์ •์˜

  • class ํ‚ค์›Œ๋“œ๋กœ ์ •์˜ํ•จ
  • method, attirbute ์ •์˜ ํ›„, new ํ‚ค์›Œ๋“œ๋กœ ๊ฐ์ฒด ์ƒ์„ฑ๊ฐ€๋Šฅ
class Preson {
    name: string;
    age: number;

    constructor(name: stirng, age: number) {
        this.name = name;
        this.age = age;
    }

    const person = new Person('Spartan', 30);
    person.sayHello()//
}

์ƒ์„ฑ์ž: ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ, ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฉ”์„œ๋“œ.

  • ํด๋ž˜์Šค ๋‚ด์—์„œ consructor ์ด๋ฆ„์œผ๋กœ ์ •์˜๋จ
  • ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์‹œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ
  • ํด๋ž˜์Šค ๋‚ด ํ•˜๋‚˜๋งŒ ์กด์žฌ๊ฐ€๋Šฅ

ํด๋ž˜์Šค ์ ‘๊ทผ ์ œํ•œ์ž: ํด๋ž˜์Šค์˜ ์†์„ฑ, ๋ฉ”์†Œ๋“œ์— ์ ‘๊ทผ์„ ์ œํ•œ์‹œํ‚ด

  • public: ํด๋ž˜์Šค ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • private: ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ
  • protected: ํด๋ž˜์Šค ๋‚ด๋ถ€ ๋ฐ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ์ž์‹ ํด๋ž˜์Šค์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅ

Referance