기록장
메소드를 알려줄게 2 본문
리턴문에 대해 알아볼거야
리턴값이 있는 메소드가 있고
리턴값이 없는 메소드가 있어
일단 리턴 값이 있는 메소드는
반드시 리턴문을 지정해야돼 만약 리턴문이 없다? 그러면 에러 나~
리턴문이 실행 되면 메소드는 즉시 종료 돼
return 리턴값;
리턴문의 리턴 값은 리턴 타입이거나
리턴 타입으로 변환이 될 수 있어야해
예를 들어서 int인 plus()메소드에서는 바이트, 쇼츠,인트 값이 되어도 상관없어
바이트랑 쇼츠는 인트로 자동 변환 돼
int plus(int x, int y){
int result = x + y;
return result;
}
이건
int plus(int x,int y){
byte result = (byte) ( x+y );
return result;
}
이렇게 말이지
리턴문 이후의 실행문은 결코 실행되지않아
return 이후에 실행 문이 오면 Unreachable code(언리처벌 코드/도달할수없는 코드라는 뜻)
에러가 발생해~
boolen isLeftGas(){
if(gas==0) {
System.out.println("gas가 없습니다.");
return false;
}
System.out.println("gas가 있습니다.");
return true;
}
이건 가능해 왜냐면
if문의 조건식이 flase가 되면 정상적으로 두번째가 발생하겠지?
if문의 조건식이 true가 되면 정상적으로 1이 실행되니까 리턴 페일; 이 실행되어 메소드가
즉시 실행과 동시에 두번째는 실행되지않으니까~
이제는 리턴값이 없는 메소드 void(보이드/공허의)에 대해 알려줄게
리턴값이 없는 메소드는 리턴 타입으로 void를 사용해
근데 보이드가 선언 됐어도 리턴문을 사용 할 수 있어
이 부분은 메소드를 강제 종료 시키는 역할이야~
return;
package sec02.exam01;
public class Car {
//필드
int gas;
//생성자
//메소드
void setGas(int gas ) {
this.gas = gas;
}
boolean isLeftGas() {
if(gas == 0) {
System.out.println("gas가 없습니다.");
return false; //false를 리턴
}
System.out.println("gas가 있습니다");
return true; //true를 리턴
}
void run() {
while(true) {
if(gas > 0) {System.out.println("달립니다.(gas잔량:"+gas+")");
gas -=1;
} else {
System.out.println("멈춥니다(gas잔량:"+gas+")");
return;
}
}
}
}
리턴문
package sec02.exam01;
public class CarExample {
public static void main(String[] args) {
Car myCar = new Car();
myCar.setGas(5); //Car의 setGas() 메소드 호출
boolean gasState = myCar.isLeftGas(); //Car의 isLeftGas()메소드 호출
if(gasState) {
System.out.println("출발합니다");
myCar.run(); //Car의 run() 메소드 호출
}
if(myCar.isLeftGas()) { //Car의 isLeftGas()메소드 호출
System.out.println("gas를 주입할 필요가 없습니다");
}else {
System.out.println("gas를 주입하세요");
}
}
}
public class Calculator {
int plus(int x, int y) {
int result = x+y;
return result;
}
double avg(int x, int y) {
double sum = plus(x,y);
double result = sum /2;
return result;
}
void execute() {
double result = avg(7,10);
println("실행결과:"+result);
}
void println(String message) {
System.out.println(message);
}
}
객체내부에서 메소드 호출 해봤습니다
public class CalucalatorExample {
public static void main(String[] args) {
Calculator myCalc = new Calculator();
myCalc.execute();
}
}
위에 클래스를 지금 클래스에 호출 해봤음 실행결과는 8.5임
클래스 외부에서 메소드 호출
클래스 외부에서 메소드 호출
'개발 > JAVA' 카테고리의 다른 글
파이널 필드랑 상수를 설명해 줄게 (0) | 2022.05.15 |
---|---|
정적 변수 코드 짜봤어~ 주의할 점도 알려 줄게 (0) | 2022.05.15 |
메소드를 말해줄게 (0) | 2022.05.14 |
생성자에 대해서 알려줄게2 (0) | 2022.05.12 |
생성자에 대해서 알려줄게 (0) | 2022.05.12 |