Call by reference
- 참조에 의한 호출
- 주소값을 전달
Call by value
- 값에 의한 호출
- 값을 전달
Call by name
- 이름에 의한 호출
- Ex) func();
▽ 예제 코드 1 ▽
public class Exam_01 {
public static void method(int[] arr) {
arr[2] = 100;
}
public static void func() {}
public static void func1(int num) {}
public static void func2(int[] nums) {}
public static int test(int a) {
return 50;
}
public static void main(String[] args) {
int[] arr = new int[] {1, 2, 3, 4, 5};
method(arr); // Heap에 있는 arr 값의 주소값이 전달됨
System.out.println(arr[2]); // 참조에 의한 호출 call by reference
func(); // 이름에 의한 호출 call by name
func1(100); // 값에 의한 호출 call by value
func2(new int[] {1, 2, 3}); // call by reference
int a = 0;
a = test(a);
System.out.println(a);
}
}
가변 인자 매개 변수
- 매개 변수에 몇 개의 개수가 들어갈지 모를 때 사용
- 메서드 안에서는 배열처럼 사용하면 됨
▽ 예제 코드 2 ▽
public class Exam_02 {
public static void func(String... str) { // 가변 인자 매개 변수
// 가변 인자 쓸 때는 배열처럼 사용하면 됨
for(int i = 0; i < str.length ; i++)
System.out.println(str[i]);
}
public static void main(String[] args) {
func("Hello", "world");
}
}
Method Overloading
- 메서드의 이름이 같아도 매개 변수의 종류 또는 개수가 다르면 다른 메서드로 인식함
- 매개 변수 O, 리턴 타입 X
▽ 예제 코드 3 ▽
public class Exam_03 {
// Method Overloading
// 메서드의 이름이 같아도 매개 변수의 종류 또는 개수가 다르면 다른 메서드로 인식함
// 매개 변수 O, 리턴 타입은 X
public static void func() {System.out.println("A");}
public static void func(int num) {System.out.println("B");}
public static void func(int num1, int num2) {System.out.println("C");}
public static void func(double d) {System.out.println("D");}
public static void main(String[] args) {
func();
func(10);
func(10, 20);
func(1.0);
}
}
'자바 - Java > 이론' 카테고리의 다른 글
[Java] Java Programming - 정보 은닉, 멤버 변수, 지역 변수 (0) | 2020.04.02 |
---|---|
[Java] Java Programming - 객체 지향, 클래스 (0) | 2020.04.02 |
[Java] Java Programming - 메서드, String 자료형 메서드 종류 (0) | 2020.04.02 |
[Java] Java Programming - String 값 참조, String 주소 참조 (0) | 2020.04.02 |
[Java] Java Programming - 문자열 입력(Scanner), 반복문(while, for), 제어문(if-else) (0) | 2020.04.02 |