Skip to the content.

- 자바 언어 기초(com.eomcs.lang)

- 실습 프로젝트 : mini-pms(프로젝트 관리 시스템)

- 학습 목표 달성 확인 목록

- [] 메서드를 정의하고 사용할 수 있는가?

public static 리턴타입(자료형 또는 void) 메소드명(){
...
return;//리턴 타입이 void일 경우 return이 없다.
}

- [] 파라미터와 아규먼트에 대해 설명할 수 있는가?

매개변수는 실제 값이 존재하지 않고 형태를 나타내는 것을 말한다.

즉,매개변수는 실제로 메모리에 할당되어 있지 않은 변수,텅빈 하나의 박스(공간)

아규먼트는 매개변수에 대입하는 값

즉,실제로 메모리에 할당된 변수라는 것이다.

- [] call by value 와 call by reference에 대해 예제를 들어 설명할 수 있는가?

예제로 설명하겠다.

public class Exam {
    static void swap(int a) {
        System.out.println(a);
    }

  public static void main(String[] args) {
     int a = 100;
     swap(a);
  }
}

아큐먼트가 int a 처럼 원시타입인 경우

메서드를 호출할 때 값 자체를 넘긴다.(주소x)

public class Exam {
    static void swap(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }

    public static void main(String[] args) {
        int[] arr = {100, 200};
        swap(arr);
    }
    }

배열같은 레퍼런스 타입의 경우엔 값이 아닌 해당 주소값을 전달받아 

메서드를 호출한다.

- [] 클래스 문법의 용도를 설명할 수 있는가?

사물 하나 하나를 기능별로 묶어서 사용하는 것,

각 클래스 안에서 역할에 따라 각 클래스의 기능을 서술해 나간다.

사람에 따라 같은 프로그램을 만들더라도 여러가지 관점으로 만들 수 있다.

- [] 역할에 따라 메서드를 분류하여 클래스로 정의할 수 있는가?

현재 필자가 만들고 있는 배달메뉴 서비스이다.

%[https://gist.github.com/osk2090/aa48085f8ea0dd1ce4f9856c49c3ab0f]

- [] 클래스에 등록된 메서드를 호출할 수 있는가?

위의 코드에서 가져와보면

            if (choice == 1) {//한식
                Korea.koreaF(choice);
            } else if (choice == 2) {//일식
                Japan.japanF(choice);
            } else if (choice == 3) {//중식
                China.chinaF(choice);
            } else if (choice == 4) {//양식
                West.westF(choice);
            } else if (choice == 5) {//디저트
                Dessert.dessertF(choice);
            } else if (choice == 0) {
                Basket.basket();
            } else {
                System.out.println("없는 메뉴입니다.");
            }

예를 들어

Korea.koreaF(choice);를 참조하자면

Korea는 클래스

koreaF는 해당 클래스에 속한 메서드

choice는 해당 메서드의 아규먼트이다.