자바 리턴타입

Yullc·2025년 3월 13일
post-thumbnail

오늘은 리턴타입애 대해 알아볼거야
저번에 우리가 void를 제외한 int, boolean, String등 다른 형태의 타입이면 반드시 return을 해줘야 한다고 했잖아? 그래서 오늘은 그거에 대해 이야기 하려고 해

public class Main {
    public static void main(String[] args) {
        int i = 로봇.get정수();
        boolean b = 로봇.get논리();
        사람 a사람 = 로봇.get사람();
        사람 a사람2 = 로봇.get사람2();
        사람 a사람3 = 로봇.get사람3();
        사람 a사람4 = 로봇.get사람4();
        사람 a사람5 = 로봇.get사람5(123,false);
        로봇.get사람6(123,false);
    }
}
class 사람{
    int 학번;
    boolean 출결;
}
class 로봇{
    public static int get정수() {
        return 0;
    }
    public static boolean get논리(){
        return true;
    }
    public static 사람 get사람() {
        return null;
    }
    public static 사람 get사람2() {
        return new 사람();
    }

    public static 사람 get사람3() {
        사람 a사람 = null;
        return a사람;
    }
    public static 사람 get사람4() {
        사람 a사람 = new 사람();
        return a사람;
    }
    public static 사람 get사람5(int 학번, boolean 출결){
        사람 a사람 = new 사람();
        a사람.학번 = 학번;
        a사람.출결 = 출결;
        return a사람;
    }
    public static void get사람6(int i, boolean a) {

    }
}

좀 길긴하네.. 차근 차근 보면

  • 일단 딱 보자마자 사람 클래스와 로봇 클래스를 만들어줘야 해 그리고 기본적으로 객체를 생성하지 않았으니 static메서드가 될거야!

  • 그리고 로봇클래스에 있는 메서드드을 보면 get정수()라고 하는 메서드는 int 타입이니까 return은 0이야.

  • boolean get논리()메서드는 bool타입이니까 return이 true,false 정도 되겠지?

  • 사람 a사람 = 로봇.get사람(); 이 문장은 메서드를 어떻게 작성해야할까? 우리가 int i =0;이라고 i를 선언했을때 생각을 해보자 int는 타입이고 i는 변수고 0은 값을 넣겠다 라는 의미지?

  • 여기서도 같이 사람이라는 타입에 a사람이라는 변수를 가지고 그 변수에 로봇.get사람();메서드를 넣겠다는 뜻이야. 그러므로 static 사람 get사람(){}이라는 메서드가 생길거고 return 타입은 뭐가 나와야할까?

  • 먼저 아무것도 들어있지않다! 의 뜻인 null이 나올 수도 있어. 그리고 객체를 안만들었으니 return을 하면서 new사람();이라고 객체도 생성할 수가 있지.

  • 또 get3번처럼 할 수 있어 3번은 어떻게 한거냐면 a사람을 return하고 '사람 a사람 = null;' 인데 그냥 사람 타입의 a사람변수에다가 null;을 넣어서 그냥 로봇.get사람3();이거 대신에 null을 넣은거야.

  • 4번은 return을 a사람을 넘겨주니까 메서드안에는 사람 a사람 = new 사람(); 이렇게 적혀있지? 그러면 new 사람();을 했으니 2번과 같이 객체를 넘겨준다고 볼 수있어!

  • 5번은 메서드에 인자가 포함되어있잖아? 만약 학번과 출결로 가정을 해볼 때 a사람.학번 = 학번; 이건 a사람객체의 학번이라는 변수에 인자로로 받은 값을 저장해주는거야 근데 학번이라는 변수가 없잖아? 그러니 사람 클래스에 학번이라는 변수를 생성해주는거야! bool값도 똑같아!!

  • 6번의 리턴타입은 뭘까? 6번은 그냥 메서드 실행이야 그리고 6번 메서드는 void네? 그럼 return을 안해줘도 된다~ 이런 말이지..

profile
아자아자자

0개의 댓글