JAVA

[JAVA] 클래스 설계

개발 공주 2023. 5. 29. 23:36
728x90

📌 클래스는 객체를 생성하기 위한 설계도

  • 클래스의 구성 멤버에는 필드, 생성자, 메서드가 있다.

4 STEP

📌 우리가 클래스를 만들기 위해서는 4가지 STEP 이 필요하다.

  1. 만들려고 하는 설계도를 선언합니다.(클래스 선언)
  2. 객체가 가지고 있어야할 속성(필드)을 정의한다.
  3. 객체를 생성하는 방식을 정의한다.(생성자)
  4. 객체가 가지고 있어야할 행위(메서드)를 정의한다! 

 

자동차 클래스를 만들어 보겠다!

1. 클래스 선언!

public class Car {}
//public class Car : 공개된 자동차 클래스 선언을 의미한다.

 

2. 클래스의 필드 정의!

String company; // 자동차 회사
String model; // 자동차 모델
String color; // 자동차 색상
double price; // 자동차 가격
double speed;  // 자동차 속도 , km/h
char gear; // 기어의 상태, P,R,N,D
boolean lights; // 자동차 조명의 상태

- 필드는 객체의 속성으로써 데이터를 저장하는 역할을 합니다.
    - String 타입의 company 변수 선언 : 자동차 회사명을 저장합니다.
    - String 타입의 model 변수 선언 : 자동차의 모델명을 저장합니다.
    - String 타입의 color 변수 선언 : 자동차의 색상을 저장합니다.
    - double 타입의 price 변수 선언 : 자동차의 가격을 저장합니다.
    - double 타입의 speed 변수 선언 : 자동차의 속도를 저장합니다.
    - char 타입의 gear 변수 선언 : 자동차의 기어 상태를 저장합니다.
    - boolean 타입의 lights 변수 선언 : 자동차의 조명 상태를 저장합니다.

3. 클래스의 생성자 정의!

public Car() {}
- public Car() : 자동차 객체의 생성 방식을 선언합니다.
    - 생성자는 반환 타입이 없고 이름은 클래스의 이름과 동일합니다.
    - 괄호( ) 안에 아무것도 없는 생성자를 기본 생성자라 합니다.

4. 클래스의 메서드 정의!

double gasPedal(double kmh) {
    speed = kmh;
    return speed;
}
- 반환타입이 double 인 `gasPedal(double kmh)` 메서드를 선언합니다.
    - 매개변수인 kmh을 통해 매개값을 전달받아 자동차의 속성인 speed 필드에 해당 값을 저장합니다.

double brakePedal() {
    speed = 0;
    return speed;
}
- 반환타입이 double 인 `brakePedal()` 메서드를 선언합니다.
    - 메서드가 호출되면 자동차의 속성인 speed 필드의 값을 0으로 바꾼후 speed의 값을 반환합니다.
    
char changeGear(char type) {
    gear = type;
    return gear;
}
- 반환타입이 char 인 `changeGear(char type)` 메서드를 선언합니다.
    - 매개변수인 type을 통해 매개값을 전달받아 메서드가 호출되면 자동차의 속성인 gear 필드에 해당 값을 저장합니다.
    
boolean onOffLights() {
    lights = !lights;
    return lights;
}
- 반환타입이 boolean 인 `onOffLights()` 메서드를 선언합니다.
    - 메서드가 호출되면 자동차의 속성인 lights의 현재 논리 값을 반전 시킨 후 lights의 값을 반환합니다.
    
void horn() {
    System.out.println("빵빵");
}
- 반환값이 없는 `horn()` 메서드를 선언합니다.
    - 메서드가 호출되면 자동차의 경적소리인 “빵빵”이 출력됩니다.

 

지금까지 클래스를 설계하는 방법을 보았다ㅋ

 

클래스 설계가 이해가 어렵다면 아래 글도 참고해보자....(뿌잉 >3<)

[참조] 객체지향 프로그래밍 이해하기 (1)

 

[JAVA] 객체지향 프로그래밍 이해하기 (1)

📌 현실세계에서 어떠한 제품을 만들기 위해 부품들을 하나씩 조립해서 완성시키는 것 처럼 소프트웨어 또한 필요한 부품들을 만들고 하나씩 조립해서 하나의 완성된 프로그램을 만들 수 있는

pink-love-princess.tistory.com

[참조] 객체지향 프로그래밍 이해하기 (2)

 

[JAVA] 객체지향 프로그래밍 이해하기 (2)

1. 객체 지향 프로그래밍의 특징 📌 우리가 객체지향 프로그래밍을 하다보면 필연적으로 만나게 되는 개념이 있습니다. 바로 캡슐화, 상속, 다형성, 추상화입니다. 앞으로 학습하게 되는 내용에

pink-love-princess.tistory.com