The Debugging Chronicles : "코드의 미학"
예제로 알아보는 클래스02 본문
생성자의 오버로딩
함수의 오버로딩
그리고
this() 함수
예제
1. 현재속도는 반드시 0으로 시작
2. 최고속도를 지정해주지않으면 기본값 120
3. 차주이름은 등록하지않으면 "무명"으로 저장됨
4. speedUp() -> 속도 50 증가
5. speedDown() -> 속도 100 감소
+) speedUp(값) -> 해당 값 만큼 속도가 증가
>>>생각해보기
- 현재속도는 반드시 0으로 시작
- 최고속도를 지정해주지않으면 기본값 120
- 차주이름은 등록하지않으면 "무명"으로 저장됨
- 생성자 함수의 가능한 모든 조건 생각해보기
1. 이름이 없으면 "무명"
2. 이름이 있고 최고 속도가 지정되지 않을 때
3. 이름이 없고 최고 속도가 지정되어 있을 때
4. 이름이 있고 최고 속도가 지정되어 있을 때
따라서,
Car(){
this("무명",120);
}
Car(String name){
this(name,120);
}
Car(int maxSpeed){
this("무명",maxSpeed);
}
Car(String name,int maxSpeed){
this.name=name;
this.speed=0;
this.maxSpeed=maxSpeed;
}
>>>생각해보기
- 현재속도는 반드시 0으로 시작
static int speed = 0 ; //???????
- 반드시는 Static 인가?
세상 모든 차에서 공유되는 차의 속성 이어야 static이 가능하다.
예를 들어 반지름과 같이 언제나 변함 없이 반지름은 PI로 3.14라는 값이 공유 될 때 static을 사용한다.
정답
package class04;
class Car {
String name;
int speed; // 현재속도
int maxSpeed; // 최고속도
Car(){
this("무명",120);
}
Car(String name){
this(name,120);
}
Car(int maxSpeed){
this("무명",maxSpeed);
}
Car(String name,int maxSpeed){
this.name=name;
this.speed=0;
this.maxSpeed=maxSpeed;
}
void speedUp() {
this.speed+=50;
if(this.speed>this.maxSpeed) {
this.speed=this.maxSpeed;
}
}
void speedUp(int speed) {
this.speed+=speed;
if(this.speed>this.maxSpeed) {
this.speed=this.maxSpeed;
}
}
void speedDown() {
this.speed-=100;
if(this.speed<0) {
this.speed=0;
}
}
}
'JAVA > 자바 수업 내용' 카테고리의 다른 글
학생부 출력 프로그램 - 함수와 메서드를 사용하여 바꾸기 (2) | 2024.07.03 |
---|---|
예제로 알아보는 클래스03 (0) | 2024.07.03 |
예제로 알아보는 클래스01 (0) | 2024.07.02 |
함수 제작하기 (0) | 2024.07.01 |
자바 디버깅 표 찍기 - 별 그리기2 (0) | 2024.06.29 |