java 메소드

Java & Android 2015. 7. 30. 14:21

반환값 - return

메소드는 어떤 기능을 수행하는 코드들로 구성되며
반환값이 있을 수도 없을 수도 있다.
반환값이 없는 경우 'void'로 선언되며
반환값이 있는 경우 반환값에 맞는 데이터 타입 또는 클래스 타입으로 선언해야 한다.
반환값은 1개만 할 수 있으며 여러개의 값을 반환해야 할 경우
객체를 이용해 참조변수(배열, 리스트, 맵 등등)를 반환한다.


abstract method

메소드의 기능 구현부를 작성하지 않은 메소드로 추상 메소드라 함
추상 메소드가 있는 클래스는 반드시 abstract 선언을 해주어야 하며
모든 메소드가 추상 메소드이면 클래스라고 하지 않고 인터페이스라고 한다.
추상 메소드를 선언 할 때 '{ }'로 끝나는 것이 아니고 ';'로 끝냄에 주의할 것.

public abstract class Test {
	public abstract void test();
}


메소드 오버로딩(Over Loading)

메소드의 이름이 동일하여도 파라메터의 타입과 갯수에 따라
실행할 메소드를 결정할 수 있다. 이런 것을 메소드 오버로딩이라 한다.
아래 코드를 보면

public class Test {
    public static void main(String[] args) {
        // 정수 한개를 인자로 받는 test메소드 실행
        test(1);

        // 정수 두개를 인자로 받는 test메소드 실행
        int value = test(1, 2);

        // 문자열 한개를 인자로 받는 test메소드 실행
        String str = test("str");
    }

    // 정수 한개를 인자로 받는다. 반환값 없음
    public static void test(int a) {
    }

    // 정수 두개를 인자로 받는다. 반환값 int
    public static int test(int a, int b) {
        return 3;
    }

    // 문자열 한개를 인자로 받는다. 반환값은 String
    public static String test(String a) {
        return "return String";
    }
}


메소드 오버라이딩(Over Riding)

상속관계에서 상위 클래스의 메소드를 하위 클래스에서 재정의 하는 것
단, 상위 클래스의 메소드 중 final 지시어가 있는 메소드는
하위 클래스에서 오버라이딩할 수 없다.
오버라이딩 된 것을 나타내기 위해 '@Override' annotation을 명시적으로 표기한다. 생략해도 무방하다.

class A {
	void test() {
		// ...
	}
}

class B extends A {
	@Override
	void test() {
		// ...
	}
}

'Java & Android' 카테고리의 다른 글

java 산술연산자  (0) 2015.08.02
java 단항 연산자  (0) 2015.08.02
java 접근제어  (0) 2015.07.30
java 클래스  (0) 2015.07.30
java 배열 선언 및 접근  (0) 2015.07.29
: