클래스 메소드

msung99·2022년 2월 14일
0

메소드 선언과 호출

  • 선언 형식

    접근자 반환형 메소드 이름(매개변수) {
    메소드 정의 부분
    }

ex) public(접근자) void(반환형) getInfo(메소드 이름)() {
System.out.println("i="+i); // 메소드 정의
}

  • 메소드도 변수와 같이 선언 및 정의 후 필요시에 호출해서 사용한다.

  • 메소드 호출 방식

ChildClass num1 = new ChildClass( );
num1.ChildClass( );

매개변수

  • 메소드를 호출할 때 데이터를 전달할 수 있다.
public void getInfo(int i, boolean , String s) {
  ...
}

중복 메소드(메소드 오버로딩)

  • 이름이 같고, 매개변수의 개수 또는 타입이 다른 메소드를 만들 수 있다.
  • 파라미터의 타입과 개수를 맞춰서 호출하면 해당하는 메소드를 호출할 수 있다.
public void getInfo(){
  System.out.println("--getInfo - I --");
}

public void getInfo(int x, int y){ 
  System.out.printf("parameter ==> x %d, y : %d\n", x, y);
}

public void getInfo(String s1, String s2){
  System.out.printf("parameter ==> s1 : %s, s2 : %s\n", s1, s2);
}

접근자

  • 메소드를 호출할 때 접근자에 따라서 호출이 불가할 수 있다.

예를들어 클래스 ChildClass 에 private 메소드 mySecret() 을 정의해 놓았을때

  public void info(){
    System.out.println("color:"+color);
    System.out.println("price:"+price);
  }
  
  private void mySecret() {
	  System.out.println("private method - mysSecret");
  }

외부에서 아래와 같이 mySecret() 메소드에는 접근할 수 없다.

// main 함수
public class HelloWorld {
  public static void main(String[] args) {
	 ChildClass child1 = new ChildClass()'
     
     child1.getInfo(); // public 메소드는 접근 가능
     
     child1.mySerect(); // Error => private 메소드는 main 함수 같이 외부에서 
     # 호출이 불가능하다. 
  }

반면 내부에서는 호출이 아래처럼 가능하다.

public void info(){
    System.out.println("color:"+color);
    System.out.println("price:"+price);
    mySecret() // 클래스 내부인 메소드 info() 에서 private 메소드 mySecret 를 호출함 
  }
  
  private void mySecret() {
	  System.out.println("private method - mysSecret");
  }
profile
블로그 이전했습니다 🙂 : https://haon.blog

0개의 댓글