Computer Science/Java

W3Schools 자바 | #1 자바 매소드

토마토. 2022. 9. 5. 20:43
Java 매소드
public class Main {
    static void myMethod(){
        
    }
    public static void main(String[] args){

    }
}

Java 매소드의 기본 꼴

public class Main {
    static void myMethod(){
        System.out.println("I just got executed!");
    }
    public static void main(String[] args){
        myMethod();
    }
}

myMethod() 매소드를 정의해주고, 

$ javac Main.java
$ java Main
I just got executed!

컴파일 뒤에 실행해주었다. 

 

 

자바 매소드의 인수
  • 파라미터가 있는 함수
public class Main {
    static void myMethod(){
        System.out.println("I just got executed!");
    }
    static void withParameter(String fname){
        System.out.println(fname + " Hi");
    }
    public static void main(String[] args){
        myMethod();
        withParameter("YoungZoo");
    }
}

- 파라미터 : 함수를 정의하는 부분에서 String fname

- argument : 함수에 전달된 인수 Liam, Jenny, Anja ...

 

  • 파라미터를 여러 개 갖는 함수
public class Main {
    static void myMethod(){
        System.out.println("I just got executed!");
    }
    static void withParameter(String fname, int age){
        System.out.println(fname + " Hi" + age);
    }
    public static void main(String[] args){
        myMethod();
        withParameter("YoungZoo", 22);
    }
}

 

  • return value
public class Main {
    static void myMethod(){
        System.out.println("I just got executed!");
    }
    static void withParameter(String fname, int age){
        System.out.println(fname + " Hi" + age);
    }
    static int returnInt(int x){
        return 5 + x;
    }
    public static void main(String[] args){
        myMethod();
        System.out.println(returnInt(7));
        withParameter("YoungZoo", 22);
    }
}

 

 

자바 매소드 오버로딩

매소드 오버로딩을 통해 같은 이름을 가진 매소드가 파라미터를 달리하며 여러 개 존재할 수 있다. 

예를 들면 이런 식이다. 

    static int overLoad(int x)
    static float overLoad(float x)
    static double overLoad(double x, double y)

 

전체를 정의해보자. 

 

자바 스코프(scope)

- block을 감싸는 범위가 scope

 

자바 재귀함수

자바는 rec와 같은 예약어 없이도 재귀함수를 정의해줄 수 있다. 

그냥 매소드 안에서 매소드(파라미터)를 다시 전달해주면 끝인 것이다. 

 

public class Main {
    public static void main(String[] args){
        int result = sum(10);
        System.out.println(result);
    }

    public static int sum(int k){
        if (k>0){
            return k + sum(k-1);
        }
        else {
            return 0;
        }
    }
}

 

재귀함수가 무한루프에 빠지는 걸 막기 위해서 종료 조건을 설정해주는 것이 좋다.