Development/Java(849)
-
제네릭 제한, 제네릭의 제한(class) 형식
제네릭 제한· extends 예약어로 제네릭으로 올 수 있는 데이터 타입을 특정 클래스의 자식으로 제한할 수 있습니다.· extends를 통해 부모클래스가 무엇인지 지정하여 제네릭에 올수 있는 타입을 지정(제한)하게 됩니다.· extends는 상속(extends)뿐 아니라 구현(implements)의 관계에서도 사용할 수 있습니다. 제네릭의 제한(class) 형식 extends 키워드를 사용하면 타입 변수(type variable)에 특정 타입만을 사용하도록 제한할 수 있습니다. interface Property{ //... } abstract class Info{ //추상 메소드 public abstract int getInfo(); } class EmployeeInfo extends Info{ pub..
-
Generics(일반화) - 일반화(Generalization), 일반화 프로그래밍(Generic Programming), 제네릭의 필요성, 제네릭화의 이점
일반화(Generalization) 특수한 개념으로부터 공통된 개념을 찾아 묶는 것을 의미합니다. 일반화 프로그래밍(Generic Programming) · 일반화 프로그래밍은 일반화(generalization)를 이용하는 프로그래밍 기법 · 데이터 형식(Data Type) 일반화(generalize)를 이용하는 프로그래밍 패러다임 ♣제네릭(Generics) · JDK 1.5부터 도입된 기능입니다. · 제네릭은 클래스를 정의 할 때는 데이터 타입을 확정하지 않고 인스턴스를 생성할 때 데이터 타입을 지정하는 방법을 의미합니다. · Generics는 컬렉션(자료구조) 또는 객체들을 저장(수집)하는 구조적인 성격을 제공합니다. · 제네릭(Generic)은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는..
-
finally의 필요성, finally 구성 형식, finally안에서의 예외, finally 블럭
finally의 필요성· 무조건, 항상 실행되는 것이 아니라, finally와 연결되어 있는 try 블록으로 일단 진입을 하면, 무조건 실행되는 영역이 바로 finally 블록입니다.· try문의 중간에 return 문을 실행하더라도 finally 블록이 실행된 다음에 메소드를 빠져 나가게 됩니다.· 정리하면 예외가 발생하든 발행하지 않든 무조건 수행하는 부분이 바로 finally영역입니다.· finally는 Database처리나 File처리를 할때 꼭 필요한 부분입니다. 이유는 Database를 열거나 또는 File을 열었다면 꼭 닫아주고 난 후 프로그램이 종료되어야 하는 데 이 부분을 finally에서 수행해 주기 때문입니다. finally 구성 형식finally절은 try~catch문과 함께 선언해..
-
throw 예외의 인위적인 발생, 예외를 강제로 발생 활용, throws 예외처리시 이점
throw 예외의 인위적인 발생개발자가 의도적으로 예외를 발생시킬 수 있으며 이 때 throw문을 사용해 인위적으로 예외를 발생시키게 됩니다.생성자에 전달된 문자열은 getMessage() 메소드를 사용하여 오류 메시지로 출력할 수 있습니다. public class ThrowsEx { public void methodE(String[] n)throws Exception{ if(n.length > 0){ for(String s : n) System.out.println(s); }else throw new Exception("배열에 요소가 없습니다."); } public static void main(String[] args) { ThrowsEx te = new ThrowsEx(); try{ te.metho..
-
throws - throws예약어, throws 사용법, throws 예약어를 통한 메서드 선언
throws예약어· try~catch 문으로 예외를 받는다는 것은 어디선가는 예외를 던진다는 것입니다.· 현재 메서드에서 예외처리를 하기가 조금 어려운 상태일 때 현재 영역을 호출해준 곳으로 발생한 예외 객체를 대신 처리해 달라며 양도하는 것입니다. throws 사용법· throws 예약어를 사용하여 발생한 예외객체의 양도는 어디까지나 양도이지 예외에 대한 처리가 아닙니다.· 양도를 받은 곳에서도 다시 양도가 가능하지만 언젠가는 try~catch문으로 예외처리를 해야 프로그램의 진행을 계속 유지 할 수 있습니다.· throws예약어 사용시 예외상황이 메소드 내에서 처리되지 않으면, 메소드를 호출한 영역으로 예외의 처리가 넘어가게 되고 결국 try~catch문으로 예외처리되는 문장을 수행하게됩니다. thr..
-
다중 catch문 - 다중 catch문의 주의 사항, 하위 예외객체가 먼저 온 경우, 상위 예외 객체가 먼저 온 경우, 다중 catch문을 사용시 이점
다중 catch문 다중 catch문은 하나의 try문 내에 여러 개의 예외가 발생 가능할 경우 사용합니다. 예외가 발생하면, try 블록과 가장 가까운 catch 블록부터 순서대로 검사합니다. try{ // 예외 발생 가능한 문장들; } catch(예상되는_예외객체1 변수명){ // 해당 예외가 발생했을 때 수행할 문장들; } catch(예상되는_예외객체2 변수명){ // 해당 예외가 발생했을 때 수행할 문장들; } catch(예상되는_예외객체3 변수명){ // 해당 예외가 발생했을 때 수행할 문장들; } 다중 catch문의 주의 사항· 여러 개의 catch 블록을 사용할 때는 Exception 클래스의 계층 관계에 주의를 기울여야 합니다.· 예외(Exception)에서 가장 상위(parent)에 있는 ..