본문 바로가기

728x90
반응형

JAVA/개념

(22)
자바(JAVA) : 제네릭스<Generics> 제네릭스(Generics) 제네릭스는 '매개변수화된 자료형'이다. 제네릭스는 클래스, 인터페이스 또는 메소드에 적용될 수 있다. 제네릭 메소드에 대해서 얘기해본다. 메소드에 인수를 넘길 때는 반드시 해당하는 매개변수의 자료형과 일치되는 자료형을 갖는 인수를 넘겨야 한다. 즉, 정수 매개변수에는 정수 인수를넣어야 한다. void sort(Integer[] x){ } void sort(Double[] x){ } 위의 두 sort 메소드는 정렬하려는 자료형만 다를 뿐 메소드의 내용이 같다. 이런 경우 자료형 자체를 매개변수와 같이 만들 수가 있다. void sort(T[] x){ } T는 어떤 객체도 올 수 있다는 의미이다. void set( Integer x ) { } 매개변수 x 에는 Integer 객체를..
자바(JAVA) int형 Integer형 1. Primitive 자료형 - Wrapper 클래스 관계 int primitive 자료형 (long, float, double ...) 산술 연산이 가능하다. null로 초기화 할 수 없다. Integer Wrapper 클래스 (객체) Unboxing을 하지 않으면 산술 연산이 불가능 하지만, null 값을 처리할 수 있다. null 값 처리가 용이하기 때문에 SQL과 연동할 경우 처리가 용이하다. DB에서 자료형이 정수형이지만 null 값이 필요한 경우 VO에서 Integer를 사용할 수 있음. 2. int와 Integer간의 변환 - Boxing과 Unboxing이라고 한다. Boxing Primitive 자료형 -> Wrapper 클래스 Unboxing Wrapper 클래스 -> Primitiv..
자바(JAVA) - 클래스, 객체, 인스턴스의 개념 맨날 까먹는다 외워질 때까지 다시 쓴다. 클래스, 객체, 인스턴스의 개념 클래스(Class) 란 객체를 만들어 내기 위한 설계도 혹은 틀 연관되어 있는 변수와 메서드의 집합 객체(Object) 란 소프트웨어 세계에 구현할 대상 클래스에 선언된 모양 그대로 생성된 실체 특징 ‘클래스의 인스턴스(instance)’ 라고도 부른다. 객체는 모든 인스턴스를 대표하는 포괄적인 의미를 갖는다. oop의 관점에서 클래스의 타입으로 선언되었을 때 ‘객체’라고 부른다. 인스턴스(Instance) 란 설계도를 바탕으로 소프트웨어 세계에 구현된 구체적인 실체 즉, 객체를 소프트웨어에 실체화 하면 그것을 ‘인스턴스’라고 부른다. 실체화된 인스턴스는 메모리에 할당된다. 특징 인스턴스는 객체에 포함된다고 볼 수 있다. oop의 ..
자바(JAVA) - 예외 처리(Exception Handling) 예외 처리(Exception Handling) 자바에서 예외(exception)란 사용자의 잘못된 조작이나 개발자의 코딩 실수로 인해 발생하는 프로그램 오류를 말합니다. 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 동일하나, 예외는 예외 처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있습니다. 자바의 예외에는 일반 예외와 실행 예외가 있고, 각각 Checked Exception과Unchecked Exception으로 부를 수 있습니다. 전자인 일반 예외, 즉 Checked Exception은 개발자가 반드시 예외 처리를 직접 진행해야 합니다. 요약 - 예외란 error에 일종이며, 발생시 시스템 및 프로그램을 불능상태를 야기함 하지만 이를 막기 위해 예외 처리를 ..
자바(JAVA): 인터페이스(interface) 1. 인터페이스(interface) 역할 인터페이스는 어떤 역할을 할까요? 인터페이스는 객체를 어떻게 구성해야 하는지 정리한 설계도입니다. 인터페이스는 객체의 교환성(또는 다형성)을 높여줍니다. 인터페이스 변수에 인터페이스가 구현된 서로 다른 구현 객체를 할당해서 사용이 가능합니다. 구현 객체를 직접 몰라도 인터페이스 메서드만 알아도 객체 호출이 가능하게 합니다. 객체가 인터페이스를 사용하면, 인터페이스 메서드를 반드시 구현해야 하는 제약을 합니다. 위 특징을 이용해서 얻고자 하는 인터페이스(interface) 역할은 다음과 같습니다. 인터페이스의 역할 "interface를 이용하여, 개발 코드를 직접 수정하지 않고도, 사용하고 있는 객체만 변경할 수 있도록 하기 위함입니다." 2. 인터페이스(inter..
자바(JAVA) : 패키지(package), 임포트(Import), 클래스패스(ClassPath) 패키지(package)란? 자바에서 패키지(package)란 클래스와 인터페이스의 집합을 의미한다 이렇게 서로 관련이 있는 클래스나 인터페이스를 함께 묶음으로써 파일을 효율적으로 관리할 수 있게 된다. 또한, 협업 시 서로 작업한 클래스 사이에서 발생할 수 있는 이름 충돌 문제까지도 패키지를 이용하면 피할 수 있다. 자바에서 패키지(package)는 물리적으로 하나의 디렉터리를 의미한다. 따라서 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함되어 있다. 이러한 패키지는 다른 패키지를 포함할 수 있으며, 이때 디렉터리의 계층 구조는 점(.)으로 구분된다. 즉, 패키지는 비슷한 성격의 자바 클래스들을 모아 놓은 자바의 디렉토리이다. 패키지 사용 자바 소스 파일에서 이..
자바(JAVA) : 추상 클래스, 메소드, 인터페이스, final, 오브젝트 추상 클래스(Abstract Class) //추상클래스 선언방법 abstract class 클래스이름{ } 추상 클래스는 클래스를 만들기 위한 일종의 설계도로 인스턴스를 생성할 수 없는 클래스이다. 이를 사용하기 위해서는 반드시 자식 클래스에서 상속을 받아 클래스를 모두 구현해야만 한다. 이런 추상클래스는 반드시 하나 이상의 추상 메서드를 포함하고 있으며, 생성자와 멤버변수, 일반메서드 모두를 가질 수 있다. ​ 1) 자체 인스턴스 생성 불가능 2) 생성자와 멤버변수, 일반 메서드 모두를 가질 수 있다. 3) 하나 이상의 추상 메서드를 포함한다. 추상 메서드(Abstract Method) abstract 리턴타입 메서드이름(); 추상클래스는 메서드의 선언부만 작성하고 구현부는 미완성인 채로 남겨두는 메소..
자바(JAVA) : this, this(), super, super() this 키워드 클래스 생성에 흔히 많이 사용되는 키워드 중 하나로 '객체, 자기 자신'을 나타내는 명령어 입니다. ​ 사용은 총 3가지 형태로 사용되며, 대부분 호출한 객체를 명확히 하기위해 사용된다. ​ * 클래스의 속성과 매개변수의 이름이 같을 때 public Class Test{ int a; public void Test(int a){ this.a = a; } } 위 소스에서는 생성자에서 클래스 속성인 a를 매개변수 a로 초기화해주고 있다. 근데 만약 이를 a = a로 나타내면 어떻게 될까? ​ 답은 '초기화되지 않는다' 입니다. 만약 이처럼 this를 사용하지 않을 경우, a는 스코프에 위해서 [매개변수a = 매개변수a] 라는 식을 가지게 되고 결과적으로 객체의 값 자체는 초기화 되지 않게 됩니..

728x90
반응형