Java 파트6-1. 클래스
in Java
1. 시작하기 전에
객체
- 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지며 식별 가능한것
- 속성(필드) + 동작(메소드)로 구성
2. 객체와 객체 간의 상호작용
객체는 단독으로 사용될 수도 있지만, 객체 간의 상호작용이 일어날 수도 있다. 예를 들면, A객체가 B의 객체의 메소드를 이용하여 B의 기능을 이용하는 것이다.
- 메소드를 통해 객체들이 상호작용
- 메소드 호출 : 객체가 다른 객체의 기능을 이용하는 것
int result = Calculator.add(10,20);
사람이라는 객체가 Calculator라는 객체를 어떻게 이용하느냐? 사람은 Calculator가 가지고 있는 add라는 메소드를 알고 있다. 사람은 Calculator에게 Calulator가 가지고 있는 add메소드를 실행해달라고 호출한다.
3. 객체 간의 관계
- 집합 관계 : 부품과 완섬품의 관계
- 사용 관계 : 객체 간의 상호작용
- 상속 관계 : 상위(부모) 객체를 기반으로 하위(자식) 객체를 생성
- 객체 지향 프로그래밍 : 집합/사용 관계에 있는 객체를 하나씩 설계한 후 조립하여 프로그램 개발
4. 클래스와 객체
클래스
- 자바의 설계도
- 인스턴스(instance = 객체) : 클래스로부터 만들어진 객체
- 객체 지향 프로그래밍 단계
- 클래스 설계 -> 설계된 클래스로 사용할 객체 생성 -> 객체 이용
클래스 선언
객체 구상 후 클래스 이름을 결정
- 식별자 작성 규칙을 따름
- 하나 이상의 문자로 이루어질 것
- 첫 글자에는 숫자 사용 불가
- $ _ 외의 특수 문자 사용 불가
- 자바 키워드는 사용 불가
클래스 이름.java로 소스파일 생성
public class 클래스이름{
}
클래스로부터 객체 생성
- new 클래스();
- new 연산자로 메모리 힙 영역에 객체 생성
- 객체 생성 후 객체 번지가 리턴된다. 클래스 변수에 저장하여 변수를 통해 객체 사용 가능
방법 1
클래스 변수;
변수 = new 클래스();
방법 2
클래스 변수 = new 클래스();
클래스 변수는 스택 영역에 생성되고 new에 의해서 생성된 객체는 힙 영역에 생성된다. 힙 영역에 생성된 객체의 번지가 클래스 변수의 값으로 대입되어 참조하게 된다.
클래스의 두 용도
- 라이브러리(API : Application Program Interface) 클래스 : 객체 생성 및 메소드 제공 역할
- 실행 클래스 : main 메소드 제공 역할
클래스 멤버
5. 정리하기
- 클래스 : 객체를 만들기 위한 설계도
- 관례적으로 첫 글자를 대문자로 사용하고, 여러 단어의 경우 단어의 앞글자마다 대문자 사용
- 객체 : 클래스로부터 생성되며 new 클래스로 생성
- new 연산자 : 객체 생성 연산자이며 생성자 호출하고 객체 생성 번지를 리턴
- 클래스 변수 : 클래스로 선언한 변수이며 해당 클래스의 객체 번지가 저장됨
- 인스턴스 : 어떤 클래스를 기준으로 만들어진 객체 -> 해당 클래스의 인스턴스
- 클래스 멤버 : 클래스에 선언되는 멤버로 필드, 생성자, 메소드가 있음