μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (클래슀)

2025. 6. 11. 16:45Β·πŸ“‚ Program Language Study/πŸ“„ TypeScript 곡뢀
 

ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript) κ°•μ˜ | μ΄μ •ν™˜ Winterlood - μΈν”„λŸ°

μ΄μ •ν™˜ Winterlood | ,   ν”„λ‘ νŠΈμ—”λ“œμ˜ ν”Όν•  수 μ—†λŠ” λŒ€μ„Έ νƒ€μž…μŠ€ν¬λ¦½νŠΈ,μ΄μ œλŠ” μ œλŒ€λ‘œ 정볡할 λ•Œκ°€ μ™”μŠ΅λ‹ˆλ‹€! 😎 [사진]μΈν”„μ½˜ 2023 'νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” μ™œ 그럴까?' λ°œν‘œμžμ˜ κ°•μ˜μž…λ‹ˆλ‹€.   🧐 λ°°μ›Œ

www.inflearn.com

 

πŸ“Œ μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ 클래슀 μ†Œκ°œ

// βœ… λΆ€λͺ¨ 클래슀
class Student {
    // ν•„λ“œ
    name;
    grade;
    age;

    // μƒμ„±μž
    constructor(name, grade, age) {
        this.name = name;
        this.grade = grade;
        this.age = age;
    }

    // λ©”μ„œλ“œ
    study() {
        console.log("μ—΄μ‹¬νžˆ 곡뢀 함");
    }

    introduce() {
        console.log(`μ•ˆλ…•ν•˜μ„Έμš”! μ €λŠ” ${this.name} μž…λ‹ˆλ‹€!`);
    }
};

// βœ… μžμ‹ 클래슀 (Student 클래슀λ₯Ό ν™•μž₯)
class StudentDeveloper extends Student {
    // μΆ”κ°€ ν•„λ“œ
    favoriteSkill;

    // μƒμ„±μž
    constructor(name, grade, age, favoriteSkill) {
        super(name, grade, age); // λΆ€λͺ¨ μƒμ„±μž 호좜
        this.favoriteSkill = favoriteSkill;
    }

    // μΆ”κ°€ λ©”μ„œλ“œ
    programming() {
        console.log(`${this.favoriteSkill}둜 ν”„λ‘œκ·Έλž˜λ° 함`)
    }
}

let studentA = new Student("κ°•μ—°μˆ˜", "A+", 24);
let studentDeveloper = new Student("κ°•μ—°μˆ˜", "A+", 24, "TypeScript");

 

πŸ“Œ νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ 클래슀

// βœ… νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ 클래슀
class Employee {
    // ν•„λ“œ
    name: string;
    age: number;
    position: string;

    // μƒμ„±μž
    constructor(name: string, age: number, position: string) {
        this.name = name;
        this.age = age;
        this.position = position;
    };

    // λ©”μ„œλ“œ
    work() {
        console.log("μ—΄μ‹¬νžˆ 일 함");
    };
};

class ExecutiveOfficer extends Employee {
    // ν•„λ“œ
    officeNumber: number;

    // μƒμ„±μž
    constructor(name: string, age: number, position: string, officeNumber: number) {
        super(name, age, position);
        this.officeNumber = officeNumber;
    };
};

// 클래슀 μΈμŠ€ν„΄μŠ€ 생성
const employeeA = new Employee("κ°•μ—°μˆ˜", 24, "QA");

// ν΄λž˜μŠ€λŠ” νƒ€μž…μœΌλ‘œλ„ μ‚¬μš© κ°€λŠ₯
const employeeB: Employee = {
    name: "강말리",
    age: 5,
    position: "κ·€μš”λ―Έ",
    work() {}
};

 

πŸ“Œ μ ‘κ·Ό μ œμ–΄μž

// βœ… μ ‘κ·Ό μ œμ–΄μž (public / private / protected)
class Employee {
    // μƒμ„±μžμ—μ„œ μ ‘κ·Ό μ œμ–΄μž μ„€μ • + ν•„λ“œ μ„ μ–Έ μƒλž΅
    constructor(
        private name: string,        // 클래슀 λ‚΄λΆ€μ—μ„œλ§Œ μ ‘κ·Ό κ°€λŠ₯
        protected age: number,       // 클래슀 + 상속받은 클래슀 λ‚΄λΆ€μ—μ„œ μ ‘κ·Ό κ°€λŠ₯
        public position: string      // μ–΄λ””μ„œλ“  μ ‘κ·Ό κ°€λŠ₯
    ) {}

    // λ©”μ„œλ“œ
    public work() {
        console.log(`${this.name} 일함`); // 클래슀 λ‚΄λΆ€μ΄λ―€λ‘œ private ν•„λ“œ μ ‘κ·Ό κ°€λŠ₯
    }
}

const employee = new Employee("κ°•μ—°μˆ˜", 24, "QA");

// μ™ΈλΆ€ μ ‘κ·Ό ν…ŒμŠ€νŠΈ
// employee.name = "홍길동";   // private ν•„λ“œμ΄λ―€λ‘œ μ ‘κ·Ό λΆˆκ°€
// employee.age = 25;         // protected ν•„λ“œμ΄λ―€λ‘œ μ ‘κ·Ό λΆˆκ°€
employee.position = "QA";    // public ν•„λ“œμ΄λ―€λ‘œ μ ‘κ·Ό κ°€λŠ₯

// βœ… 상속 ν…ŒμŠ€νŠΈ
class ExecutiveOfficer extends Employee {
    // ν•„λ“œ
    officeNumber: number;

    // μƒμ„±μž
    constructor(name: string, age: number, position: string, officeNumber: number) {
        super(name, age, position);
        this.officeNumber = officeNumber;
    };

    printInfo() {
        // this.name;                          // private ν•„λ“œ μ ‘κ·Ό λΆˆκ°€
        console.log(`λ‚˜μ΄: ${this.age}`);      // protected μ ‘κ·Ό κ°€λŠ₯
        console.log(`직책: ${this.position}`); // public μ ‘κ·Ό κ°€λŠ₯
    }
};

 

πŸ“Œ μΈν„°νŽ˜μ΄μŠ€μ™€ 클래슀

// βœ… μΈν„°νŽ˜μ΄μŠ€μ™€ 클래슀
// μΈν„°νŽ˜μ΄μŠ€λŠ” 클래슀의 "섀계도" μ—­ν• 
// → ν΄λž˜μŠ€κ°€ μ–΄λ–€ ν”„λ‘œνΌν‹°μ™€ λ©”μ„œλ“œλ₯Ό λ°˜λ“œμ‹œ κ°€μ Έμ•Ό ν•˜λŠ”μ§€ μ •μ˜
// → μΈν„°νŽ˜μ΄μŠ€ λ‚΄μ˜ ν•„λ“œλŠ” λͺ¨λ‘ public이 κΈ°λ³Έ (λ‹€λ₯Έ μ ‘κ·Ό μ œμ–΄μžλŠ” μ‚¬μš© λΆˆκ°€λŠ₯)
interface CharacterInterface {
    name: string;
    moveSpeed: number;
    move(): void;
}

class Character implements CharacterInterface {
    constructor(public name: string, public moveSpeed: number) {};

    move(): void {
        console.log(`${this.moveSpeed} μ†λ„λ‘œ 이동!`)
    };
};

 

⬇️ λ‹€μŒ λ‚΄μš©μ€ μ•„λž˜ 글을 μ°Έκ³ 

 

μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (μ œλ„€λ¦­)

ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ(TypeScript) κ°•μ˜ | μ΄μ •ν™˜ Winterlood - μΈν”„λŸ°μ΄μ •ν™˜ Winterlood | , ν”„λ‘ νŠΈμ—”λ“œμ˜ ν”Όν•  수 μ—†λŠ” λŒ€μ„Έ νƒ€μž…μŠ€ν¬λ¦½νŠΈ,μ΄μ œλŠ” μ œλŒ€λ‘œ 정볡할 λ•Œκ°€ μ™”μŠ΅λ‹ˆλ‹€! 😎 [사진]

isliife2.tistory.com

 

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ“‚ Program Language Study > πŸ“„ TypeScript 곡뢀' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (νƒ€μž… μ‘°μž‘ν•˜κΈ°)  (0) 2025.06.13
μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (μ œλ„€λ¦­)  (0) 2025.06.12
μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (μΈν„°νŽ˜μ΄μŠ€)  (0) 2025.06.11
μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (ν•¨μˆ˜μ™€ νƒ€μž…)  (0) 2025.06.11
μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (νƒ€μž…μŠ€ν¬λ¦½νŠΈ μ΄ν•΄ν•˜κΈ°)  (0) 2025.06.09
'πŸ“‚ Program Language Study/πŸ“„ TypeScript 곡뢀' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (νƒ€μž… μ‘°μž‘ν•˜κΈ°)
  • μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (μ œλ„€λ¦­)
  • μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (μΈν„°νŽ˜μ΄μŠ€)
  • μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (ν•¨μˆ˜μ™€ νƒ€μž…)
YeonSu02
YeonSu02
Email : rkddustn2519@naver.com
  • YeonSu02
    IsLiife2
    YeonSu02
  • 전체
    였늘
    μ–΄μ œ
    • λΆ„λ₯˜ 전체보기
      • πŸ“‚ Computer Science
      • πŸ“‚ Unity Engine Study
        • πŸ“„ Unity μΈν”„λŸ° κ°•μ˜
        • πŸ“„ Unity 유튜브 κ°•μ˜
        • πŸ“„ Unity μ°Έκ³ 
        • πŸ’» Game Development
      • πŸ“‚ Quality Assurance Study
        • πŸ”₯ μ—˜λ¦¬μŠ€ SW QAνŠΈλž™
        • πŸ“„ QA 곡뢀
        • πŸ“š QA μ±… 리뷰
      • πŸ“‚ Program Language Study
        • πŸ“„ C# 곡뢀
        • πŸ“„ 파이썬 곡뢀
        • πŸ“„ JavaScript 곡뢀
        • πŸ“„ TypeScript 곡뢀
      • πŸ“‚ Additional Study
        • πŸ“„ Git
        • πŸ“„ Docker
        • πŸ“„ Jenkins
        • πŸ“„ Firebase
        • πŸ“„ License
      • πŸ“‚ Experience
  • λΈ”λ‘œκ·Έ 메뉴

    • ν™ˆ
  • 링크

    • GitHub
  • 곡지사항

  • 인기 κΈ€

  • νƒœκ·Έ

    QA
    λΆ€νŠΈμΊ ν”„ μΆ”μ²œ
    μ •μ²˜κΈ° μ‹€κΈ°
    qa자격증
    μ—˜λ¦¬μŠ€νŠΈλž™
    κ΅­λΉ„λΆ€νŠΈμΊ ν”„ μΆ”μ²œ
    μ •μ²˜κΈ° 독학
    μ—‘μ…€
    μ—˜λ¦¬μŠ€νŠΈλž™ ν›„κΈ°
    istqb-ctfl
    μ»΄ν“¨ν„°ν™œμš©λŠ₯λ ₯
    μ •μ²˜κΈ° ν•„κΈ°
    qa μ±… 리뷰
    자격증
    ν…ŒμŠ€νŒ…μžκ²©μ¦
    qa 직무 ꡐ윑
    qa μ±…
    qa λΆ€νŠΈμΊ ν”„
    μ»΄ν™œ
    qa κ°•μ˜
  • 졜근 λŒ“κΈ€

  • 졜근 κΈ€

  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
YeonSu02
μΈν”„λŸ° κ°•μ˜ - ν•œ μž… 크기둜 μž˜λΌλ¨ΉλŠ” νƒ€μž…μŠ€ν¬λ¦½νŠΈ (클래슀)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”