2019/04/16 4

자바 인터페이스(interface)

인터페이스란? 서로 다른 장치들이 연결되어서 상호 데이터를 주고받는 규격을 의미한다. 인터페이스는 특히 컴퓨터 주변 장치에 많다. 각자 클래스를 다른 사람의 클래스와 연결하려면 클래스 간의 상호작용을 기술하는 일종의 규격(조건)이 있어야 한다. 그래야만 클래스들이 서로 잘 접속될 것이다. 이러한 규격을 인터페이스(interface)라고 부른다. 인터페이스를 정의 하는것은 클래스를 정의하는 것과 유사하다. 다만 키워드 class를 사용하지 않고 interface를 사용한다. interface Drawable { void draw(); } // Drawable 인터페이스 안에는 draw() 추상 메소드만 정의 되어 있다. 즉 메소드 이름과 매개변수만 존재하고, 몸체가 없으며 세미콜론으로 종료된다. 참고로 인..

자바 실제 객체

실제 객체를 알고 싶다면? 어떤 참조 변수가 가리키는 객체의 실제 타입을 알고 싶으면 instanceof 연산자를 사용한다. 예를 들어서 앞의 도형 예제에서 Shape 참조 변수는 Rectangle, Triangle, Circle 타입의 객체를 모두 가리킬 수 있다. 경우에 따라서는 실제 타입을 알고 싶은 경우가 있다. 이런 경우에 instanceof 연산자를 사용한다. public class ShapeTest{ public static void main (String[] args) { Shape s = new Rectangle(); if ( s instanceof Rectangle ) { System.out.println("실제 객체는 Rectangle 이군요!"); } if ( s instanceof..

자바 상속과 다형성

다형성(polymorphism)은 "많은(poly) + 모양(morph)"이라는 의미로서 주로 프로그래밍 언어에서 하나의 식별자로 다양한 타입(클래스)을 처리하는 것을 의미한다. 즉, 똑같은 명령을 내리지만 객체의 타입이 다르면 서로 다른 결과를 얻을 수 있는 것이 다형성이다. 객체 지향 기법에서 하나의 코드로 다양한 타입의 객체를 처리하는 중요한 기술이다 = 동일한 코드로 다양한 타입의 객체를 처리할 수 있는 기법이다. 상속과 다형성 다형성은 상속을 통하여 구현된다. 예를 들어보자 class Shape { protected int x, y; public void draw() { System.out.println("Shape Draw"); } } // 각 도형들을 2차원 공간에서 도형의 위치를 나타내는 ..

자바 추상클래스

추상클래스란? 완전하게 구현되어 있지 않은 메소드를 가지고 있는 클래스를 의미한다. 메소드가 미완성되어 있으므로 추상 클래스로는 객체를 생성할 수 없다. 주로 상속 계층에서 추상적인 개념을 나타내기 위한 용도로 사용된다. 추상메소드의 예) abstract class Shape{ // 추상클래스 Shape을 선언한다. 추상 클래스로는 객체를 생성할 수 없다. int x, y; public void move(int x, int y){ // 추상클래스라고 하더라도 추상 메소드가 아닌 보통의 메소드를 가질 수 있다. this. x = x; this. y = y; } public abstract void draw(); // 추상 메소드를 선언한다. 추상메소드를 하나라도 가지면 추상클래스가 된다. 추상메소드를 가지..