본문 바로가기
JAVA

클래스 구성 요소 (필드, 생성자, 메소드)

by winteringg 2022. 8. 28.

1. 클래스의 구성 요소
1) 필드(Field)
2) 생성자(Constructor)
3) 메소드(Method)

2. 필드 (Field)
1) 객체의 속성이나 고유 데이터가 저장되는 곳. 클래스 블럭 { } 안에 있음. (ex. int fieldName;)
2) 선언된 형태는 변수와 비슷하지만 필드를 변수라고 하진 않음. (클래스 멤버 변수라고 함)
3) 변수는 생성자와 메소드 내에서만 사용되고, 생성자와 메소드가 실행 종료되면 자동 소멸됨.
4) 필드는 생성자와 메소드 전체에서 사용되며, 객체가 소멸되지 않는 한 객체와 함께 존재함.
5) 필드 선언 : '속성' 같은 명사적인 특징을 뽑아내어 필드를 추출함.
  ex. 자동차 객체의 속성 : 제작 회사, 모델, 색깔, 최고 속도, 차체, 엔진, 타이어 etc.
  => String company; String model; String color; int maxSpeed; etc.
6) 초기값이 지정되지 않은 필드들은 객체 생성시 자동으로 기본 초기값 (0, 0.0, 공백, false, null)으로 설정됨.

3. 생성자(Constructor) 
1) 생성자는 객체가 생성될 때 실행해야 할 로직을 작성할 수 있음.
2) new 연산자로 호출되며 객체 생성시 초기화 역할 담당하는 메서드. 생성자 이름은 클래스 이름과 동일해야 하고 리턴 타입이 없음. ex. ClassName() {..실행문..}
3) 리턴값이 없음. (void 안붙임)
4) 기본 생성자(Default Constructor) : 매개변수가 없는 생성자. 모든 클래스는 생성자가 반드시 존재하며 하나 이상을 가질 수 있음. 그렇기 때문에 생성자 선언을 생략하면 컴파일러는 기본 생성자를 만듦. ex. public 클래스() {  }
5) 개발자가 명시적으로 클래스에 생성자에 매개변수(parameter)를 넣어 선언을 했을 경우에는, 기본생성자를 꼭 추가해야 함. 그리고 실행 클래스에서 객체를 생성할 때 인자(argument)값을 준 후 객체를 생성해야 함.

4. 생성자 오버로딩(Overloading)
1) 매개 변수의 타입, 개수, 순서가 다른 생성자를 중복해서 여러 개 선언하는 것.
2) 생성자를 다양화해야 하는 이유 : 객체를 생성할 때 외부의 값으로 객체를 초기화 할 필요가 있음. 외부의 값이 어떤 타입으로 몇 개가 제공될 지 모르기 때문에 생성자도 다양해져야 함.

5. 메소드(Method) 
1) 객체의 동작에 해당하는 실행 블록이며 리턴 타입이 있음. 리턴 값이 없으면 void, 리턴 타입이 있으면 그에 맞는 리턴타입을 넣어줘야 함. 

메소드 선언과 호출 예시


2) 메소드를 호출하게 되면 중괄호{ } 블럭의 모든 코드들이 일괄적으로 실행됨.
3) 메소드는 필드를 읽고 수정하는 역할도 하지만, 다른 객체 간의 데이터 전달 수단으로도 사용됨.
4) 메소드의 장점 : 재활용이 용이하며, 코드의 중복이 제거되고 그로 인해 유지보수가 쉬워짐.

6. 리턴(return)문
1) 메소드의 실행을 중지하고 호출한 곳으로 되돌아감.
2) 반환 타입이 void 면 return 생략 가능. 반환 타입이 지정되어 있을 경우 반드시 return문 필요함.

 

 

 

참고 : [한빛미디어] 이것이 자바다 (신용권의 Java 프로그래밍 정복) Chapter 6.클래스
참고 : [도우출판] JAVA의 정석(3ND EDITION)-자바의 정석 최신 Java 8.0 포함 Chapter 6.객체지향 프로그래밍 |

'JAVA' 카테고리의 다른 글

static 멤버 & 인스턴스 멤버  (0) 2022.08.28
접근 제어자와 캡슐화  (0) 2022.08.28
생성자 this() vs 참조변수 this  (0) 2022.08.28
메서드  (0) 2022.08.28
switch-case 조건문  (0) 2022.08.28

댓글