일급 객체 first-class object)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를 가리킨다. 보통 함수에 인자로 넘기기, 수정하기, 변수에 대입하기와 같은 연산을 지원할 때 일급 객체라고 한다 즉 다음과 같은 조건을 만족해야 합니다, 변수나 데이타에 할당할 수 있어야 한다. 객체의 인자로 넘길 수 있어야 한다. 객체의 리턴값으로 리턴할 수 있어야 한다 자바 프로그밍 언어는 사용하는 메서드, 클래스는 전달할 수 없는 구조체로 일급 객체가 아니다, 이것을 해결하고자 자바 1.8에서 메서드 참조(Method Reference)를 사용해서 일급 객체로 사용합니다, 자바에서 메서드를 어떤 방법으로 전달할 수 있을까? 자바 1.8 이전은 다음과 같이 작성하였습니다.. public s..
Class 내부에 Class가 있는 Class 1. 종류 Class Member처럼 사용하는 InstanceMember Inner Class, Static Member Inner Class Method내부에서 한정적으로 사용하는 Local Inner Class 이름을 알 수 없는 객체로 한 번만 사용하고 버려지는 객체 ( Anonymous Class : 익명 ) Static Inner Interface 2. Instance Member Inner Class 객체 내부에 있는 클래스로 Instance Member의 특성을 가지고 있다. 모든 접근 지정자를 사용할 수 있으며 실제로는 Outer Class이다. ( 클래스$이너클래스 ) 2. Static Member Inner Class 객체 내부에 있는 클래..
포괄적인, 총칭의, 회사 이름이 붙지 않은, 일반 명칭으로 판매되는 사전적 의미로, 딱 하나를 정하지 않고 범용적이고 포괄적이라는 의미 Data type을 특정한 type하나로 정하지 않고 사용할 때마다 바뀔 수 있게 범용적이고 포괄적으로 지정한다 라는 의미 Object Class의 한계를 극복 호출되는 시점에 실제 Generic 타입을 지정 1. 왜 Generic가 만들어졌을까? List list = new ArrayList() 에서 List처럼 호출되는 시점에 실제 Generic 타입을 지정한다. 2. Generic Class Class or Interface로 정의할 수 있음 클래스 내부에서 사용하는 데이터의 타입(Type)을 클래스의 인스턴스를 생성할 때 결정하는 것. 기본 데이터 타입(int, ..
클래스 상속은 객체 지향 프로그램에서 가장 기본적인 문법 요소로 부모 클래스를 성질을 자식 클래스가 포함시키는 문법 요소로 객체(사물)의 공통 적인 성질(특성)을 모아서 클래스를 만들고 독립적인 성질을 각각 클래스로 만들면 이때 공통적인 성질을 부모 클래스라 하고 개별 클래스를 자식 클래스라 한다. 상속은 코드 중복 제거와 다형성을 위함이다. 중복되는 속성(상태)과 행동을 별도로 관리하여 중복 코드를 제거한다. - 이름, 나이, 몸무게, 키, 먹기, 잠자기 학생은 사람이다, 직장인은 사람이다. 직장인은 성인이다. 일반인도 성인이다.처럼 다양한 표현을 할 수 있는 것을 다양성이라 한다. 1. Extends ( Class 상속 ) class 자식클래스 extends 부모클래스 { …. } 다중 상속 -> 자..
1. Package package 패키지이름 비슷한 목적으로 생성된 클래스 파일을 모아 둔 폴더 - 물리적으로 하나의 디렉터리를 의미 하나의 패키지에 속한 클래스나 인터페이스 파일은 모두 해당 패키지 이름의 디렉터리에 포함 패키지는 다른 패키지를 포함할 수 있으며, 이때 디렉터리의 계층 구조는 점(.)으로 구분한다. import 패키지이름.클래스이름; import 패키지이름.*; 자바 컴파일러에 코드에서 사용할 클래스의 패키지에 대한 정보를 미리 제공하는 역할 - import 문을 사용하면 다른 패키지에 속한 클래스를 패키지 이름을 제외한 클래스 이름만으로 사용 선언 시 별표( * ) 의미는 하위 패키지의 모든 Package의 Class까지 포함해 주는 것이 아님 - 해당 폴더에 있는 Class에 대해서..
1. Field 인스턴스 변수 ( or 멤버 변수 ) : 클래스( Class )에 포함된 변수로 클래스 안에 있는 모든 곳에서 접근 가능하다 -> 클래스의 전역 변수 지역 변수 : 메서드( Method )에 포함된 변수로 해당 메소드에서만 유효하다. 1-1. Field 선언 private 자료형 변수이름 [ = 초기값 ] private int num; private int num = 20 ; // 선언과 초기화 동시 진행 1-2. 메모리 구조 인스턴스 변수는 객체 안에 저장 ( heap ) 지역 변수는 stack에 저장 1-3. 인스턴수 변수는 초기값 강제 설정 private int num; private int num = 20 ; num = 0 num01 = 20 1-4. 지역변수는 stack에 저장되..
열거형은 자바 1.5 버전부터 추가된 것으로 관련이 있는 상수들의 집합으로 enum사용 시 다음과 같은 장점이 있습니다. 코드가 단순해진다, 가독성이 좋아진다. 상수값의 타입 안전성이 보장된다. - 컴파일 시점에 체크, 인스턴스 생성과 상속 방지 1. 사용 방법 Class처럼 사용 : enum Class 내부에 enum 사용 : 내부 class처럼 enum의 생성자는 private 관련 Method| - valueOf(String) : String값을 enum에서 가져옴 - valueOf(Class String) : 전달된 문자열과 일치하는 해당 열거체의 상수를 반환 - values() : enum의 요소들을 순서대로 enum타입의 배열로 리턴 -> 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환..
제어문은 프로그램에서 프로그램의 순서를 변경하는 것입니다. 즉 순차적으로 하나씩 실행하던 것을 조건에 따라서 다른 것을 실행할 때 사용합니다. 제어문은 다음과 같은 종류가 있습니다. 선택 제어문 : if , switch 반복 제어문 : for, while, do.. while 제어 키워드 : break, continue 제어문 문장 기능 if • If • if – else • If – else if – else 주어진 조건에 따라서 실행문의 실행 여부 결정 switch • switch (위치변수) { case 값1: ….. case 값n: ….. default : ….. } 위치변수의 값에 따라서 특정위치(case)의 실행문 실행 for • for ( 초기값 ; 종료조건 ; 증감 ) 반복 횟수를 정해 놓..