Java 언어는 C++ 언어 처럼 객체지향(obeject oriented) 언어이므로 함수(function)라는 개념이나 용어보다 메소드(method)라는 개념이나 용어를 더 많이 쓴다.
동적으로(dynamically) 생성되어 힙(heap) 메모리에 존재하는 객체(obeject)에 소속되는 메소드가 아니라 클래스 자체에 소속되어 정적 메모리에 존재하는 메소드는 정적(스태틱, static) 메소드라고 한다. Java 언어에서 static 선언자를 붙여서 메소드를 정의하면 static 메소드가 된다. Java 언어의 static 메소드는 메모리 상에서의 그 동작이 C 언어의 함수의 것 비슷하다고 보면 된다.

Java 언어의 메소드 정의 구문 양식과 for 반복문 양식은 C/C++의 것과 유사하다.
다른 점은 접근 혀용 법위 선언자(public, private 등), 메모리 상의 존재 여부 선언자(static)을 붙여서 정의하기도 한다는 것이다.

Java 언어의 메소드 정의 구문 양식은

       [public/private 등] [static] type methodName(parameters) {
             block
       }

이다.

또 Java 언어의 for 반복문 양식은

       for (varName = initialValue; condition; replicator) {
             block
       }

이다.



소스 파일명: ForTest.java
------------------------------[소스 시작]
public class ForTest {

  // static 메소드로 선언되었으므로 main 메소드에서 이 메소드를
  // 객체 생성 없이 직접 호출할 수 있다.
  public static void printDan(int dan) {
    for (int i = 1; i < 10; i++) {
      System.out.println(dan + " x " + i + " = " + (dan*i));
    }
  }

  // C 언어의 main 함수에 준하는 Java 언어의 main 메소드
  public static void main(String[] args) {
    printDan(2);    // static 메소드 printDan()을 호출한다.
  }
}
------------------------------[소스 끝]

컴파일> javac -d . ForTest.java

(참고: 에러 없이 컴파일이 순조롭게 끝나면 현재 디렉토리에 ForTest.class라는 클래스 파일이 존재할 것이다.)

실행> java ForTest
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
2 x 4 = 8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18



소스 파일명: ForTestObject.java
------------------------------[소스 시작]
public class ForTestObject {

  // static 선언자가 없으므로 이 메소드는
  // 다른 static 메소드에서는 직접 호출되지 않는다.
  // 반드시 생성된 ForTestObject 객체를 거쳐서 호출된다.
  public void printDan(int dan) {
    for (int i = 1; i < 10; i++) {
      System.out.println(dan + " x " + i + " = " + (dan*i));
    }
  }

  // C 언어의 main 함수에 준하는 Java 언어의 스테틱 main 메소드
  public static void main(String[] args) {
    ForTestObject app = new ForTestObject();  // 객체를 생성한다.
    app.printDan(2);    // 객체에 속하는 메소드 printDan()을 호출한다.
  }
}
------------------------------[소스 끝]

컴파일> javac -d . ForTestObject.java

(참고: 컴파일이 순조롭게 끝나면 현재 디렉토리에 ForTestObject.class 라는 클래스 파일이 존재할 것이다.)

실행> java ForTestObject

(참고: 실행 결과는 java ForTest 로 실행한 결과와 같다.)





Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

Posted by Scripter
,