Ⅱ. 예외(Exception)의 전가(throws) 1. 예외의 전가(throws) - 예외 처리를 자신이 호출된 지점으로 전가 (이 경우 예외처리는 전가받은 상위위치에서 처리) → 즉, 예외가 발생하는 지점에서 예외 처리하지 않고, 바깥으로 넘김 - 메소드이름(…) throws 예외클래스 // Example package sample; public class Main { public static void methodA() throws Exception { methodB();// B가 A로 발생 예외를 전가함 } public static void methodB() throws Exception { methodC();// C가 B로 발생 예외를 전가함 } // throws : 발생 예외를 전가함 publi..
Ⅰ. 예외(Exception) 및 예외 처리 - 코드는 문법을 기반으로 작성함 - 문법을 틀리면, 코드가 동작할 수 없음 (컴파일러가 컴파일을 안 해주기 때문) 1. 예외(Exception)와 에러(Error)의 차이점 - 오류(Error) : 문법이 틀려서 동작할 수 없는 상태 → 수습 불가능, 코드를 수정해야 함 - 예외(Exception) : 문법은 맞는데 프로그램 논리적으로 맞지 않아 발생하는 객체 → 수습 가능, 코드를 추가하여 피해감 2. 예외 처리 - 예외의 종류는 무척 다양함 (또한, 각 예외마다 이름을 가지고 있음) - 프로그램 실행 중 예외가 발생하면 프로그램 내에서는 예외 객체가 생성됨 → 이를 감지하여 처리해 주는 작업을 가리켜 '예외 처리'라고 함 - 예외 처리를 위해서는 try-..
(참고만) Ⅲ. 이너인터페이스(inner interface) 1. 내부 인터페이스 ※ 이너인터페이스는 정적(static)이너인터페 이스만 가능 (static 생략시 자동 추가)
Ⅱ. 익명이너클래스(Anonymous class) 1. 익명 이너클래스 ← 익명(이름을 알 수 없음) + 이너클래스 - 인터페이스의 객체를 별도로 생성하지 않고 사용가능 - 내부적으로만 호출 가능 // Example //인터페이스를 상속한 이너클래스를 생성하여 인터페이스 객체 생성 package sample; class A { C c = new B(); void abc() { c.bcd(); } class B implements C { public void bcd() { System.out.println("인스턴스 이너클래스"); } } } interface C { public abstract void bcd(); } public class Main { public static void main(Stri..
Ⅰ. 이너클래스 (Inner class) 1. 이너클래스 (Inner class) - 정의 : 클래스 내부에 포함된 클래스 - 종류 - 멤버클래스 - 1. 인스턴스 이너 클래스 - 2. 정적 이너 클래스 - 지역클래스 2. 인스턴스 멤버 이너클래스 - 특징: 외부(outter)클래스의 모든 접근지정자의 멤버 접근 가능 - 생성클래스명 : A.class, A$B.class - 객체생성방법 Step#1. 외부클래스 객체 생성 Step#2. 이너클래스 객체 생성 // Example package sample; class Dog { public String name = "순돌이"; void bark() {System.out.println("멍멍");} // 이너클래스는 외부클래스의 부속 개념으로 만들어 줌 cl..
Ⅱ. 인터페이스(Interface) 1. 인터페이스 ※ 인터페이스 : 클래스 상호 간의 공통사항을 공유하기 위한 일종의 약속 - 모든 필드가 public static final로 정의 - 모든 메소드가 public abstract로 정의 (디폴트 메소드 제외) - 인터페이스로 new 연산 못함 - 인터페이스도 다형성 적용 가능 - 디폴트 메소드는 public로 정의 - 자체적으로 객체 생성 불가 2. 인터페이스 정의 3. 인터페이스의 상속 - 상속 시 implements 사용 // Example package sample; // 인터페이스 : 클래스 상호 간의 공통사항을 공유하기 위한 일종의 약속 interface Refri { void iceMaking(); void normalTemp(); void ..
Ⅰ. 추상클래스 (abstract class) 1. 추상클래스의 위치 2. 추상클래스의 개념 - 추상메소드(abstract method)를 포함한 클래스 - 메소드의 본체({ })가 없고 세미콜론(;)으로 끝남 3. 오버라이딩(overriding) vs. 구현하기(implements) - 오버라이딩 (overriding) - 부모클래스의 메소드(완성/미완성)를 자식클래스에서 재정의(완성) - 구현하기 (implements) - 부모클래스의 미완성메소드(추상메소드)를 자식클래스에서 재정의(완성) 4. 추상클래스의 특징 - class 앞에 abstract를 붙여야 함 - 추상클래스는 그 자체로는 객체 생성 불가함 (추상메소드(abstract method/미완성 메소드)를 포함하기 때문) - 추상 클래스는 오..
Ⅱ. abstract (추상화) 1. 추상화의 종류 - 추상 클래스 - 인터페이스 2. abstact(추상) 메소드 ※ 추상화 : 뚜렷한게 형태가 있지 않지만, 그것을 표현해 둠 - 뚜렷하게 기능이 정의되어 있지 않은, 선언 부분만 존재하는 메소드 // Example package sample; // 추상 메소드가 하나라도 있으면, 클래스는 '추상 클래스'여야 함 abstract class Animal { // abstract : 기능 없이 상속만 가능 (중괄호를 없애야 함) abstract void hunting(); } class Eagle extends Animal { void hunting() { System.out.println("생쥐 사냥"); } } class Puma extends Anim..
Ⅰ. final 1. final 필드, final 지역변수 - 변수의 상수화 - 처음 지정된 값을 바꿀 수 없음 - 변수에 final을 붙이면 변수가 아니게 됨 → 값을 변경할 수 없고, 추가적인 값의 대입 자체가 불가 (상수의 상태가 됨) ※ final로 변수를 고정시킬 경우, 선언과 동시에 값을 지정해야 함 ex) final int a = 3; 2. final 메소드, final 클래스 - final 메소드 : 상속시 Override 불가 - final 클래스 : 상속 자체 불가 3. final 필드/메소드/클래스 메소드 최종정리
Ⅵ. 최상위 클래스 Object 1. Object 클래스 : 모든 자바 클래스의 부모 클래스 - 자바의 모든 클래스는 Object의 자식클래스 = 자바의 모든 클래스는 Object의 메소드를 가짐 2. Object 메소드 : toString ( ) - 객체의 정보 패키지.클래스명@해쉬코드 - 일반적으로 오버라이딩해서 사용 // Example1 // Object 클래스의 toString() 메소드 package sample; class A { //extends Object (컴파일러에 의해서 자동추가) int a = 3; int b = 4; } class B {// toString() overriding int a = 3; int b = 4; public String toString() { return "..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.