반응형
클래스의 구성
필드(속성), 생성자(어떻게 만들 것인지). 메서드(행위)로 이루어짐
- https://ittrue.tistory.com/117 클래스의 구성 및 객체에 대한 자세한설명!! 참고해서공부하기!
클래스를 만들때 해야 하는 4가지 STEP
- 클래스(Class) 선언
- 만들려고 하는 설계도
- 필드(Field) 정의
- 객체가 가지고있어야할 속성 (변수형태로 선언!)
- https://ittrue.tistory.com/118 필드의 개념정리 블로그 참고해서 공부하기!
- 생성자(Constructor) 정의
- 객체를 생성하는 방식 정의
- 어떤 Input을 넣을지, 어떤 로직을 어떻게 만들지 결정해야 함
- 생성자 이름은 반드시 Class이름과 동일한 형태의 이름이 여야 한다.
- 변수를 넣은 필드들을 처음에 어떻게 정의할 것인가 결정!
- 메서드(Method) 정의
- 객체가 가지고 있어야 할 행위
- 변수를 넣은 것을 제어할 수 있게 한다.
- https://ittrue.tistory.com/119 메서드의 개념정리 블로그 참고해서 공부하기!
자동차를 클래스로 만들어 코드로 한번 작성해 보자
public class Car {//클래스 선언
//<필드(속성)영역>
//고유데이터
String company; // 자동차 회사
String model = "Gv80"; // 자동차 모델
String color; // 자동차 색상
double price; // 자동차 가격
//상태데이터
double speed; // 자동차 속도 , km/h
char gear; // 기어의 상태, P,R,N,D
boolean lights = true; // 자동차 조명의 상태
//객체데이터
Tire tier = new Tire();
Door door;
Handle handle;
//<생성자(Constructor) 영역>
//생성자 : 처음 객체가 생성될때 (instance화) 어떤 로직을 수행해야 하며, 어떤 값이 필수로 들어와야하는지 정의!
public Car() { // logic, 기본생성자_어떠한 로직도 하지않는다, 생략 가능
System.out.println("생성자가 호출되었습니다. 객체가 생성됩니다.");
}
//<매서드(Methed) 영역>
double gasPedal(double kmh, char type) {
changeGear(type); //가속도페달을 밟으면 자동으로 기어가 변한다.
speed = kmh; //input
return speed; //output
}
double brakePedal() {
speed = 0; //input
return speed; //output
}
char changeGear(char type) {
gear = type; //input
return gear; //output
}
boolean onOffLights() {
lights = !lights;
return lights; //output
}
void horn() {
System.out.println("빵빵");
}
void carSpeeds(double... speeds) {
for (double v : speeds) {
System.out.println("v = " + v);
}
}
}
이렇게 만들 수 있겠다.
이 클래스로 이제 객체를 만드는 과정을 배워보자
반응형
'언어(language) > 자바(Java)' 카테고리의 다른 글
| [JAVA] 인스턴스 멤버와 클래스 멤버 (2) | 2023.10.19 |
|---|---|
| [JAVA] 메서드 오버로딩 println( ); , 기본형 참조형 매개변수 (0) | 2023.10.19 |
| [JAVA] 객체의 필드와 메서드 (0) | 2023.10.18 |
| [JAVA] 객체 생성 방법 (2) | 2023.10.18 |
| [JAVA] 객체지향 프로그래밍? (1) | 2023.10.18 |