인터페이스
·
자바/기본적인 개념
1. 인터페이스란? - 추상 클래스처럼 추상 메서드를 갖지만, 추상 클래스보다 추상화 정도가 높아서 추상 클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. - 오직 추상 메서드와 상수만을 맴버로 가지고, 어떤 다른 요소도 가지지 않는다. - 추상 클래스를 부분적으로만 완성된 '미완성 설계도' 라고 한다면, 인터페이스는 구현된 것은 아무것도 없고 밑 그림만 그려져 있는 '기본 설계도'라 할 수 있다. - 인터페이스는 인터페이스로부터만 상속 받으며, 하나의 클래스가 다중 인터페이스로부터 상속 받는 것이 가능하다. - 인터페이스 또한 추상 클래스처럼 인스턴스를 생성할 수 없다. - 문법 interface 인터페이스이름{ public static final 상수이름 = 값; pu..
추상 클래스(abstract class)
·
자바/기본적인 개념
1. 추상 클래스란? - 단어의 뜻 그대로 완성되지 못한 채로 남겨진 설계도를 말한다. - 미완성 클래스는 인스턴스를 생성할 수 없다. ( 단, 생성자는 생성 가능하다. ) - 미완성 클래스는 상속을 통해서 자손 클래스에 의해서만 완성될 수 있다. 2. 추상 클래스가 필요한 이유는? - 예를 들자면, 컴퓨터가 여러 대 있고, 여러 종류가 있으며 각기 다른 기능을 수행하지만, 이 들의 설계도는 90%는 동일할 것이다. 그래서 공통적인 부분을 먼저 설계한 다음 각각의 서로 다른 설계도를 작성하는 것이 효율적이기 때문에, 사용하는 것이다. 3. 추상 메서드란? - 추상 클래스와 개념이 같으며, 추상 메서드는 구현부와 선언부 중에 선언부만 작성한다. - 문법: abstract 리턴타입 메서드이름(); 4. 추상..
다형성(3)
·
자바/기본적인 개념
1. 매개변수의 다형성 ( 위와 같은 클래스들이 있다고 가정해보자. ) ( Product는 Tv, Computer, Audio의 조상이다. ) ( Buyer 클래스는 Tv, Computer, Audio를 구입하는 사람을 표현한 것이다. ) ( 그런 다음, 위와 같이 Buyer 클래스에 buy 메서드를 오버로딩을 해주었다. ) ( 하지만 제품의 종류가 늘어날 때마다 buy 메서드를 계속 오버로딩을 해주어야 된다. ) ( 그래서 위와 같이 매개변수에 다형성을 추가해주면 코드가 간결해진다. ) 2. 예제(1) - 매개변수에 다형성을 활용 3. 예제(2) - 매개변수에 다형성을 여러 종류의 객체 배열로 다루어 보기. ( 예제(1)과 Buyer 클래스와 main 클래스에서 수정이 되었다. ) ( 수정한 결과 Pr..
다형성(2)
·
자바/기본적인 개념
1. 예제(1) - 중복된 인스턴스 변수 ( 오버라이딩 된 메서드만 자손 인스턴스를 참조할 수 있지만, 중복된 인스턴스 변수는 자손 인스턴스에서 참조할 수 없다. ) 2. 예제(2) - 중복된 메서드와 인스턴스 변수 그리고 지역변수, this, super의 차이점 ( 인스턴스 변수를 이 예제처럼 직접 접근을 한다면, 참조 변수의 타입에 따라 사용되는 인스턴스 변수가 달라지므로, private로 접근을 제한하는 것이 좋다 .)