예외처리 (Exception) 예외 (Exception) : 예상하지 못한 일들 : 가벼운 오류 예외처리 : 예외를 대비하고 준비하는 것 예외처리의 필요성과 이해 : 자바에서 프로그램이 실행하는 도중에 예외가 발생하면 발생된 그 시점에서 프로그램이 바로 종료된다 : 프로그램의 비 정상적인 종료를 막고 발생한 예외에 대한 처리로 정상적인 프로그램을 계속 진행하는 것이 목표 오류 (error) : 치명적인 오류이며 JVM에 의존하여 처리한다 try~catch문 try{ // 예외처리가 발새 가능한 문장들 }catch(예상되는_예외객체 변수명){ // 해당 예외가 발생했을 시 수행할 문장들 } 다중 catch문 try{ // 예외처리가 발새 가능한 문장들 }catch(예상되는_예외객체 변수명1){ // 해당 예외가 발생했을 시 수행할 문장.. Java/java 5년 전
제네릭 (Generics) Generics 컬렉션(자료구조) 객체들을 저장(수집)하는 구조적인 성격을 보강하기 위해 제공되는 것 import static java.lang.System.out; // static import문. System을 명시 안해도 사용 가능 class GenericEx1{// T는 미결정타입 T[] v; public void set(T[] n){ v = n; } public void print(){ for(T s : v) out.println(s); } } Generic_class명 변수명; // 선언 변수명 = new Generic_class생성자명(); // 생성 public class GenericEx1Main { public static void main(String[] args) { GenericE.. Java/java 5년 전
내부 클래스 ( Inner Class ) 내부클래스 : 특정 클래스 내에 또 다른 클래스가 정의된는 것을 의미한다. : 독립적이지는 않지만 하나의 멤버처럼 사용할 수 있는 특징이 있다. 주의사항이자 장점 내부 클래스는 외부 클래스의 모든 멤버들을 마치 자신의 멤버처럼 사용할 수 있다. static 내부 클래스를 제외하고는 다른 내부 클래스는 항상 외부 클래스를 통해야 생성이 가능하다 종류 설명 Member 멤버 변수나 멤버 메서드들과 같이 클래스가 정의된 경우에 사용한다. Local 특정한 메서드 내에 클래스가 정의된 경우에 사용한다. Static static 변수(클래스 변수)와 같이 클래스가 static으로 선언된 경우에 사용된다. Anonymous 참조할 수 있는 이름이 없는 경우에 사용한다. Local은 잘 사용 안함 Static은 St.. Java/java 5년 전
인터페이스(Interface) 인터페이스 음식점의 메뉴판과 같은 것이다. 메뉴판을 보고 고객이 원하는 음식을 요청하게 되는데 메뉴판 자체가 음식을 주진 않는다. 실제 음식은 주방에서 나오므로 메뉴판은 고객이 호출할 수 있는 서비스의 목록이라 할 수 있다. [접근제한] interface [인터페이스명] { 상수; 추상메서드; } 인터페이스 내에는 상수 또는 추상메서들만 정의가 가능하다. 사용하기 위해서는 일반 클래스에서 구현력을 가져야 한다. (일반 클래스에서 "implements(구현)"라는 예약어로 특정 인터페이스를 구현하겠다고 명시하는 것이다.) 명시한 인터페이스가 가지는 추상 메서드들은 구현 받은 클래스에서 하나도 빠짐없이 Overriding(재정의) 해야한다. 확장이 쉽다. 다중상속 가능 ( 인터페이스 인터페이스는 extens.. Java/java 5년 전
(Java)동적바인딩 예제 public abstract class MyMemory { protected int []arr; protected int pos; public MyMemory() { this(5);// 배열 길이를 안정해주면 5 } public MyMemory(int num) { arr = new int[num];// 배열 생성 pos = 0;// 배열 위치 } public void push(int data) { arr[pos++] = data;// arr[0]에 값을 넣고 후에 1증가 } public abstract int pop();// 추상메소드 생성 } public class MyStack extends MyMemory{ @Override public int pop() { return arr[--pos];// 값.. Java/eclipse 연습 5년 전
추상화 추상화 : 구체적인 개념으로부터 공통된 부분들만 추려내어 일반화 할 수 있도록 하는 것 : 다시 말해서 일반적으로 사용할 수 있는 단계가 아닌 아직 미완성적 개념 : 상속을 목적으로 사용 추상메서드 : 메서드를 정의하면서 brace({})를 생략하여 실상 메서드가 하는 일(body)이 없이 : semicolon(;)으로 문장의 끝을 나타내었다. : 그리고 abstract라는 예약어를 통해 현 메서드가 추상 메서드임을 명시하였다. : 강제성을 부여한다. : 동적 바인딩을 위해서 사용한다. ( 부모의 레퍼런스로 자식을 접근한다. ) (동적바인딩은 부모가 알고 있는 것만 접근할 수 있다.) : 내가 갖고 있어야할 공통사항이지만(같은 목적이지만) 내가 값을 정할 수 없을 때 이름만 제공한다. public abs.. Java/java 5년 전
final 필드에 붙이면 읽기만 가능. 필드명은 모두 대문자로 (상수이기 때문에) final static int ABCE = 10;// 선언과 동시에 선언 메소드에 붙이면 오버라이딩 금지. 변경할 수 없고, 그대로 사용해야함 final void a(){} 클래스에 붙이면 상속금지. has a 관계로만 사용가능. extends 불가 A aa = new A(); Java/java 5년 전
상속 has a : 특정 객체 내에서 다른 객체를 가지고 있는 것을 의미한다 is a : 특정 객체가 다른 객체에게 자신의 능력을 포함시켜주는 상속 관계를 의미한다. ( sub클래스는 super클래스의 기능을 가지고있다. ) 클래스 상속 : 부모가 보유하고 있는 재산 중 일부를 자식이 물려받는 것을 의미한다. 자바에서는 이런 클래스들간의 다중 상속을 지원하지 않으므로 객체의 명확성을 높였다. 다중상속을 하면 값이 모호해질 수 있다. 그래서 객체끼리의 다중상속 불가 (interface로 다중상속은 가능) (클래스 앞에 final 은 상속금지 ex, String클래스 : has a 방식으로만 사용 가능) 상속을 주기 위해 준비된 클래스 : Base Class, Super Class, Parent Class (자바.. Java/java 5년 전