728x90
[기본 개념] 3 | (1.1) 예외처리 구조1> 프로그램 오류2> 예외 클래스의 계층구조3> 예외처리하기 - try-catch문4 try-catch문에서의 흐름5 예외의 발생과 catch블럭6 예외 발생시키기7 메서드에 예외 선언하기8 finally블럭9 자동 자원 반환 - try-with-resources문10 사용자 정의 예외 만들기11 예외 되던지기(exception re-throwing)12 연결된 예외(chained exception)1. 프로그램 오류 프로그램 에러 또는 오류의 발생 시점에 따라 '컴파일 에러(compile-time error)'와 '런타임 에러(runtime error)'로 나눌 수 있는데, '컴파일 에러'는 컴파일할 때 발생하는 에러이고 '런타임 에러'는 프로그램의 실행 ..
[기본 개념] 2 | (8.1) 내부클래스, 익명클래스1> 내부클래스란?2> 내부클래스의 종류와 특징3> 내부클래스의 선언4> 내부클래스의 제어자와 접근성5> 익명클래스(anonymous class)1. 내부클래스란? 내부클래스는 클래스 내에 선언된 클래스이다. 클래스 내에 선언하는 이유는 두 클래스가 서로 긴밀한 관계이기 때문이다. 내부클래스를 사용하면 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 클래스를 감춤으로 코드의 복잡성을 줄일 수 있다. 내부클래스의 장점- 내부클래스에서 외부클래스의 멤버들을 쉽게 접근할 수 있다.- 코드의 복잡성을 줄일 수 있다. class A { . . . } class B { . . . }..
[기본 개념] 2 | (7.3) 인터페이스, 디폴트 메서드1 인터페이스란?2 인터페이스의 작성3 인터페이스의 상속4 인터페이스의 구현5 인터페이스를 이용한 다중상속6 인터페이스를 이용한 다형성7 인터페이스의 장점8> 인터페이스의 이해9> 디폴트 메서드8. 인터페이스의 이해인터페이스의 규칙이나 활용이 아닌, 본질적인 측면에 대해 살펴보자. - 클래스를 사용하는 쪽(User)과 클래스를 제공하는 쪽(Provoider)이 있다.- 메서드를 사용(호출)하는 쪽 (User)에서는 사용하려는 메서드(Provoid)의 선언부만 알면 된다. 예제/InterfaceTest.javapublic class InterfaceTest { public static void main(String[] args) { ..
[기본 개념] 2 | (7.2) 인터페이스 다형성, 장점1 인터페이스란?2 인터페이스의 작성3 인터페이스의 상속4 인터페이스의 구현5 인터페이스를 이용한 다중상속6> 인터페이스를 이용한 다형성7> 인터페이스의 장점8 인터페이스의 이해9 디폴트 메서드6. 인터페이스를 이용한 다형성 인터페이스도 인터페이스 타입의 참조변수로 이를 구현한 클래스의 인스턴스를 참조할 수 있으며, 인터페이스 타입으로 형변환도 가능하다. 인터페이스 Fightable을 클래스 Fighter가 구현했을 때, 다음과 같이 FIghter인스턴스를 Fightable타입의 참조변수로 참조하는 것이 가능하다. Fightable f = (Fightable)new Fighter( ) ;또는Fightable f = new Fighter( ) ; ..
[기본 개념] 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) { ..