👀 자바의 데이터 타입
cf) 자바에서 데이터를 다루는 최소단위 : 1 byte (8 bit)
기본형(privitive type)
- 실제 값(data) 저장
- 참조형 변수 간의 연산을 할 수 없으므로 실제 연산에 사용되는 것은 모두 기본형 변수임
- 논리형 - boolean (default : false, 1 byte)
- 문자형 - char (2 byte 양수 유니코드 정수)
- 정수형 - byte, short (2), int (4), long (8)
- 실수형 - float(4), double(8)
참조형(reference type)
- 어떤 값이 저장되어 있는 주소(memory address)를 값으로 갖음
- 8개의 기본형을 제외한 나머지 타입
👀 클래스(Class)와 객체(Object)
클래스
- 객체를 정의한 '설계도(blueprint)' 또는 '틀(frame)’
- 객체를 생성하는데 사용
객체
- 클래스에 정의되고 설계된 내용 그대로 생성됨
- 속성(property) : member variable, attribute, field, state
- 기능(function) : method, function, behavior
👀 생성자(Constructor)
- 인스턴스가 생성될 때 호출되는 '인스턴스 초기화 메서드'
- 클래스 내에 선언되며, 리턴값이 없음
- 생성자의 이름과 클래스 이름이 동일해야 함
- 인스턴스는 생성자가 생성하는 것이 아니라 연산자 new가 생성
- 인스턴스 변수들을 초기화하는 데 사용되는 특수한 메서드
this()
: 생성자
- 반드시 생성자의 내부에서만 사용할 수 있음
- 반드시 생성자의 첫 줄에 위치해야 함
this
: 참조변수
- 인스턴스 자신을 가리키는 참조변수로, 인스턴스의 주소가 저장되어 있음
- 모든 인스턴스 메서드에 지역변수로 숨겨진 채로 존재
👀 static
키워드
- '클래스의' 또는 '공통적인'의 의미를 가짐
- 하나의 클래스로부터 생성되었더라도 각기 다른 값을 갖는 인스턴스 변수와 달리 클래스 변수(
static
멤버 변수)는 하나의 변수를 모든 인스턴스가 공유하기 때문에, 인스턴스에 관계없이 동일한 값을 가짐
- 인스턴스를 생성하지 않고도 호출 가능
👀 내부 클래스(Inner Class)
장점
- 내부 클래스에서 외부 클래스의 멤버들을 쉽게 접근할 수 있음
- 코드의 복잡성을 줄일 수 있음 (캡슐화 encapsulation)
멤버 내부 클래스
- 인스턴스 내부 클래스와 정적 내부클래스
- 외부 클래스의 멤버변수 선언위치에 선언
지역 내부 클래스