The Debugging Chronicles : "코드의 미학"
Mentor JAVA - section07. 클래스 본문
객체 지향 프로그래밍
- 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍 하는 것을 객체 지향 프로그래밍이라고 한다.
- 객체는 일반적으로 상태를 표현할 수 있고 우리가 행동으로 실행할 수 있는 모든 것을 말한다.
객체와 클래스
- 클래스
· java 프로그램의 기본단위로, 이 클래스를 기반으로 객체를 생성한다.
· 하나의 클래스로 여러 개의 객체를 생헝할 수 있다. (1:n)
· 클래스명은 기본적으로 대문자로 작성하며, 변수명 규칙과 동일한 규칙이 적용된다.
클래스 선언
접근 제한자 class 클래스명 {
코드
}
클래스 용도
1. 실행용 : 프로그램 전체에서 단 하나의 클래스로, main() 메소드를 가지고 있어 프로그램의 실행을 전적으로 맡고 있다. (1개)
다른 클래스에서는 main을 사용하지 않으며, public 접근자를 가지고 소스 파일명과 똑같은 이름을 가진다.
2. 라이브러리용 : 다른 클래스에서 이용할 목적으로 선언되는 클래스이다. (여러개 가능)
※ 유지 보수와 모듈화를 고려하여 별도로 분리하여 작성하는 것이 좋다.
클래스 객체 선언(사용)
클래스명 객체명 = new 클래스명();
- 객체를 생성하는 키워드로 'new'를 사용한다.
클래스의 구성
- 클래스는 필드, 생성자, 메서드 3가지 요소로 이루어져 있으며, 필요에 따라 생략하거나 2개 이상 작성할 수 있다.
필드(field)
- 객체가 가져야할 데이터 상태를 저장하는 변수를 말한다.
- 클래스 내에 정의되고 객체가 생성될 때 그 객체와 함께 존재하는 데이터이다.
- 클래스는 필드 값들을 따로 초기화하지 않아도 자동으로 초기화해준다.
- 멤버 번수라고도 부른다.
필드 사용
객체명.필드명;
생성자(constructor)
- 객체를 생성할 때 반드시 호출해야 하는 메서드이며, 필드를 초기화하는 역활을 한다.
- 생성자 메서드는 클래스명과 이름이 같으며, 직접 선언하지 않아도 기본 생성자가 자동으로 생성된다.
- 생성자는 필드를 초기화하는 역활이기 때문에 특정 변수를 강제하는 모습으로 직접 작성할 수 있다.
하지만 하나라도 생성자를 만들었을 시 기본 생성자는 생성되지 않는다.
클래스명 객체명 =new 클래스명();
메서드(method)
- 객체의 기능을 담당하는 부분으로 중괄호{ } 안에 특정 기능을 수행하는 코드를 작성해서 사용한다.
- 일반적으로 메서드는 1개의 기능을 수행한다.
- 반환하는 값(return)이 없다면 반환타입을 void로, 있다면 반환하는 값의 타입을 써야한다.
- 한 번 선언 해두면 필요할 때 여러번 사용이 가능하다.
메서드 선언
반환타입 메서드명(){
기능 코드;
}
메서드 사용
객체명.메서드명();
정적 멤버와 static
- 인스턴스 멤버(멤버 변수, 함수)
· 클래스 안에 선언된 필드를 말하며, 각 객체를 선언할 때 객체들 간의 공유되지 않고 각자의 값을 갖는 멤버들을 말한다.
- 정적 멤버(클래스 변수, 함수)
· 모든 객체가 동일하게 공유하는 값을 가질 때 사용하는 멤버로, 선언할 때 앞에 static이 붙는다.
선언
class 클래스명 {
static타입 변수명; // 정적 필드(클래스 변수)
static 반환타입 메소드명 ( ) {
// 정적 메서드(클래스 메서드)
코드;
}
}
static : '고정된'이라는 뜻을 가지고 있으며,객체와 상관없이 작동될 때 사용된다. (클래스 의존적 요소)
static은 객체를 생성할 때 메모리에 올라가는 것이 아닌 프로그램을 시작할 때 메모리에 올라가고 프로그램이 종류 될 때 사라진다.
정적 멤버 사용
클래스명.필드명;
클래스명.메서드();
'JAVA > Mentor JAVA' 카테고리의 다른 글
Mentor JAVA - section09. 생성자 (0) | 2024.07.21 |
---|---|
Mentor JAVA - section08. 메서드 (0) | 2024.07.19 |
Mentor JAVA - section06. 배열 (0) | 2024.07.17 |
Mentor JAVA - section05. 제어문-2 (0) | 2024.07.16 |
Mentor JAVA - section04. 제어문-1 (0) | 2024.07.15 |