Java/Java

자바[Java] 메소드란?

백엔드 신입사원( soft 5.10 입사) 2021. 10. 8. 16:44
반응형

메소드는 메소드를 실행할때 필요한 데이터를 외부에서 받기위해 사용하고, 메소드에 리턴 타입은 메소드가 실행 후 리턴하는 값의 타입을 말한다. 메소드는 리턴값이 있을수도 있고 없을수도있다.

 

 

public class Calculator {  
void powerOn(){ //  return이 필요없는 void메소드.  
System.out.println("on");  
}  
int plus(int x, int y){ // return이 필요한 예시.  
int result = x + y;  // result라는 int에 x와 + y를 더한다.  
return result;  // result를 종료한다. 혹은  
}  
double divide(int x, int y){ //double  
double result = (double)x / (double)y;  // result의 값은 double x와 double y의 나눈 값이다.  
return result;  // result를 종료한다.  
  
}  
void powerOff(){  // return이 필요없는 void메소드.  
System.out.println("off");  
}  
  
}
public class CalculatorExample {  
public static void main(String []args){  
Calculator calc = new Calculator();  //클래스때 처럼 Calculator의 내용을 가져오기 위한 선언문 같은것.  
calc.powerOn();  // Calculator의power을가져온다.  
int res1 = calc.plus(7,9);  // res1은Calculator의plus이고 해당x와 y의 값은 각각 7과 9이다.  
System.out.println(res1);  // res1을 출력한다.  
  
byte x = 8;  // double의 값을 주기위해 byte x의 값은 8  
byte y = 77;  // 값은77이다.  
double res2 = calc.divide(x,y);  // res2는 이제 Calculator의 double 내용을 가져오고  
System.out.println(res2);  // 출력한다  
calc.prwerOff();  
  
}  
  
  
}

매개 변수의 수를 모를 경우

public class Computer {  
  
int sum1(int[] values) {  //변수가 몇개 인지 모르는 경우  
  
int sum = 0;  //sum은0이다.  
for(int i=0; i<values.length; i++){  // 변수가 몇개 인지 모르는데 for문을 이용해 i를 변수 개수 만큼 반복시킨다.  
sum += values[i];  //sum은 values[i] 개와 같다.  
}  
return sum; //for문을 빠져 나오기 위해 리턴으로 sum을 종료시킨다.  
}  


// 두번째    
int sum2(int ... values){  
int sum = 0;  
for sum2(int i=0; i<values.length; i++){  
sum += values[i]  
}  
return sum;  
}  
  
}
public class ComputerExample {  
public static void main(String [] args){  
Computer com = new Computer(); // 불러 온다.  
int[] values1 = {8, 9, 8}; // 1번째 sum1의 내용의 변수를 만들어준다. (여러개도 가능하다.)  
int result1 = com.sum1(values1); // result1이 computer안에 들어있는 sum1이며 values1의 변수 개를 사용한다.  
System.out.println(result1); // result1의 내용을 출력한다.  
  
// 두번째  
int result3 = com.sum2(3, 9, 8, 8); //result3은 computer안에 들어있는 sum2이다.  
System.out.println(result3);  
}  
  
  
  
}

리턴(return) 값이 있는 메소드와 없는 메소드.

public class Car {  
int gas; // gas를 생성 (멤버 변수)  
  
void setGas(int gas){ // (로컬 변수)  
this.gas = gas; //this.gas는 멤버 변수이며 = gas;는 로컬 변수이다.  
}  
  
boolean isleftGas(){ //boolean인 메소드 를 활용.  
if(gas == 0) { // gas가0일경우 false를 0이 아닐경우 true를 리턴할것이다.  
System.out.println("gas없음" );  
return false;  
}  
System.out.println("gas있음");  
return turn;  
}  
void run(){  
while(true){  // 리턴값이 없는 메소드로 gas필드 값이 0이면 리턴으로 강제 종료 시킨다.  
if(gas > 0){  
System.out.println("갯수: "+ gas);  
gas -= 1;  // gas가 0보다 많을경우 1개씩 감소시킨다.  
} else {  
System.out.println("갯수: " + gas);  // 만일 0이되면 마지막으로 해당 내용을 출력하고  
return;  // 종료시킨다.  
}  
}  
}  
  
}
public class CarExample{  
public static void main(String [] args){  
  
Car mc = new Car();  // 선언.mc.setGas(50);  // setGas의 갯수를 지정.  
  
boolean gasState = mc.isleftGas();  // Car의isleftGas메소드를 호출  
if(gasState){  // 그래서 gasState는System.out.println("시작");  // 갯수가 지정되니 해당 내용을 출력시키고  
// 반복시 키기 위해mc.run();  // Car의 run() 메소드를 호출 시킨다.  
}  
is(mc.isleftGas**()**) {  // run 메소드의 지정된 갯수가 남아있는지 확인을 위해 Car의 isleftGas 를 호출 시키고  
System.out.println("계속");  // 만일 남아있다면 이 내용을  
} else {  
System.out.println("종료");  // 끝이 난거면 이 내용을 호출한다.  
}  
  
  
}  
}

클래스 내부에서 메소드 호출하고 계산.

public class Calculator{  
int plus(int x, int y){  // plus의 변수 x와 y를 만듬 ㉡2  
int result = x + y; // x와 y의 합은 result이구  
return result;  
}  
double avg(int x, int y){  // 더블의 avg도 변수가 2개 있음. ㉠2  
double sum = plus(x, y) //더블에 sum은 plus x와 y이고 ㉡1  
double result = sum / 2; //더블에 result는 sum 와 2가 나눠서 나온 값이당  
return result;  
}  
void execute(){  
double result = avg(9, 15); // 더블에 result는 avg에 9와 15이다. ㉠1  
println("결과 : " +result); // ㉢1  
}  
  
void println(String message){  
System.out.println(message);  // ㉢2  
}  
}  
  
// 어디서 불렸는지 ㉠->  ㉠ ,  ㉡->  ㉡,  ㉢-> ㉢
public class CalculatorExample{  
  
public static void main(String []args){  
Calculator mc = new Calculator();  
mc.execute();  // Calculator의 execute를 호출  
  
}  
}

클래서 외부에서 메소드 호출

public class Car {  
  
int speed;  
  
int getSpeed(){ // getSpeed는 speed를 종료시킨다.  
return speed;  
}  
  
void keyTurnOn(){  
System.out.println("돌림");  
}  
  
void run(){  
for(int i=10; i<=50; i+=10); { // i는 10이고 10씩 늘어난다.  
speed = i; // speed는 i이다.  
System.out.println("달림 : " + speed);  
}  
}  
  
}
public class CarExample {  
public static void main(String[] args){  
  
Car mc = new Car(); // 선언  
mc.keyTurnOn();  // car의keyturn을불러온다  
mc.run();  // run을 불러온다  
int speed = mc.getSpeed();  // 선언speed는 car에 getspeed이다  
System.out.println("지금 스피드 : " + speed);  
}  
  
}

 

반응형