728x90
[기본 개념] 2 | (7.1) 인터페이스 상속, 구현, 다중상속1> 인터페이스란?2> 인터페이스의 작성3> 인터페이스의 상속4> 인터페이스의 구현5> 인터페이스를 이용한 다중상속6 인터페이스를 이용한 다형성7 인터페이스의 장점8 인터페이스의 이해9 디폴트 메서드1. 인터페이스란? 인터페이스는 일종의 추상 클래스이다. 인터페이스는 추상클래스보다 추상화 정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있다. 인터페이스도 추상클래스처럼 불완전한 것이기 때문에 그 자체만으로 사용되기보다는 다른 클래스를 작성하는데 도움 줄 목적으로 작성된다.2. 인터페이스의 작성 class대신 interface를 사용한다는 것만 다르..
[기본 개념] 2 | (6.1) 추상클래스1> 추상클래스란?2> 추상메서드(abstract method)3> 추상클래스의 작성1. 추상클래스란? 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상클래스로 인스턴스는 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상클래스는 새로운 클래스를 작성하는 데 있어서 바탕이 되는 조상클래스로서 중요한 의미를 갖는다. 추상클래스는 키워드 'abstract'를 붙이기만 하면 된다. 이렇게 함으로써 클래스 선언부의 abstract를 보고 상속을 통해 구현해주어야 한다는 것을 쉽게 알 수 있을 것이다. abstract class 클래스이름 {..
[기본 개념] 2 | (5.3) 매개변수의 다형성, 객체를 배열로1 다형성이란?2 참조변수의 형변환3 instanceof연산자4 참조변수와 인스턴스의 연결5> 매개변수의 다형성6> 여러 종류의 객체를 배열로 다루기5. 매개변수의 다형성 참조변수의 다형적인 특징은 메서드의 매개변수에도 적용된다. 아래와 같이 Product, Tv, Computer, Audio, Buyer클래스가 정의되어 있다고 가정하자. class Product { int price ; // 제품의 가격 int bonusPoint // 제품구매 시 제공하는 보너스 점수 } class Tv ext..
[기본 개념] 2 | (5.2) instance of 연산자, 참조변수와 인스턴스 연결1 다형성이란?2 참조변수의 형변환3> instanceof연산자4> 참조변수와 인스턴스의 연결5 매개변수의 다형성6 여러 종류의 객체를 배열로 다루기3. instanceof연산자 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 instanceof연산자를 사용한다. 주로 조건문에 사용되며, instanceof의 왼쪽에는 참조변수를 오른쪽에는 타입(클래스명)이 피연산자로 위치한다. 그리고 연산의 결과로 boolean값인 true와 false중의 하나를 반환한다. void doWork(Car c) { if (c instanceof FireEngine) { ..
[기본 개념] 2 | (5.1) 다형성, 참조변수의 형변환1> 다형성이란?2> 참조변수의 형변환3 instanceof연산자4 참조변수와 인스턴스의 연결5 매개변수의 다형성6 여러 종류의 객체를 배열로 다루기1. 다형성이란? 객체지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다. class Tv { boolean power ; // 전원 상태(on / off) int channel ; // 채널 ..
[기본 개념] 2 | (4.1) static, final, abstract, 접근 제어자1> 제어자란?2> static - 클래스의, 공통적인3> final - 마지막의, 변경될 수 없는4> abstract - 추상의, 미완성의5> 접근제어자(access modifier)6> 제어자(modifier)의 조합1. 제어자란? 제어자란 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여하는 것이다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근 제어자 public, protected, default, private그 외 static, final, abstract, native, transient, synchronized, volatil..
[기본 개념] 2 | (3.1) Package, Import 문1> 패키지(package)2> 패키지의 선언3> import문4> import문의 선언5> static import문1. 패키지(package) 패키지란, 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다. 같은 이름의 클래스일지라도 서로 다른 패키지에 존재하는 것이 가능하므로, 자신만의 패키지 체계를 유지함으로써 다른 개발자가 개발한 클래스 라이브러리의 클래스와 이름이 충돌하는 것을 피할 수 있다. 지금까지는 단순히 클래스 이름으로만 구분했지만, 사실 클래스의 실제 이름(full name)은 패키지명을 포함한 것이다. 예..
[기본 개념] 2 | (2.1) 오버라이딩, Super( )1> 오버라이딩이란?2> 오버라이딩의 조건3> 오버로딩 vs 오버라이딩4> super5> super( ) - 조상 클래스의 생성자1. 오버라이딩이란? 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 자손 클래스 자신에 맞게 변경해야 하는 경우에 조상의 메서드를 오버라이딩 한다. 2차원 좌표계의 한 점을 표현하기 위한 Point클래스가 있을 때, 이를 조상으로 하는 Point3D클래스, 3차원 좌표계의 한 점을 표현하기 위한 클래스를 다음과 같이 새로 작성하였다고 하자. class Point { int x ; int y ; String ge..