본문 바로가기

java

(28)
#Reflection 리플렉션이란? ReflectionWhat? 객체를 통해 클래스의 정보를 분석해 내는 프로그래밍 기법을 말한다. 구체적인 클래스 타입을 알지 못해도, 컴파일된 바이트 코드를 통해 역으로 클래스의 정보를 알아내어 클래스를 사용할 수 있다는 것이다. 리플렉션 기법을 통해서 형을 모르는 상태에서 객체의 메서드를 호출할 수 있다. 동적 바인딩이 되지 않던 자바에서 리플렉션이라는 프로그래밍 기법을 통해 동적 바인딩을 제공하는 것이다. Why? Composition 과 함께 사용되어 다형성을 구현하기 위해 사용된다. 조합을 사용하여 교체할 수 있는 위임 클래스를 리플렉션을 통해 동적/정적으로 생성하고 교체하는 방식으로 사용된다. 프레임워크에서 유연성을 위해 자주 사용되는 방식이다. 자바의 모든 타입은 연관된 Class 객체를 갖고..
[JAVA] 14 - 1. Collection Framework(컬렉션 프레임워크) - List Chapter 14 - 1. Collection Framework - List데이터의 저장, 그리고 이와 관련 있는 알고리즘을 구조화 해 놓은 프레임워크이다.자료구조 알고리즘을 클래스로 구현해 놓은 것이다. 컨테이너 클래스라고도 한다. 모든 인터페이스가 제네릭으로 정의되어있다.컬렉션 프레임워크 분류자바의 컬렉션 프레임워크에서는 크게 3가지 타입이 존재한다고 인식하고 3개의 인터페이스를 정의하였다.List ArrayList, LinkedList, Stack etc....
[JAVA] 13. 열거형 Enum Chapter 13. Enum 열거형final로 지정한 상수가 이름이 중복되는 경우가 발생한다.열거형이란,자바의 열거형은 C언어의 열거형보다 더 향상된 것으로 열거형이 갖는 값뿐만 아니라 타입까지 관리한다. JAVA에서 상수는 어떻게 정의하는가?1. public static final 을 이용하여 123public static final FRUIT_APPLE = 1;public static final FRUIT_ORANGE = 2;public static final COMPANY_APPLE = 3;cs 2. interface를 이용한다.(public static final 을 생략할 수 있다.) 1234interface FRUIT { FRUIT.APPLE COMPANY.APPLE}cs(FRUIT.APPL..
[JAVA] 12. Generics (지네릭스) Chapter 12. Generics Java는 안전성을 가장 우선시한다.그런 점에서 지네릭스는 안전성을 높이기 위한 Java가 제공하는 수단 중 하나가 되겠다.사전적 정의로는 '포괄적인', '일반적인' 이란 뜻이다.클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법으로, 매개변수와 비슷하게 작동한다.매개변수가 어떠한 변수에 들어갈 값과 관련되어있는 것이라면 제네릭은 어떠한 변수의 데이터 타입과 관련되어있는 것이라고 볼 수 있다. Generics란,다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능을 말한다. 문 법 꺽쇠로 시작해서 꺽쇠로 끝나는 문자가 있다.12345class Person { public T info;}Person p1 = new Per..
[JAVA] 11 - 1. Object 클래스와 그 메소드들 Chapter 11 - 1. Object 클래스 .equals( ) 메소드 Java의 모든 클래스는 하나의 동일한 클래스를 상속받는다.이렇게 하면 최상위 클래스에 정의되어 있는 메소드를 사용할 수 있게 되는 장점이 존재한다. Object 클래스 모든 클래스의 조상인 Object 클래스 어떠한 클래스를 정의했는데 아무 클래스도 상속받지 않고 있다면 자동적으로 Object 클래스를 상속하고 있는 것이다. 모든 클래스들이 갖고 있는 기능들. 왜? Object 클래스에 있는 메소드들을 통해서 클래스의 기본적인 기능을 정의할 수 있기 때문이다. Object 클래스에 선언되어 있는 메소드는 객체를 처리하기 위한 메소드와 스레드를 위한 메소드로 나뉜다. 쓰레드를 위한 메소드들은 final로 선언이 되어 있어서 오버라..
[JAVA] 10. 예외처리(Exception Handling) Chapter 10. 예외처리 (Exception Handling)코드를 작성하는 과정에서 예기지 못한 수많은 에러들이 발생한다.컴파일 전에 알게 되는 에러도 있고,작성할 때는 아무 문제 없다가 실행시키고 나서야 발생하는 에러들이 있다.이것들을 제어할 수 있어야 좀 더 안전한 프로그램을 설계할 수 있게 된다. 에러 (Error) ? 예외 (Exception) ?컴파일 에러 - 컴파일 시에 발생하는 에러런타임 에러 - 실행 시에 발생하는 에러논리적 에러 - 실행은 되지만, 의도와 다르게 동작하는 에러 대부분의 컴파일 에러는 이클립스 같은 IDE들이 빨간줄 표시로 잡아준다.문제는 실행 시 발생하는 프로그램 오류다.자바에서는 이 Runtime 오류를 에러와 예외, 두 가지로 나누어 인식한다.에러(error)메..
#객체지향적 설계 원칙 - 이론을 통해 알아보는 객체지향 #객체지향적 설계 원칙 SOLID *SRP (Single Responsibility Principle) : 단일 책임 원칙 OCP (Open-Closed Principle) : 개방-폐쇄 원칙 LSP (Liskov Substitution Principle) : 리스코프 치환 원칙 ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 DIP (Dependency Inversion Principle) : 의존 역전 원칙 단일 책임 원칙 클래스는 단 한 개의 책임을 가져야 한다. 클래스를 변경하는 이유는 단 한개이어야 한다. 단일 책임 원칙을 지키지 않았을 때, 한 책임의 구현 변경에 의해 다른 책임과 관련된 코드가 변경될 가능성이 높다. 개방-폐쇄 원칙 확장에는 열려 ..
[JAVA] 9. 다형성 / 객체지향적 이해, 다형성과 클래스, 다형성과 인터페이스 Chapter 9. 다형성 (Polymorphism)다형성의 사전적 정의는 같은 종의 생물이지만 모습이나 특징이 고유한 특징이 다양한 성질을 의미한다.단어의 뜻부터 어려운 이 다형성이 객체지향개념의 중요한 특징 중 하나이다. 다형성여러 가지 형태를 가질 수 있는 능력을 의미하며,자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함을 구현하는데 사용한다.좀 더 구체적으로는 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것이다.코드를 통해 이해하는게 더 빠를 것 같다. class A { public String x() { return "x"; } } class B extends A // class A를 상속받고 있는 class B { public Strin..