The Debugging Chronicles : "코드의 미학"

Mentor JAVA - section07. 클래스 본문

JAVA/Mentor JAVA

Mentor JAVA - section07. 클래스

sweetseonah1004 2024. 7. 19. 23:20

객체 지향 프로그래밍

- 객체를 중심으로 프로그램 구조를 설계하고 프로그래밍 하는 것을 객체 지향 프로그래밍이라고 한다.

- 객체는 일반적으로 상태를 표현할 수 있고 우리가 행동으로 실행할 수 있는 모든 것을 말한다.

객체와 클래스

- 클래스

· 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