반응형
출처 : https://youtu.be/hTHFeUTyIEo
위 영상을 보고 정리하였습니다.
앞서 말하자면
하나의 .class 소스파일 안에는
하나의 class만 작성하는 것이 바람직합니다
그럼에도 알고가는 이유는
하나의 .class 파일 안에 여러 클래스를 적을 수 있다는 사실이 신선하고
알아두면 좋은 기본개념이라는 겁니다.
클래스를 생성하면 이런 형태로 자동으로 만들어집니다.
안에 main()함수를 적고 하면 클래스가 실행되죠.
소스파일명과 동일한 class명을 실행하기 때문입니다
만약에 다른 이름으로 바꿔서 실행하면 해당 클래스를 읽을 수 없습니다.
main class를 변경하고 싶다면 Run Configuration에서 변경할 수 있습니다.
다시 돌아가서
기본적으로 .class 소스파일을 생성하면 접근제한자 public이 붙습니다.
소스파일명과 일치하는 class명만이
public 접근제한자를 가질 수 있습니다
public class가 없거나
소스파일명과 같은 이름의 class만 public라면
하나의 소스파일에 여러 class가 올 수 있습니다
추가로 맨 처음 설명했던
왜 .class 소스파일 하나당 보통 하나의 클래스가 적는 지 설명해보자면
메모리와 상관이 있습니다.
https://yeun-devlog.tistory.com/entry/단순히-정리한-JVM구조와-Memory-static
- class는 Method Area에 저장되어 파일의 실행과 끝을 함께 합니다.
- 하지만 class 안의 non-static 함수를 사용하려면 인스턴스화해서 heap에 저장되게끔해야 사용할 수 있습니다.
- 인스턴스화 하려면 어차피 class 호출은 불가피 하니 굳이 하나의 .class 소스파일안에 적을 필요가 없죠.
만약 하나의 .class 소스파일에 여러 클래스를 적어서 사용한다면 이렇게 될 겁니다.
반응형
'☕ 자바 JAVA > ☕ 클래스와 함수 Class & Method' 카테고리의 다른 글
[JAVA]오버로딩 Overloading (0) | 2023.10.03 |
---|---|
[JAVA]Method의 Return문이란 (0) | 2023.09.17 |
[JAVA]Method 메서드란(+ 함수와의 차이, BlackBox란) (0) | 2023.09.10 |
[JAVA]클래스 Class 정의 (0) | 2023.08.20 |
[JAVA]클래스와 객체(with 기능, 속성) (0) | 2023.07.23 |