1. 클래스와 객체의 정의와 용도
- 객체
- 정의 : 물리적(눈에 보이거나), 추상적(눈에 안보이거나)인 것 중에서 자신의 속성을 가지고 있으며 식별 가능한 것
- 용도 : 클래스로 객체를 생성하여 사용
- 클래스
- 정의 : 객체의 속성과 기능을 코드로 구현한 것, '클래스를 정의한다' - 객체를 클래스로 구현하는 것, 객체를 만들기 위한 설계도
- 용도 : 객체를 생성하기 위한 필드와 메소드가 정의되어 있으며 객체를 생성할 때 사용
2. 객체와 인스턴스
- 객체 : 클래스의 인스턴스
- 인스턴스
- 클래스로부터 만들어진 객체를 해당 클래스의 인스턴스라고 함, 하나의 클래스로부터 여러 개의 인스턴스를 만들 수 있음
- 인스턴스화 : 클래스로부터 객체를 만드는 과정 ( ClassName var = new ClassName(); < 인스턴스화, 메모리에 객체를 저장)
- 정리
- 객체는 구현할 모든 것
- 클래스는 객체를 구현하기 위한 설계도
- 객체는 클래스의 인스턴스
- 클래스로 객체를 만드는 과정 '인스턴스화'
3. 객체의 구성요소 - 속성과 기능
- 속성과 기능(멤버)
- 객체에는 속성과 기능이 존재
- 사람이라는 객체를 속성(나이, 이름, 성별), 기능(뛰다, 말하다. 앉다)으로 구성
- 이런 구성요소를 통틀어서 멤버라고 함
- 속성(필드, 변수)
public class Person {
String name;
}
- 기능(메소드, 함수)
public class Person {
String name;
public void sayMyName() {
System.out.println(name);
}
}
4. 인스턴스의 생성과 사용
public class Person {
String name; <- 변수
public void sayMyName() {
System.out.println(name);
}
}
Person p1 = new Person();
p1.name = '준승';
p1.sayMyName();
5. 객체 배열
- 객체를 참조하는 배열로 기본타입(byte, int 등) 배열은 각 항목에 직접 값을 가지고 있지만, 참조 타입(클래스, 인터페이스) 배열은 각 항목에 객체의 번지(주소)를 가지고 있음
6. 클래스의 또 다른 정의
- 사용자 정의 타입
- 정해져 있는 기본타입(byte, int 등) 외로 사용자가 원하는 타입을 만들어 사용 가능 EX) 영어 월 약자(Jan, Feb 등)만 담는 타입을 만들어서 클래스로 사용