클래스란?
객체를 생성하기 위한 템플릿 또는 설계도 역할
클래스는 객체의 상태를 나타내는 필드(변수)와 객체의 행동을 정의하는 메서드로 구성
객체란?
현실세계에 있는 사물이나, 동물의 고유의 속성을 가지는 물리적, 추상적인 모든 대상이다.
각 객체는 속성(Properties)과 행동(Methods)을 가진다. 이들은 각각 객체의 상태와 객체가 수행할 수 있는 작업을 나타냄
- 객체의 속성(Properties)
- 속성은 객체의 특성, 상태, 데이터를 의미합니다.
- 예를 들어, '자동차'라는 객체가 있다면, 이 객체의 속성은 색상, 브랜드, 모델, 연식 등이 될 수 있습니다.
- 객체의 행동(Methods)
- 행동은 객체가 수행할 수 있는 작업이나 기능을 의미합니다. '자동차' 객체의 경우, 주행하기(drive), 멈추기(stop),
가속하기(accelerate) 등의 행동을 가질 수 있습니다.
- 객체의 특징
- 캡슐화(Encapsulation): 객체는 자신의 데이터(속성)와 그 데이터를 조작하는 메서드를 하나의 단위로 묶어 관리합니다. 이를 통해 객체의 상세한 구현 내용을 숨기고(정보 은닉), 외부에서는 객체가 제공하는 메서드를 통해서만 상호작용할 수 있게 합니다.
- 독립성: 객체는 독립적으로 존재하며, 각 객체는 고유의 속성과 메서드를 가집니다. 객체 간에는 메시지를 통해 상호작용합니다.
인스턴스란?
- 클래스를 사용하여 힙 영역(Heap Area)에 새로운 인스턴스(객체)를 생성할 수 있다.
- 클래스 변수명 = new 클래스();
- Warrior warrior1 = new Warrior(); [그림2] 참고



함수(Function)?
하나의 기능을 수행하는 일련의 코드 묶음이다.
함수는 호출하여 사용하고 호출된 함수는 기능이 끝나면 실행의 제어가 반환된다.
자바에서 함수란 객체와 상관없이 독립적으로 기능을 수행하는 일련의 코드 묶음

[그림4]
Static 범위 안에는 새로운 Static을 만들 수 없다.
int , long, double 등 값을 계산하는 것은 return 값을 반환한다.

[그림 5]
Static 범위 안에는 새로운 Static을 만들 수 없다.
void 함수는 return 값을 반환하지 않는다. return은 거의 안쓴다.
void 함수에서 return; 은 함수종료를 의미한다.
main 함수에서 함수를 실행할 수 있다.
생성자란?
클래스의 인스턴스, 즉 객체를 생성할 때 호출되는 특별한 유형의 메서드
객체의 초기화를 담당
객체가 올바르게 사용될 수 있도록 필요한 값들을 설정하고, 필요한 초기화 코드를 실행
생성자 특징
1. 생성자의 이름은 클래스의 이름과 동일 2. 생성자는 반환 타입을 가지지 않는다. [ return , void 사용하지 않음]
3. 객체 생성 시 new 키워드와 함께 자동으로 호출
4. 생성자는 기본 생성자와 사용자 정의 생성자로 구분
기본 생성자 (default constructor)
1. 클래스에는 반드시 적어도 하나 이상의 생성자가 존재한다.
2. 클래스에 생성자를 구현하지 않아도 new 키워드와 함께 생성자를 호출할 수 있음
3. 클래스에 생성자가 하나도 없는 경우 컴파일러가 생성자 코드를 넣어 줌
publc User() { }
사용자 정의 생성자(Overloaded Constructor)
1. 객체 생성 시 특정 값으로 초기화 할 수 있다.
2. 사용자 정의 생성자를 선언하면 컴파일러는 기본 생성자를 제공하지 않는다.
3. 필요에 따라 여러 생성자를 만들어 줄 수 있다.
오버로딩 이란?
한 클래스 내에 같은 이름의 메서드의 개수가 여러 개 있는 경우

멤버변수란?
클래스의 객체의 속성을 의미한다.
메서드 함수란?
객체의 기능을 구현하기 위해 클래스 내부에서 구현되는 함수



'Java' 카테고리의 다른 글
| 2024.04.17 접근 제어 지시자 (0) | 2024.04.17 |
|---|---|
| 2024.04.16 객체지향 패러다임이란 (0) | 2024.04.16 |
| 2024.04.16 생성자(constructor) (0) | 2024.04.16 |
| 2024.04.16 인스턴스 문제 풀어보기 (0) | 2024.04.16 |
| 2024.04.15 RunTime Data Area (0) | 2024.04.15 |