반응형
package constructor;

public class Car {
	String model; // this.model임
	int speed;
	
	//생성자
	Car(String model){
		this.model = model; // model은 매개변수
       // Car 클래스 형태를 가진 model과 클래스안에 model 과 구분짓기위해
	}
	
	void setSpeed(int speed) {
		this.speed = speed;
	}
	
	void run() {
		for (int i = 10 ; i <= 50 ; i = i + 10) {
			//this.setSpeed(i);
			setSpeed(i);
			System.out.println(this.model + "가 달립니다. (시속 : " 
			+ this.speed + "km/h)");
		}
	}
}
package constructor;

public class CarExample {

	public static void main(String[] args) {
		
		Car car = new Car("포르쉐"); 
        // 생성자가 있으면 반드시 그 양식에 맞게 매개변수 넣어야 함
		
		car.run();

	}

}

 

저번 시간에 이어서 이번엔 함수 만드는 방법에 대해서 알아봅시다

 

클래스에 변수도 들어갈 수 있지만 함수도 들어갈 수 있습니다.

 

함수는 원래 있던 걸 써도 되지만 자기가 만들어서 사용도 가능합니다.

 

void setSpeed(int speed) {
     this.speed = speed;
}

 

함수를 만들 때는 위나 아래쪽에 한쪽에 몰아서 써주세요 

 

void(반환타입) setSpeed(메소드명) int speed (매개변수)

반환타입에는 void, int , long..  다양하게 선언이 가능합니다.

반환타입이 무엇이냐면 이 메소드를 실행 시켰을 때 결과 값을 주는 겁니다. void는 아무것도 반환해주지 않고

 

예를들어서 정수를 더하는 함수를 제가 만들어보겠습니다.

 

int sum (int A , int B){

   int total = A + B;

   return total;

}

------------------------------------------------------------


System.out.print(sum(3,4));

int hab = sum(3,4);
System.out.println(hab);

 

이런식으로 A와 B를 받아서 더하고 그걸 반환하는 함수를 만들겠습니다.

 

return 하는 값과 함수선언시 반환타입은 동일해야합니다.

 

합친 값을 줘서 그걸 출력해야하기 때문에

 

1.

    System.out.print(sum(3,4));

    반환값을 그냥 출력해버리기

2.

    int hab = sum(3,4);
    System.out.println(hab);

    hab이라는 int형에 담아서(return값과 동일해야함) 출력해버리기

 

이러한 거 때문에 return값이 필요합니다. 모든 자료형을 쓸 수 있기 때문에 필요할 때 적재적소로 활용하면 됩니다.

 

메소드명은 자기가 짓고 싶은대로 지으면 되고

매개변수를 뭐로 받을지에 대한 인자값도 자기가 원하는 만큼 설정해주시면 됩니다.

 

 

다시 돌아와서

 

void run() {
     for (int i = 10 ; i <= 50 ; i = i + 10) {
     //this.setSpeed(i);
     setSpeed(i);
     System.out.println(this.model + "가 달립니다. (시속 : "+ this.speed + "km/h)");
     }
}

 

만들어둔 setSpeed 함수를 이용해서 속도를 설정해주고 그것을 출력하고 반복문으로 50까지 올라가도록 합니다.

그리고 메인 클래스에서 car.run()으로 실행해줍니다.

 

함수도 접근법은 동일합니다.

 

https://github.com/SungJLee/My_Java_World.git

 

SungJLee/My_Java_World

Contribute to SungJLee/My_Java_World development by creating an account on GitHub.

github.com

 

반응형