본문 바로가기

프로그래밍 언어8

TypeScript 란? 정의 JavaScript를 기반으로 하는 강력한 타입형 프로그래밍 언어 탄생 배경 JavaScript로 작성된 프로그램의 크기, 범위 및 복잡성은 기하급수적으로 커졌지만, 다른 코드 단위 간의 관계를 표현하는 JavaScript 언어의 능력은 그렇지 못했습니다. JavaScript의 다소 특이한 런타임 의미 체계(runtime semantics)와 더불어, 언어와 프로그램 복잡성 간의 불일치는 JavaScript 개발을 규모에 맞게 관리하기 어려운 작업으로 만들었습니다. 이러한 문제를 해결하기 위해 MS(마이크로소프트)에서 TypeScript를 개발했습니다. 특징 자바스크립트로 트랜스 파일 해야 브라우저나 자바스크립트 엔진에서 실행됩니다. 자바스크립트의 상위 집합으로 모든 ECMA 버전의 자바스크립트 파.. 2021. 11. 30.
추상 클래스(Abstract Class) 와 인터페이스(Interface) 추상 클래스 (Abstract Class) 란? - 한 개 이상의 추상 메소드를 가지는 클래스 * 추상메소드 : 내용 구현(정의)을 하지 않고 선언만 한 메소드 추상 클래스 특징 - class 앞에 abstract 예약어를 이용해서 정의 - 추상 메소드는 리턴 타입 앞에 abstract라는 키워드를 붙여야 함 - 객체(인스턴스) 생성이 불가능 (왜? 아직은 실체성이 없고 구체적이지 않기 때문) - 자식 클래스에서 추상 메소드의 구현을 강제하도록 합니다. - Is-a (~이다) 추상 클래스 사용목적 - 필드와 메소드 이름을 통일하여 유지보수성을 높이고 통일성을 유지 - 소스 수정 시 다른 소스의 영향도를 적게 가져가면서 변화에는 유연하게 만들기 위해 사용 - 규격에 맞게 소스가 구현되어 있기 때문에 해당 .. 2021. 7. 7.
오버 로딩(Overloading)과 오버 라이딩(Overriding) 오버 로딩(Overloading) 이란? - 한 클래스 내에 메소드의 이름이 동일하면서 리턴 타입 또는 매개변수를 다르게 정의하는 방법 오버 로딩 조건 1. 메소드 이름이 같아야 한다. 2. 리턴 타입에 상관없이 매개변수(파라미터) 개수 또는 자료형이 반드시 달라야 한다. 예제 class TestValue { void add(){ System.out.println("매개변수가 없는 메소드"); } void add(int a){ System.out.println("매개변수가 "+a+"인 메소드"); } void add(int a, int b){ System.out.println("매개변수가 "+a+"와 "+b+"인 메소드"); } } public class Test { public static void m.. 2021. 7. 3.
Call by Value와 Call by Reference 란? 개요 메소드에 전달되는 변수의 데이터 타입에 따라서 메소드 호출 방식이 달라집니다. 메소드를 호출하는 방식으로는 Call By Value와 Call By Reference 2가지가 있습니다. Call by Value 란? - 메소드에 값을 전달할 때, 변수의 값을 복사해서 메소드에 전달하는 방식 특징 - 저장소를 공유하지 않음 - 기본 자료형 (int, short, long, float, double, char, boolean) - 값을 복사해서 전달했으므로 받은 인자의 값을 변경하더라도 변경되지 않음. 장점 - 복사하여 처리하기 때문에 안전하다. 원래의 값이 보존이 된다. 단점 - 복사를 하기 때문에 메모리가 사용량이 늘어난다. 예시 class TestValue { int x; } public clas.. 2021. 6. 29.