목차
[클래스]
1. 객체(object)
(1) 객체란?
- 특성과 기능을 가지는 하나의 독립적인 개체
- 특성 : 객체가 가지는 데이터
- 기능 : 객체의 특성을 이용한 실행 방법
(2) 객체 모델링
- 객체의 특성과 기능을 분석하고 정리하는 작업 (예시 : 스마트폰)
- 특성 : 색상, 크기, 모델명, 전화번호
- 기능 : 전화 걸기, 사진 찍기, 앱 실행하기
(3) 클래스 정의
- 객체 모델링 후 특성과 기능을 정의하는 도구
- 특성은 변수로 정의
- 기능은 메소드로 정의 후 구현
class SmartPhone {
// 변수
double lcdSize;
String caseColor;
String cameraPixel;
String modelName;
String phoneNumber;
// 메소드
void MakeACall() { ... }
void TakingPictures() { ... }
void playApp() { ... }
}
(4) 객체 생성 후 사용
- 정의된 클래스를 new 연산자를 이용하여 메모리에 할당
- 메모리에 할당된 클래스 : 객체, 인스턴스(instance), 클래스의 변수
- 객체 사용 : 점(.)을 이용하여 클래스에 정의된 변수를 사용하거나 메소드를 호출
SmartPhone galaxy = new SmartPhone();
SmartPhone iPhone = new SmartPhone();
// galaxy, iPhone == SmartPhone 클래스의 객체 (참조형 변수)
// 변수
galaxy.modelName = "galaxy s21+";
iPhone.modelName = "iPhone 11";
// 메소드
galaxy.turnOff();
galaxy.turnOn();
iPhone.turnOff();
iPhone.turnOn();
2. 객체지향 프로그램 구현
(1) 클래스 이름 정의
- 변수명 규칙과 동일
- 관행적으로 첫 문자는 대문자로 한다.
(2) 멤버변수와 메소드
- 멤버변수 (필드) : 클래스 내부에 정의된 변수
- 멤버메소드 (메소드) : 클래스 내부에 정의된 메소드
- 멤버변수와 메소드는 관행적으로 소문자로 시작한다.
(3) 메소드 구현하기
- 메소드 : 반복되어 실행될 명령문들을 모아놓은 모듈
(4) 반환값 규칙
- 반환값 (O) : return문에서 반환하는 값의 자료형과 일치해야 한다.
- 반환값 (X) : void로 정의하고, return문을 생략할 수 있다.
(5) 입력 매개 변수
- 입력 매개 변수를 지정하지 않아도 된다.
- 입력 매개 변수의 개수는 원하는 만큼 정의하여 사용할 수 있다.
// 입력 매개변수 == (int a, int b)
int running (int a, int b)
{
int c = a * b;
...
return c;
}
// 입력 매개변수가 없는 경우 == ()
int running()
{
int c = a * b;
...
return c;
}
(6) main() 메소드
- 프로그램의 시작 메소드
- 클래스 내부에 정의되지만 멤버 메소드는 아니다.
class SmartPhone {
public static void main (String[] args) {
}
}
(7) 객체 생성하기
- main() 메소드에서 생산한다.
class SmartPhone {
public static void main (String[] args) {
// 객체 생성
SmartPhone g = new SmartPhone();
SmartPhone i = new SmartPhone();
}
}
(8) 멤버 변수와 메소드 사용하기
- 멤버 변수는 객체 생성 시 자동 초기화 됨
- 수치관련 변수는 0, 문자 관련 변수는 null
- 멤버 변수와 메소드는 객체 생성 후 사용
class SmartPhone {
public static void main (String[] args) {
SmartPhone g = new SmartPhone();
SmartPhone i = new SmartPhone();
g.modelName = "galaxy s21+";
i.modelName = "iPhone 11";
g.turnOn();
g.turnOff();
i.turnOn();
i.turnOff();
}
}
3. 생성자 메소드
(1) 생성자 메소드란?
- 객체를 생성 시 호출되는 메소드
- 멤버 변수의 초기화 작업
(2) 메소드 생성자 규칙
- 클래스 이름과 동일해야 한다.
- public 키워드 지정해줘도 되나 필수는 아니다.
- 반환값 자료형은 지정하지 않으며 반환값이 없다는 의미의 void도 지정하지 않는다.
(3) 디폴트 생성자 메소드
- 매개변수가 없는 생성자 메소드
(4) 사용자 정의 생성자 메소드
- 매개변수가 있는 생성자 메소드
(5) 생성자 메소드 정의 시 유의할 점
- 클래스 정의 시 디폴트 생성자 메소드를 항상 정의하면 문제 없음.