hyeongwoo's blog

[Java] 클래스_(구성) 본문

JAVA

[Java] 클래스_(구성)

toribro 2024. 1. 24. 09:51


<클래스>

   데이터(속성)와 기능(메소드)를 포함하는 자료형이다.
   객체를 생성시키기 위한 설계도이다.

 

<클래스 구성>

필드

  •  데이터(속성)값이 저장되는 곳이다.
  •  멤버 변수라고도 불리며 객체의 상태를 나타내는 변수이다.
  •   인스턴스에 속하는 비정적(non-static)필드와 클래스에속하는 정적(static) 필드로 나뉜다.

메소드

  • 메소드는 객체의 동작이나 행위에 해당되는 코드 블록이다.
  • 클래스내의의 정의된 함수로 다양한 기능을 수행한다. 예를들어 객체의 데이터를 처리하거나 다른 메소드를 호출하는 작업을 수행한다.

생성자

  • 객체가 생성될때 가장 먼저 호출되는 특별한 메소드이다.
  • 생성자의 이름은 클래스 이름과 같아야한다.
  • new 연산자를 통해 호출되며 객체의 초기 상태를 설정한다.
  • 객체의 데이터 초기화와 메소드 초기화를 한다.

 

<생성자 오버로딩>

  •  매개변수 타입과 개수가 다른 생성자를 여러개 선언하는것
  •  디폴트 생성자가 없고 오버로딩 생성자가 선언될시 오버로딩 생성자만 호출가능하다. (명시적 생성자 우선 호출)
  •  디폴트 생성자도 호출 가능하게 하려면  디폴트 생성자도 명시적으로 적어주어야한다.
  •  프로그래밍을 유연하게 작성하는데 용이하다.

 

<클래스 예시>

자동차 클래스를 정의하고 클래스내의 필드 생성자 메소드를 구현한다.

public class Car {
    // 필드 (Field)
    private String color;  // 비정적 필드
    private static int numberOfCars = 0;  // 정적 필드

    // 생성자 (Constructor)
    public Car(){//명시적 디폴트생성자
    
    }
    
    public Car(String color) { // 오버로딩된 생성자
        this.color = color;
        numberOfCars++;
    }

    // 메소드 (Method)
    public void drive() {
        System.out.println(color + "색 차가 달리고 있습니다.");
    }

    // 정적 메소드
    public static int getNumberOfCars() {
        return numberOfCars;
    }
}

 

'JAVA' 카테고리의 다른 글

[Java] 메소드  (0) 2024.01.26
[Java] this  (2) 2024.01.24
[Java] 객체  (0) 2024.01.24
[Java] 제어문_(반복문 활용)  (0) 2024.01.22
[Java] 제어문_(조건문)  (1) 2024.01.21