2013년 6월 26일 수요일

(130626) 3일차 MethodInvoke.java (Method 호출 방법)


 - Method 호출 방법 : 외부클래스 호출, 내부클래스 호출
 - 외부클래스 호출
 : Static Method (객체를 생성하지 않고 호출이 가능. Heap영역에 올려놓지 않고 바로 사용한다. - main 메소드 또는 데이터를 특별히 저장하거나 보관하지 않아도 되는 것들.) : 클래스명
 : Non-static Method(객체를 보관해야 할 때 Heap 영역에 올려야 함) : 객체 생성
 - 내부클래스 호출
 : Static Method : 클래스명
 : Non-static Method : 객체생성
 - Static과 Non-static 둘 다 모두 객체생성 가능.


 - 소스
import sds1.PublicTest;

public class MethodInvoke {

 public void a(){
  b(); // a와 b메소드는 같은 영역이므로 호출 가능.
  this.b(); // 이렇게 호출도 가능
  MethodInvoke m = new MethodInvoke();
  m.b(); // 이렇게 호출도 가능
 }

 public void b(){ // a와 b메소드는 heap영역이므로 main에서 객체를 붙이지 않고 호출 불가능
  c(); // 일반적인 영역에서는 호출 가능. static 메소드에서 non-static 메소드 호출시에만 객체 생성이 필요.
  MethodInvoke.c(); // 이렇게 호출도 가능.
 }

 public static void c(){

 }

 // 항상 프로그램의 시작은 메인메소드
 public static void main(String[] args){
  // heap 영역에 메소드를 등록하는 것을 객체 생성이라고 부른다.
  MethodInvoke mi = new MethodInvoke();
  mi.a(); // heap 영역에 있으므로 mi를 붙이지 않으면 안됨.

  c(); // static 이므로 객체가 필요없음.
  MethodInvoke.c(); // 이렇게 호출도 가능.

  PublicTest pt = new PublicTest();
  pt.jsp1(); // jsp1()이 public static일 때 객체생성으로 호출
  PublicTest.jsp1(); // jsp1()이 public static일 때 클래스명으로 호출
 }
}