본문 바로가기
JAVA/JAVA

[JAVA] 01-1. 멤버변수, 생성자, 메서드

by ssunooo 2024. 7. 3.

 

 

1. 멤버변수

 

멤버변수는 객체를 이루는 변수들로

필드, 속성, attribute, property라고도 부른다.

 

멤버변수

 

 

2. 생성자


생성자는 멤버변수를 초기화 시키거나 

특정값으로 지정할 수 있다.

ex) Class() {

          생성자()

          }

 

생성자

 

위 예시의 경우 

Car(int maxSpeed) 가 this ("무명",maxSpeed) 이기때문에

아래줄에 Car (String name, int maxSpeed) 를 먼저 처리한다.

 

3. 메서드

 

메서드는 class에 정의된 동작을 나타낸다.

ex) void oooo()

 

 

메서드

 

 

코드 배치순서는 멤버변수 > 생성자 > 메서드 순으로

보기 헷갈리지 않게 배치한다.



요구사항
1. 현재속도는 반드시 0으로 시작
2. 최고속도를 지정해주지않으면 기본값 120
3. 차주이름은 등록하지 않으면 "무명"으로 저장됨
4. speedUp() -> 속도 50 증가
5. speedDown() -> 속도 100 감소
+) speedUp(값) -> 해당 값 만큼 속도가 증가

class Car { // 멤버변수 > 생성자 > 메서드
     String name;
     int speed// 현재속도
     int maxSpeed// 최고속도
     Car() {
          this("무명",120); // 최고속도를 지정해주지않으면 기본값 120, 차주이름은 등록하지 않으면 "무명"으로 저장됨
     }
     Car(String name) {
          this(name,120); // 최고속도를 지정해주지않으면 기본값 120
     }
     Car(int maxSpeed) {
          this("무명",maxSpeed); // 차주이름은 등록하지 않으면 "무명"으로 저장됨
     }
     Car(String nameint maxSpeed) {
          this.name=name;
          this.speed=0; // 현재속도는 반드시 0으로 시작
          this.maxSpeed=maxSpeed;
     }
     void speedUp() {
          this.speed+=50; // speedUp() -> 속도 50 증가
          if(this.speed>this.maxSpeed) {
               this.speed=this.maxSpeed;
          }
     }
     void speedUp(int speed) { // speedUp(값) -> 해당 값 만큼 속도가 증가
          this.speed+=speed;
          if(this.speed>this.maxSpeed) {
               this.speed=this.maxSpeed;
          }
     }

     void speedDown() {
          this.speed-=100; // speedDown() -> 속도 100 감소
          if(this.speed<0) {
               this.speed=0;
          }

     }
     void speedDown(int speed) {  // speedUp(값) -> 해당 값 만큼 속도가 증가
          this.speed-=speed;
          if(this.speed<0) {
               this.speed=0;
          }
     }
}

 

 

 

2024.07.03

'JAVA > JAVA' 카테고리의 다른 글

[JAVA] 03. 포켓몬 게임 프로그램 작성  (2) 2024.07.11
[JAVA] 02-1 상속(2)  (0) 2024.07.11
[JAVA] 02. 상속  (0) 2024.07.04
[JAVA] 01-2. class를 활용하여 학생부 프로그램 만들기  (0) 2024.07.03
[JAVA] 01. 객체지향  (0) 2024.07.02