
* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.
* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.
Main 클래스 코드 상carArray[0] = car1;로 작성되면 carArray[0]에 car1변수로 호출된 메서드 정보 모두 포함되는 건가요?
Main
package week03;
public class Main {
public static void main(String[] args) {
System.out.println(car1); // week03.Car@2f4d3709 -> car1의 주소값*/
Car[] carArray = new Car[3];
Car car1 = new Car();
car1.changeGear('P');
carArray[0] = car1;
Car car2 = new Car();
car2.changeGear('N');
carArray[1] = car2;
Car car3 = new Car();
car3.changeGear('D');
carArray[2] = car3;
for (Car car: carArray) {
System.out.println("car.gear = " + car.gear);
}
}
}
Car
package week03;
/*우리가 클래스를 만들기 위해서는 4가지 STEP이 필요합니다.
* 1. 만들려고 한느 설계도를 선언합니다.(클래스 선언)
* 2. 객체가 가지고 있어야할 속성(필드)을 정의합니다.
* 3. 객체를 생성하는 방식을 정의합니다.(생성자)
* → constructor
* 4. 객체가 가지고 있어야할 행위(메서드)를 정의합니다.*/
public class Car {
// <필드 영역>
// 1) 고유 데이터 영역
String company; // 자동차 회사
String model = "Gv80"; // 자동차 모델
String color; // 자동차 색상
double price; // 자동차 가격
// 2) 상태 데이터 영역
double speed; // 자동차 속도, km/h
char gear; // 기어상태(P, R, N, D)
boolean light = true; // 자동차 조명의 상태
// 객체 데이터 영역
Tire trie = new Tire();
Door door;
Handle handle;
// <생성자 영역>
// 생성자 : 처음 객체가 생성될 때(instance화) 어떤 로직을 수행해야 하며, 어떤 값이 필수로 들어와야 하는지 정의!
public Car() {
// logic(로직)
// 기본 생성자 : 생략이 가능
System.out.println("생성자가 호출 되었습니다! 객체가 생성됩니다."); // main에서 new 키워드로 호출하면 예) Car car1 = new Car(); <- 이런 형태로 호출되면 알 수 있도록 하는 것이다.
}
// <메소드>
// gasPedal
// input : km/h
// output : speed
double gasPedal(double kmh) {
speed = kmh;
return speed;
}
// brakePedal
// input : 없음
// output : speed
double brakePedal() {
speed = 0;
return speed;
}
//changeGear
// input : gear(char type)
//output : gear
char changeGear(char type) {
gear = type;
return type;
}
// onOffLight
// input : 없음
// output : light(boolean)
boolean onOffLight() {
light = !light;
return light;
}
// horn(경적)
// input : 없음
// output : 없음
void horn() {
System.out.println("빵빵!!!");
}
}
