[질문] 자바 생초보 질문

김영재의 이미지

자바 생초보입니당.
자바에서 하나의 파일에서 한개의 클래스만 정의할 수 있습니까?
그리고 파일명과 정의된 클래스명이 같아야 하는지요?

그렇다면 새롭게 정의한 클래스가 있다하고 그 클래스가 제대로 정의되었는지 테스트 해볼라면 또 하나의 파일을 만들어서 테스트 해봐야 되겠는데 이거 상당히 번거로울 듯 하군요.

다크슈테펜의 이미지

하나의 파일에 여러개 클래스가 존재할수 있습니다.
그리고 메인 함수가 들어가있는 클래스는 파일명과 클래스명이 일치해야 컴파일 됩니다.
우선 클래스 두개를 생성해서 메인함수에서 한번 호출해보심이 좋을 듯합니다만 생각보다는 쉽습니다.C++을 배우셨으면 금방 적용이 가능할겁니다.
아니면 이클립스나 자바관련 툴을 이용해 보시는 것도 좋을 듯합니다.

인생이란게 다 그런게 아니겠어요....? 뭘(?)
http://schutepen.egloos.com

익명 사용자의 이미지

파일하나에는 public 클래스가 하나만 있어야 하고
(이 클래스이름이 파일이름과 일치해야 함) 그 클래스에
main 함수가 있어야 합니다.

impactbar의 이미지

자바 파일 하나에 원하는 만큼? 정의 가능하지만

파일명과 같은 클래스가 있어야 합니다.

또한 추가되는 클래스 위치에 따라 (클래스내부, 메소드내부 등)

약간 용도가 다릅니다.

자세한 것은 클래스 종류 쪽으로 책에서 보시면 많이 나옵니다.

참고로 컴파일 되면 여러 class파일로 나뉘어 집니다.

mr.lee의 이미지

조금 상세히 설명해본다면, (외려 복잡게 해드리는건 아닌지..)

1. class 앞에 modifier가
- public : 다른 패키지에서도 참조가능
- protected : 같은 패키지에서 참조가능. 생략시 protected로 됨
- private : 자기 클래스에서만 참조가능

2. public class 는 파일마다 한개만 있어야 하며(없어도 됨) 이것은 파일명과 일치해야 합니다.

3. inner class 외에는 modifer로 public외엔 사용불가 (생략은 protected로 처리됨)

4. 그러므로 sub class는 protected밖에(modifier 없는상태) 안됨

5. inner class의 객체 생성은 outer 클래스의 객체가 있어야 함

6. main method가 있는 클래스파일 하나만 가지고 클래스테스트 하면 됨

/* file name Test.java */

public class Test { // public 생략가능. 생략시 protected
   SubClass a = new SubClass();
   InnerClass1 b = new InnerClass1();
   InnerClass1.InnerClass2 c = new InnerClass1().new InnerClass2();
   
   public static void main(String[] args) {
      Test t = new Test();  // 객체생성하여
      t.a.m = 5;   // 하고싶은 테스트코드들 실행
      System.out.println(t.a.m);
   }

   // inner class 들 
   protected class InnerClass1 {
      private class InnerClass2 {}
   }
 
}


// sub class 들

class SubClass { // protected 임
   int m;
}

class SubClass2 {}

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.