6. 클래스
6.1 객체 지향 프로그래밍
부품에 해당하는 객체를 먼저 만들고, 이 객체들을 하나씩 조립해서 완성된 프로그램을 만드는 기법
객체란
- 물리적으로 존재하거나 개념적인 것 중에서 다른 것과 식별 가능한 것
- 속성(필드)와 동작(메소드)로 구성
- 객체 모델링: 현실 세계의 객체를 소프트웨어 객체로 설계하는 것
객체의 상호작용
객체들은 다른 객체와 서로 상호작용하면서 동작한다. 객체들 사이의 상호작용 수단은 메소드다.
객체 간의 관계
- 집합 관계: 완성품과 부품의 관계
- 사용 관계: 다른 객체의 필드를 읽고 변경하거나 메소드를 호출하는 관계
- 상속 관계: 부모와 자식 관계
객체 지향 프로그래밍의 특징
- 캡슐화
- 데이터 은닉의 목적, 응집도
- 접근 제어자를 사용
- 상속(=상속 + 추상화)
- 부모 객체는 자기가 가지고 있는 필드와 메서드를 자식 객체에게 물려주어 자식 객체가 사용할 수 있도록 한다.
- 코드 재사용성을 높여주고 유지보수 시간을 최소화 시킨다.
- 다형성
- 사용 상법은 동일하지만 실행 결과가 다양하게 나오는 성질
- 자동 타입 변환과 재정의 기술이 필요하며 이 기술들은 상속과 인터페이스 구현을 통해 얻어진다.
6.2 객체와 클래스
- 객체지향 프로그래밍에서도 객체를 생성하려면 설계도에 해당하는 클래스가 필요
- 인스턴스: 클래스로 부터 생성된 객체
- 인스턴스화: 클래스로부터 객체를 만드는 과정
6.3 클래스 선언
- public -> 공개 클래스
- 클래스명은 캐멀스타일, 숫자를 포함O, 첫문자 숫자X, $, _ 포함가능
- 하나의 소스 파일에 복수 개의 클래스 선언을 할 수 있다.
- 소스 파일을 컴파일 하면 클래스 선언 수 만큼 바이트코드(.class)가 생긴다.
- 소스 파일명과 동일한 클래스만 공개 클래스(public class)로 선언할 수 있다.
- 그러므로 소스 파일 하나당 클래스 하나를 선언하는 것이 좋다.
6.4 객체 생성과 클래스 변수
- new 연산자는 객체를 생성시킨 후 객체의 주소를 리턴
6.5 클래스의 구성 멤버
public class Class {
// 필드 선언
int fieldName;
// 생성자 선언
ClassName() {...}
// 메서드 선언
int methodName() {...}
}
- 필드
- 생성자
- new 연산자로 객체ㅡㄹ 생성할 때 객체의 초기화 역할
- 선언 형태는 메서드와 비슷하지만, 리턴타입이 없고 클래스 이름과 동일
- 메소드
Leave a comment