
포괄적인, 총칭의, 회사 이름이 붙지 않은, 일반 명칭으로 판매되는 사전적 의미로, 딱 하나를 정하지 않고 범용적이고 포괄적이라는 의미 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타입의 배열로 리턴 -> 해당 열거체의 모든 상수를 저장한 배열을 생성하여 반환..

1. Class Class : -분류 또는 종류라고 하는 동종의 모임 - 일반 Class, 추상 Class Instance : 구체적인 것 ( Class의 생성자로 객체를 만드는 과정 : Instance 화 ) 1-1. Class 구조 외부 구성 요소 - package : 자바 Class 를 모아 놓은 디렉토리 - import : 다른 package를 사용 할 때 포함 해야 함 - class : external class로 public를 키워드를 붙일 수 있다. 내부 구성 요소 - field : Class의 속성, Class내부에서 사용 하는 변수 - constructor : 객체를 생성하는 역할 담당. 생략 하면 기본 생성자 자동 생김 - method : Class가 가지고 있는 기능(함수) - inn..

자바 언어는 객체 지향 언어로 자바의 Class를 학습하기 전에 객체 지향 프로그램에 대해서 알아보고자 합니다. " 객체 지향 프로그램(OOP)모델을 기반으로 하는 고급 프로그램 언어 " 1. 객체 지향 프로그램 언어 ( Object-Oriented Programming Language ) 모든 데이터(객체)의 상태(Status)와 행동(Behavior)을 구체화하는 프로그래밍을 객체 지향 프로그래밍으로 논리적 클래스, 객체, 메서드의 관계 및 기타 프로세스를 설계 하는 하는 것으로 프로그래밍 구문이 하나 이상의 객체를 기반으로 데데이터 추상화, 상속, 갭슐화 하여 클래스를 생성 하고 관련 객체를 포함하여 개발 하는 것을 의미합니다. 1-1. 왜 Class가 만들어 졌을까 ? 데이터의 처리는 Data 관..

ES6이전에는 var가 변수를 선언하는 문법이었습니다. ES6 이후부터는 let, const도 변수 선언 시 사용할 수 있습니다. 어떻게 사용하면 될까요? 이것은 소스의 가독성과 변수의 사용 범위에 대한 문제입니다. 프로그램에서 변수 선언 후 데이터 저장하고 변경되고 다른 기능에 의해서 참조되는 등 여러 모습으로 사용되다가 어느 시점에서는 사용하지 않습니다. 즉 변수는 생명주기(Life Cycle)와 변수가 적용되는 범위(Scope)가 있습니다. 또한 한번 작성된 프로그램은 요구사항이 추가되고, 변경이 되어 기능이 추가되거나, 축소되거나, 삭제되는 등 많은 변경을 하게 되는데 이때 변수 선언 방법에 따라서 수정이 쉬워지거나 어려워 집니다. 프로그램은 처음 개발한 개발자가 수정을 하지 않고 다른 개발자가 ..