함수

입력값을 집어넣으면 출력값을 도출해내는 상자박스

접근제어자 리턴타입 함수명(파라미터) {body}

return : (반환값)

public int sum(int x, int y) {
    return x + y; 
}

범위 (Scope)

전역변수

JVM 또는 클래스가 없어지면 소멸한다.

클래스 내 어디서든 접근 가능하다.

public class Person {
    private int age; // 전역변수
}

지역변수

메소드 실행이 종료되면 소멸한다.

public class Person {
    private int age;

    public String getName() {
        String name = "cat"; // 지역변수
        return name;
    }
}

Call by Value

파라미터를 Primitive Type으로 설정한 경우 전역변수의 값이 바뀌지 않는다.

public void callByValue(int number) {
    number = 2;
}
int number = 1;
callByValue(number);
// 결과 1
System.out.println(number);

Call by Reference

파라미터를 Reference Type으로 설정한 경우 전역변수의 값이 바뀐다.

public void callByReference(int numbers[]) {
    numbers[0] = 3;
}
int numbers[] = {1, 2, 3};
// 결과 3, 2, 3
System.out.println(numbers);

오버라이드 (Override)

부모로 부터 상속받은 함수를 자식에서 재정의하는 것

class Parent {
    public int sum(int x, int y) {
        return x + y;
    }
}

class Child extends Parent {
    @Override
    public int sum(int x, int y) {
        return x + y + 10;
    }
}

오버로드 (Overload)

같은 함수명으로 작성했지만 매개변수나 리턴 값이 다름

public void print() {
    System.out.println("프린트");
}

public boolean print() {
    System.out.println("프린트");
    return true;
}

public void print(String name) {
    System.out.println("이름 : " + name);
}

댓글남기기