0. 메소드 3요소 : Return type, Method name, Parameter
1. 메소드의 접근
1) Member Method, Instance Method : 멤버변수와 같은 개념
2) Class Method, Static Method : 클래스변수와 같은 개념
public class MethodTest{ void display(){ //Member Method, Instance Method class SubTest{ class SubTest2{ |
2. Method 호출
1) Call by value
public class MethodTest1{ |
1. 합계를 출력하는 메소드에 시작값과 끝값의 입력을 받아 각각 다른 결과값을 가져올 수 있다. 2. 출력 메소드 역시 입력값에 따라 다른 출력을 가져올 수 있다.
3. Call by value는 Value type이 대상이기 때문에 값복사를 하며, 별도의 공간 2개가 따로 만들어진다. 상대방에게 영향을 주지 않는다. |
2) Call by Reference
public class MethodTest2{ |
생성자의 변수로 주소값을 넘겨준다. |
public class MethodTest3{ |
배열로 받는 방법. |
3)Varargs (Variable Arguments)
public class MethodTest4{ public static void main(String[] args) { method(1,2,3,3,"string",'A',false); //아무거나 넣어도 된다. } static void method(Object ... array){ for (Object obj : array ){ System.out.print(obj + "\t"); } } }
|
Variable Arguments : 메소드에 인자값을 다양하게 (갯수/형) 주어도 메소드에서 입력받을 수 있다. 배열처럼 사용하지만 배열이 아니라는의미인 ... 을 사용하여 모든 형을 Object로 받는다. |
4) Recursive Methods (재귀 함수)
- 굳이 반복문으로 표현 할 수 있는 것을 재귀함수로 사용하지말자. (메모리 사용량 증가)
5) Method Overloading(오버로딩) (메소드 중복정의) //오버라이딩이랑 다르다.
- 메소드의 이름이 같아도 입력 parameter가 다르면 사용 할 수 있다.
public class MethodTest6{ |
6) static Methods
- 생성자 없이 클래스명으로 접근하기위해서
- 왜 main ()는 static인가? : 생성자 없이 바로 main()를 실행하기 위해서.
ps-------------------------------------
-return 은 메소드의 끝을 의미하며, 그 뒤에는 문장이 올 수 없다. 하지만 조건문 속에서는 가능하다.(조건적 return)
static void exampleMethod( ){ |
-String 은 Call by value의 예외이다. (값을 바꿀 수 없다)
'Programming > JAVA' 카테고리의 다른 글
자바 객체지향의 특징2 (상속화) (1) | 2011.03.24 |
---|---|
자바 객체지향의 특징 1(캡슐화,생성자,this) (4) | 2011.03.24 |
자바 배열이란? (2) | 2011.03.24 |
자바 제어문(조건/반복/분기) (2) | 2011.03.24 |
JAVA 문법과 연산자 (2) | 2011.03.24 |