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);
}
}
반응형