참고 도서
Do it 자바 완전정복
객체
객체는 사용할 수 있는 실체를 의미하며, 클래스는 객체를 만들기 위한 설계도이다.
1개의 정의된 클래스를 이용해 여러 개의 객체를 만들 수 있다.클래스는 왜 사용할까?
클래스 : 다양한 자료형의 데이터를 묶어서 관리할 수 있고 데이터를 처리하는
다양한 기능까지 함께 관리하는 문법요소절차지향 vs 객체지향
절차지향 : 순서에 맞춰 단계적으로 실행하도록 명령어를 나열하는 방식
객체지향 : 프로그램을 객체 단위로 수행하는 방식자바에서 제공하는 객체지향 문법 요소
클래스, 인터페이스, 일반클래스, 추상클래스
클래스 구조
클래스는 class 키워드와 함께 클래스명을 표기한다. 클래스명은 대문자로 시작하는 것이 관례다.
class [클래스명] {
...
}
package test.day1; // 패키지
import java.util.*; // 임포트
public class classEx {
int age = 10; // 필드
double weight = 50.5; // 필드
void message() { // 메서드
}
classEx(){ // 생성자
}
}
클래스 외부 구성요소
- 패키지 :
프로젝트를 생성할 때 패키지를 지정했다면 이 구성요소에 패키지명이 포함되며,
반드시 주석을 제외하고 첫 번째 줄에 위치해야 한다.
- 임포트
다른 패키지의 클래스를 사용하고자 할 때 포함된다.
- 외부 클래스 :
클래스의 외부에 또 다른 클래스가 또 포함될 수 있다, 즉 1개의 java파일에
여러 개의 클래스가 포함될 수 있다는 것이다. 단 외부 클래스에는 public 키워드를 붙힐 수 없다
클래스 내부 구성요소
- 필드 : 클래스의 특징(속성)을 나타내는 변수다.
- 메서드 : 클래스가 지니고 있는 기능(함수)을 나타낸다.
- 생성자 : 생성자는 클래스의 객체를 생성하는 역할을 담당한다.
- 이너 클래스 : 클래스의 내부에 포함된 클래스.
클래스와 객체 구분
클래스를 붕어빵 기계에 비유 한다면 객체는 기계로 찍어 낸 붕어빵에 비유할 수 있다.
우리는 클래스를 직접 사용할 수 없다. 클래스의 모든 특징(필드)과 기능(메서드)을
사용하려면 클래스를 이용해 객체를 만든 후 그 객체 속의 필드와 메서드 등을 사용해야 한다.
클래스에서 객체를 만드는 과정은 생성자가 수행한다
클래스의 생성자로 객체를 만드는 과정을 '인스턴스화'라고 하고, 인스턴스화로 만들어진 객체를 '인스턴스'라고 한다.
객체 생성하기
객체는 new 키워드로 생성할 수 있다.
[클래스명][참조 변수명] = new 생성자();
A a = new A();
참조 변수 :
실제 데이터를 저장하는 것이 아니라 실제 데이터가 있는 힙 메모리의 위칫값을
가리키는 변수
package test.day1; // 패키지
import java.util.*; // 임포트
class Test{
int t = 3;
void print() {
System.out.println("객체 생성 및 활용");
}
}
public class classEx {
public static void main(String[] args) {
// 클래스로 객체 생성
Test test = new Test();
// 클래스 멤버 활용
// @필드 활용
test.t = 5;
System.out.println(test.t);
// @메서드 활용
test.print();
}
}