OOP

TypeScript 제네릭 TypeScript의 제네릭에 대해 알아보겠습니다. 1. 제네릭 TypeScript는 정적 타입 언어이기 때문에 함수 또는 클래스를 선언할 때 매개변수나 반환값의 타입을 정의해야 합니다. 하지만 이렇게 특정 타입을 위해 만들어진 함수나 클래스를 재사용 해야하는 경우가 발생하고 이 때 제네릭을 사용합니다. 2. 제네릭이 필요한 경우 다음은 자료구조 큐(Queue)를 TypeScript로 구현한 예제입니다. 123456789101112131415161718192021class Queue { protected data: any = []; constructor() {} push(item: any): void { this.data.push(item); } pop(): void { ret..
TypeScript 인터페이스 TypeScript의 인터페이스에 대해 알아보겠습니다. 1. 인터페이스 인터페이스(Interface)는 일반적으로 타입 체크를 위해 사용되며 변수, 함수, 클래스에 사용할 수 있습니다. 인터페이스는 여러가지 타입의 프로퍼티로 새로운 타입을 정의하는 것과 유사하며, 정의된 인터페이스는 일관성을 유지하기 위해 내부에 선언된 프로퍼티 또는 메소드의 구현을 강제하는 특징이 있습니다. 인터페이스는 클래스와 유사하지만 인스턴스 생성이 불가능하고 모든 메소드는 추상 메소드로 이루어져 있습니다. 또한 인터페이스의 추상 메소드는 abstract 키워드를 사용하지 않는다는 특징이 있습니다. 또한 ES6에서 지원하지 않고 TypeScript에서만 지원합니다. 2. 인터페이스의 사용 인터페이스는..
TypeScript 클래스 TypeScript의 클래스에 대해 알아보겠습니다. ES(ECMAScript)6에서 도입되었습니다. 클래스는 클래스 기반 언어에 익숙한 개발자가 보다 빠르게 학습할 수 있는 문법을 제시하지만 새로운 객체지향 모델을 제공하는 것은 아닙니다. 클래스도 프로토타입 기반 패턴의 함수를 보다 직관적인 문법으로 보기 쉽게 만든 것입니다. TypeScript에서 지원하는 클래스는 ES6와 유사하지만 몇 가지 다른 고유한 기능이 있습니다. 1. 클래스 ES6의 클래스에서는 클래스 내부에 프로퍼티를 선언할 수가 없어서 생성자 안에서 선언해야 하지만, TypeScript의 클래스는 클래스 내부에 프로퍼티 선언이 가능하고 사용할 프로퍼티를 먼저 선언해줘야 합니다. 123456789101112131..
TypeScript 정적 타이핑 TypeScript의 정적 타이핑에 대해 알아보겠습니다. 1. 타입 선언 TypeScript에서는 다음과 같이 변수명 뒤에 타입(자료형)을 명시하여 타입을 선언하는 것이 가능합니다. 1let text: string = 'Hello';cs 또한 타입 선언 후 맞지 않는 값을 할당하면 컴파일할 때 에러가 발생합니다. 타입 선언의 특징은 다음과 같습니다. 개발자의 코드 예측 가능 및 개발 효율 향상 강력한 타입 체크 기능으로 문법 에러나 일치하지 않는 값의 할당 오류 등을 런타임 이전에 검출TypeScript는 ES5, ES6의 상위 집합이므로 기존 JavaScript의 타입을 그대로 사용할 수 있습니다. 다음은 TypeScript와 JavaScript의 타입을 정리한 내용입니..
인터페이스 인터페이스(interface)는 일종의 추상클래스이며 추상클래스보다 추상화 정도가 더 높습니다. 추상클래스를 미완성 설계도로 비유한다면 인터페이스는 기본 설계도에 비유할 수 있습니다. 인터페이스는 다른 클래스 작성에 도움을 주거나 서로 무관한 클래스들에게 관계를 맺어줄 목적으로 사용됩니다. 인터페이스의 특징을 정리하면 다음과 같습니다. - class 키워드 대신 interface 키워드를 사용하여 정의- 인스턴스 생성 불가- 모든 멤버변수에는 public static final 제어자가 붙음 (생략 가능)- 모든 메서드는 public abstract 제어자가 붙음 (생략 가능) ※ 제어자 생략시 컴파일러가 자동으로 추가. 1.1 인터페이스의 생성 다음과 같이 class 키워드 대신 interf..
추상클래스 추상클래스(abstract class)는 미완성 설계도로 비유할 수 있는 구체화되지 않은 클래스입니다. 미완성의 추상 메서드를 포함하고 있으며, 반드시 상속을 통해 완성한 후 사용할 수 있습니다. 따라서 추상클래스 자체로는 인스턴스 생성이 불가능합니다. 추상클래스는 추상메서드 외에도 일반적인 멤버변수와 메서드, 생성자도 포함합니다. 추상클래스의 특징을 정리하면 다음과 같습니다. - 클래스 앞에 abstract 키워드를 붙여서 정의- 인스턴스 생성 불가- 추상 메서드를 포함 (그 외 멤버변수, 메서드, 생성자도 포함 가능) 다음과 같이 클래스 앞에 abstract 키워드를 붙여서 추상클래스를 생성합니다. abstract class [클래스명] {// 클래스 내용} ※ 추상메서드가 없어도 클래스에..
자바(JAVA) 객체지향언어 및 클래스와 객체 자바(JAVA)는 객체지향(Object Oriented) 프로그래밍 언어입니다. 객체지향 프로그래밍의 근간이되는 객체지향이론은 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물(객체)간의 상호작용이라는 기본 개념을 가지고 있습니다. 이번 포스팅에서는 자바의 클래스, 객체, 변수, 메서드, 오버로딩, 오버라이딩, 생성자에 대해서 알아보겠습니다. 1. 객체지향언어 객체지향언어는 기존의 프로그래밍 언어에 몇가지 새로운 규칙을 추가하여 보다 발전된 형태의 언어입니다. 이러한 규칙들을 이용해서 코드간에 서로 관계를 맺어주어 보다 유기적으로 프로그램을 구성하는 것이 가능합니다. 객체지향언어의 주요 특징은 다음과 같습니다. - 코드의 재사용성이 높..
freestrokes
'OOP' 태그의 글 목록