Yeon93
1k
2019-12-03 12:54:32 작성 2019-12-03 13:13:46 수정됨
2
119

클래스랑 메서드에 관해서 질문드립니다...!!


클래스를 메서드를 공부했는데, 예외처리 하다가 갑자기 또 머리속이 헷갈립니다.



public class MyClass {
  public static void checkAge(int age) {
      if (age < 18) {
          throw new ArithmeticException("Access denied");
      } else {
          System.out.println("Access granted");
      }
  }
  public static void main(String[] args) {
      MyClass haha = new MyClass();
      checkAge(15);
  }
}


public class MyClass {
  static void checkAge(int age) {
      if (age < 18) {
          throw new ArithmeticException("Access denied");
      } else {
          System.out.println("Access granted");
      }
  }
  public static void main(String[] args) {
      checkAge(15);
  }
}




위 두개의 코드가 결과값이 같습니다.


MyClass는 클래스명

static void checkAge(int age)는 메서드 생성


그러면 public static void main(String[] args) 는 뭘 의미하는건가요?

만들었떤 메서드를 부르는 것인가요?


여기서 MyClass를 초기화 시키지 않았는데도 실행되는 이유가 뭔가요?

0
0
  • 답변 2

  • aksjm2
    718
    2019-12-03 13:01:58

    ## 위 두개 코드는 결과가 같을 수 밖에 없습니다.

    둘다 MyClass 내부의 checkAge Method 호출방식이구요.
    Class를 활용하려면, 아래 코드를 서로다른 파일에 작성하여 처리합니다.

    public class MyClass{
        public void checkAge(int age){
            if(age<18){
                throw new ArithmeticException("Access Denied");
            }else{
                System.out.println("Access granted");
            }
        }
    }
    
    
    public class Main{
       public static void main(String[] args){
          MyClass my = new MyClass();
          try{
                my.checkAge(15);
          }catch(ArithmeticException){
              //TO-DO Error 처리
          }
       }
    }

    ## public static void main(String[] args)

    JVM : java virtual machine 에서 프로그램의 시작을 의미하는 함수로, main을 사용합니다.

    ## MyClass를 초기화 시키지 않아도 실행되는 이유
    public static void checkAge()

    static method 이기때문에, 최초 컴파일시 static 영역(memory) 에 method가 올라가 있어서.
    내부 함수이므로 초기화 하지 않고 사용 가능합니다.

    1
  • Yeon93
    1k
    2019-12-03 13:15:28

     aksjm2 /// 답변 감사드립니다!

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.