Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

기록

[JAVA] 메서드 본문

공부/JAVA

[JAVA] 메서드

aoieuo 2020. 7. 6. 19:58

<클래스 메서드와 인스턴스 메서드>

  1. 클래스 메서드 (static method)

    : 객체 생성없이 '클래스이름.메서드이름()'으로 호출한다.

      인스턴스 변수나 인스턴스 메서드와 관련없는 작업을 하는 메서드다.

      메서드 내에서 인스턴스변수를 사용할 수 없다.

      → 앞으로 메서드 내에서 인스턴스 변수를 사용하지 않는다면 static을 붙이는걸 생각해보자.

  2. 인스턴스 메서드

    : 인스턴스 생성 후, '참조변수.메서드이름()'으로 호출한다.

      인스턴스 변수나 인스턴스 메서드와 관련된 작업을 하는 메서드

      메서드 내에서 인스턴스 변수 사용 가능.

 

class MyMath2 {
    long a, b;
    long add() {
        return a + b;
    }
    static long add(long a, long b) {
        return a + b;
    }
}

class MyMathTest2 {
    public static void main(String[] args) {
        MyMath2 mm = new MyMath2();
        mm.a = 200L;
        mm.b = 100L;
        System.out.println(mm.add());
    }
}

<클래스 메서드 사용시 주의사항>

 - 같은 클래스의 멤버 끼리는 객체 생성이나 참조변수 없이 참조할 수 있으나 static 멤버들은 인스턴스 멤버들을 참조할 수 없음

class TestClass {

    int iv;
    static int cv;
    
    void instanceMethod() {}
    static void staticMethod() {}
    
    void instanceMethod2() {
        instanceMethod();
        staticMethod();
    }
    
    static void staticMethod() {
        System.out.println(iv); //Error!
        System.out.println(cv);
    }
    
    static void staticMethod2() {
        instanceMethod(); //Error!
        staticMethod();
    }
}

 

<메서드 오버로딩 (Method Overloading)>

  - 메서드 오버로딩: 하나의 클래스에 같은 이름의 메서드를 여러 개 정의하는 것

 

  - 조건

   1) 메서드의 이름이 같아야 한다.

   2) 매개변수의 개수 또는 타입이 달라야 한다.

   3) 리턴타입은 관계없다.

 

  - System.out.println() 메서드의 오버로딩

void println()
void println(boolean x)
void println(char x)
void println(char[] x)
void println(double x)
void println(float x)
void println(int x)
void println(long x)
void println(Object x)
void println(String x)

 

- 메서드 오버로딩의 예

  1) 매개변수의 타입이 다른 경우

  2) 매개변수의 개수가 다른 경우

  3) 리턴타입이 다른 경우

'공부 > JAVA' 카테고리의 다른 글

[JAVA] 변수  (0) 2020.07.05
[JAVA] 생성자  (0) 2020.07.04
[JAVA] 클래스와 객체  (0) 2020.07.04
[JAVA] 조건문과 반복문  (0) 2020.07.04
[JAVA] 자바 개요  (0) 2020.07.04
Comments