본문 바로가기
Programming/JAVA(eclipse)

java 6일차_ 02. 메서드

by yoon9i 2024. 3. 15.

4. 메서드(method)
1) 클래스 구성요소 역할

    public class 클래스명 {

// 인스턴스 변수: 객체의 속성을 저장하는 용도
           ``this. ``변수 가능. ( 일반적으로는 this 생략 )
           직접 접근 방지 위해서 private 로 지정한다.
                        ex) private int age;

// 생성자: 인스턴스 변수의 초기화 용도. 
              오버로딩( overloading 가능)
 this( 값, ... ) 이용해서 다른 생성자도 호출가능.
 ex) public cat( int age ) {
    
this.age = age;

      }

// 메서드: 다양한 기능처리 용도. 
지금은 age 라는 인스턴스 변수를 
수정 또는 조회하는 역할로 메서드를 작성할 것이다.
    }

2) 메서드 문법
[ ] -> 옵션
- 문법:
// 메서드
public 리턴타입 메서드명( [변수, 변수, ...] ) {
      
   문장1;
   문장2;
   [ return 값; ] // 리턴값
}

// 생성자 - 
public 클래스명( [변수, 변수, ...] ) {
   문장1;
}

생성자와 차이점:
- 리턴타입을 반드시 지정해야 한다.
- 리턴값을 가질수 있다.
- 메서드명은 임의로 지정가능
 ( 생성자는 반드시 클래스명으로 지정해야된다. )

생성자와 공통점:
- 반드시 호출해야된다.

가. 생성자 호출방법
a. 다른 클래스에서 호출
- new 클래스명( );

b. 자신이 호출
- this( );

나. 메서드 호출방법
- 인스턴스 변수와 ( 인스턴스 ) 메서드는 우선 인스턴스화가 되어야 한다.
  따라서 객체생성후 메서드를 호출할 수 있다.

* 메서드 특징
- 메서드명은 사용자 정의 식별자이기 때문에 임의로 지정 가능
  ( 권장은 동사형, 소문자 )
- 반드시 호출해야 된다.
- 호출후 수행이 끝나면 호출한 곳으로 반드시 돌아온다.

ex)

    Cat c = new Cat( ); 
    // ->  heap 메모리에 인스턴스 변수 와 인스턴스 메서드가 생성됨
    c.메서드( [값, 값, ...] ); // 객체생성후 ' 참조변수.메서드( ) ' 형식 사용.


3) 메서드 형태 ( 파라미터가 있거나 없거나 또는 리턴값이 있거나 없거나 )

가. 파라미터x , 리턴값 x
문법:

public 리턴타입 메서드명 ( ) {
     문장;
}

ex)
public class Util {
  public void method1( ) {
     System.out.println( "method1" );
  }
}

사용방법: 
Util u = new Util ( );
u.method1( );

나. 파라미터 o, 리턴값x
문법:

public void 메서드명 ( 변수,.... ) {
     문장;
}

ex)
public class Util {
  public void method2( int n ) {
     System.out.println( "method2" + n );
  }

  public void method3( int n, int n2 ) {
     System.out.println( "method3" + n + "\t" + n2 );
  }
}

사용방법: 
Util u = new Util ( );
u.method2( 10 );
u.method3( 10, 20 );

 

package exam09_클래스4_method;

public class Util {

	// 1. 파라미터 x , 리턴값 x
	// 반드시 리턴타입은 void 로 명시해야된다.
	public void method1() {
		System.out.println("method1");
	}

	// 2. 파라미터 o, 리턴값 x
	public void method2(int n) {
		System.out.println("method2 " + n);
	}

	public void method3(int n, int n2) {
		System.out.println("method3 " + n + "\t" + n2);
	}
}
package exam09_클래스4_method;

public class TestUtil {

	public static void main(String[] args) {

		Util util = new Util(); // 객체 생성
		// 메서드(파라미터x, 리턴값x) 호출
		util.method1();

		// 메서드(파라미터 o, 리턴값 x) 호출
		util.method2(10);
		util.method3(10, 20);
	}

}