java 57

자바 인터페이스(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(); // 추상 메소드를 선언한다. 추상메소드를 하나라도 가지면 추상클래스가 된다. 추상메소드를 가지..

자바 오버라이딩

이것을 "자식 클래스의 메소드가 부모 클래스의 메소드를 재정의한다"고 말한다. 메소드 재정의(method override)는 메소드 오버라이딩이라고 한다. 이때 메소드의 이름이나 매개 변수, 반환형은 동일하여야 한다. 팁. 재정의된 메소드 이름 앞에는 @Override 어노테이션을 붙이는 것이 좋다. 만약 부모 클래스에 그런 이름의 메소드가 없다면 컴파일러가 오류를 발생한다.

java 2019.04.11

(자바)상속 cf.호출

상속은 검증된 소프트웨어를 재사용할 수 있어서 신뢰성 있는 소프트웨어를 손쉽게 개발, 유지 보수할 수 있게 해주는 중요한 기술이다. 상속을 이용하면 여러 클래스에 공통적인 코드들을 하나의 클래스로 모을 수 있어서 코드의 중복을 줄일 수 있다. 상속의 형식 자바에서는 extends 키워드를 이용하여 상속을 나타낸다. 상속하는 클래스를 부모클래스(수퍼 클래스)라고 하고 상속받는 클래스를 자식클래스(서브 클래스)라고 한다. ex) class Cat extends Animal{ . ^ ^ . 자식클래스 부모클래스 } 무엇이 상속되는가? 자식 클래스는 부모 클래스가 가지고 있는 모든 멤버들을 전부 상속받고 자신이 필요한 멤버를 추가하기 때문에 항상 자식 클래스가 부모 클래스를 포함되게 된다. 상속을 나타낼 때 e..

java 2019.04.11

자바 인수 전달 방법

기초형 값이 전달되는 경우 인수의 값이 매개 변수로 복사된다. 인수의 복사본이 만들어지고 매게 변수를 변경하여도 메소드 외부에 있는 인수에 영향을 주지 않는다. 객체가 전달되는 경우 객체의 참조값이 복사되어 전달된다.메소드가 객체를 반환할 떄도 객체가 통째로 반환되는 것이 아니라 객체의 참조값만 반환된다. 배열이 전달되는 경우 배열도 객체이기 때문에 모두 매개변수로 받아야 한다. 때문에 배열을 전달하는 것은 배열 참조변수를 복사하는 것이다.

java 2019.04.11

자바 객체 지향 프로그래밍의 특징

캡슐화란? 코드를 재사용할 수 있는 체재이다. 다른 사람이 작성한 코드를 쓰기 위해서는 코드 자체가 잘 정리되어 있어야만 할 것이다. 즉 관련된 데이터와 알고리즘이 하나의 묶음으로 정리되어 있어야 한다. 캡슐화에는 2가지의 목적이 있다. 첫번째 목적은 서로 관련되어 있는 데이터와 알고리즘을 묶는 것이다. 관련있는 데이터와 알고리즘이 묶여 있으면 사용하기가 매우 편리하다. 두번째 목적은 객체의 내부를 보호하는 것이다. 정보 은닉(information hiding)이라고 한다. 상속이란? 기존의 코드를 재활용하기 위한 기법으로 이미 작성된 클래스(부모 클래스)를 이어받아서 새로운 클래스(자식 클래스)를 생성하는 기법이다. 상속은 기존의 코드를 재사용하는 강력한 기법이다. 다형성이란? 객체가 취하는 동작이 상..