CSE(58)
-
04. Queue
* 특징 : 데이터를 일시적으로 쌓아 놓은 자료구조 선입선출(FIFO, First In First Out) * java로 간단하게 구현한 모습 public class Queue { private int front; private int num; private int rear; private int max; private T[] que; public Queue(int n){ front = num = rear = 0; max = n; try{ que = (T[])(new Object[max]); }catch(OutOfMemoryError e){ max = 0; } } public T enque(T x) throws OverflowQueueException{ if(num>=max){ throw new Over..
2020.02.02 -
03. Stack
* 특징 : 데이터를 일시적으로 저장하기 위해 사용하는 자료구조 후입선출(LIFO, Last In First Out) * java로 간단하게 구현한 모습 & 메소드 설명 import java.lang.reflect.Array; import java.util.Arrays; public class Stack { private int ptr; private int max; private T [] stk; public Stack(int capacity){ //생성자 ptr = 0; max = capacity; try{ this.stk = (T[])new Object[max]; }catch (OutOfMemoryError e){ max = 0; } } public T push(T x) throws Overflow..
2020.01.21 -
06. Exception
* Exception(일반 예외) : 컴파일러 체크 예외 자바 소스를 컴파일하는 과정에서 예외 처리 코드가 필요하지 않음 일반 예외 클래스 : Exception을 상속받지만 Runtime Exception을 상속받지 않는 클래스 * Runtime Exception(실행 예외) : 컴파일하는 과정에서 예외 처리 코드를 검사하지 않는 예외 개발자의 경헝메 의해서 예외 처리 코드를 삽입해야 함 실행 예외 클래스 : Exception, Runtime Exception을 상속받는 클래스 NullPointerException : 객체 참조가 없는 상태, null값을 갖는 참조 변수로 객체 접근 연산자인 도트(.)를 사용했을 때 발생 ArrayIndexOutOfBoundsException : 배열에서 인덱스 범위를 ..
2020.01.20 -
05. Anonymous Inner Class
* 익명 객체(Anonymous Inner Class) : 이름이 없는 객체를 말함 단독으로 생성할 수 없고 클래스를 상속 or 인터페이스를 구현해야만 생성할 수 있음 =>한 번 쓰고 버릴 것. method override 후, 바로 도트로 사용까지 함 => 주로 interface나 abstract class에서 사용됨 * 익명 자식 객체 생성 : 클래스 상속 시 class Parent{ void method(){...} } public class AnonymousExample{ Parent parent = new Parent(){//익명 자식 객체 생성 int childField;//필드 => 외부에서 접근 불가능 void childMethod(){...}//메소드 => 외부에서 접근 불가능 @Over..
2020.01.19 -
04. Nested Class, Nested Interface
* 중첩 클래스(Nested Class) : 클래스 내부에 선언한 클래스 => 코드의 복잡성을 줄일 수 있음 => But, 코드가 장황해질 수 있고, 가독성이 떨어질 수 있음 * 인스턴스 멤버 클래스 : 인스턴스 필드와 메소드만 선언 가능 정적 필드와 메소드는 선언 불가능 바깥 클래스 외부에서 인스턴스 멤버 클래스의 객체를 생성하기 위해서는 먼저 바깥 클래스 객체를 생성하고 인스턴스 멤버 클래스의 객체를 생성해야 함 + 인스턴스 멤버 클래스의 안에서는 바깥 클래스의 모든 필드와 모든 메소드에 접근 가능 class Out{ class In{//인스턴스 멤버 클래스 In(){...}//생성자 int field;//인스턴스 필드 void method(){...}//인스턴스 메소드 } } public class..
2020.01.19 -
03. Annotation
* Metadata(메타데이터) : 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일 하고 처리할지 알려줌 * Annotation(어노테이션) : 메타데이터라고 볼 수 있음 public @interface AnnotationName{ //어노테이션 정의 //public @interface 이름 String elementName1();//타입 elementName() int elementName2() default 5;//타입 elementName() default 값 //기본 element 선언 } * 어노테이션 적용 대상 ElementType 열거 상수 적용 대상 TYPE 클래스, 인터페이스, 열거 타입 ANNOTATION_TYPE 어노테이션 FIELD 필드 CONSTRUCTOR 생성자 METHOD 메..
2020.01.13