cbw1030
기록하는 공간
cbw1030
전체 방문자
오늘
어제
  • 전체보기 (101)
    • Programming (99)
      • Java (19)
      • Servlet (10)
      • Spring Framework (13)
      • Javascript (22)
      • AWS (2)
      • 네트워크 (8)
      • 데이터베이스 (13)
      • 리눅스 (3)
      • 블록체인 (7)
      • 용어 정리 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • react
  • Brightics AI
  • 브라이틱스 스튜디오 사용법
  • 데이터분석
  • beautifulsoup
  • Brightics
  • 인공지능
  • 크롤링
  • 데이터 사이언스
  • 차원축소
  • 브라이틱스 튜토리얼
  • 머신러닝
  • 브라이틱스
  • Brightics Studio
  • 삼성SDS 브라이틱스
  • javascript
  • 삼성SDS
  • 생활코딩
  • 브라이틱스 스튜디오
  • web

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
cbw1030

기록하는 공간

[JAVA] public class & class 차이
Programming/Java

[JAVA] public class & class 차이

2019. 4. 2. 00:50
반응형

Program.java 라는 이름을 가진 클래스 파일로 예시를 들어보자.

 

Program.java

class Program {
}

문제없이 컴파일이 잘 된다.

위 소스 파일에 아래와 같은 클래스를 하나 더 추가해보자.

class Program {
{

class Program2 {
}

역시나 문제없이 컴파일이 잘 된다.

그렇다면 아래와 같이 수정을 해보자

class Program {
}

public class Program2 {
}

Program2라는 클래스 앞에 public이라는 접근제어자를 붙였더니 이번에는 컴파일 에러가 발생한다.

그럼 아래와 같이 수정을 해보자

public class Program {
}

class Program2 {
}

문제없이 컴파일이 잘 된다.  어떤 차이일까?

위와 같이 컴파일되는 이유는 파일명(Program.java)때문이다. 

자바에는 클래스명 앞에 public이란 접근제어자를 추가하면 그 클래스의 이름은 파일명과 동일해야만 하는 규칙이 있다.

 

그렇다면 왜 이런 규칙을 만들었을까?

보통 이렇게 하나의 자바파일에 여러 개의 클래스를 작성하는 경우에는 하나의 대표 클래스를 지정하고 파일명과 동일하게 하는 것이 코드의 가독성에 도움이 된다고 한다.

 

이제 소스코드를 읽을 때 public 키워드가 붙어있는 class를 보게 된다면 현재 소스코드가 어떤 자바 파일명으로 저장되어 있는지 예상을 할 수 있다. 또한 public 키워드가 없는 경우라면 자바 파일명과 클래스명이 일치하지 않을 수 있다고 생각할 수 있다.

 

반응형
저작자표시 (새창열림)

'Programming > Java' 카테고리의 다른 글

[Java] Log4j에 대해 알아보자  (0) 2019.11.11
[JAVA] 날짜와 시간 다루기(java.time)  (0) 2019.11.09
[JAVA] TCP 통신 소켓 프로그래밍(양방향 통신)  (0) 2019.08.02
[JAVA] TCP 통신 소켓 프로그래밍(단방향 통신)  (0) 2019.08.02
[JAVA] 생성자(Contructor)에 대해 알아보자  (0) 2019.03.30
    'Programming/Java' 카테고리의 다른 글
    • [JAVA] 날짜와 시간 다루기(java.time)
    • [JAVA] TCP 통신 소켓 프로그래밍(양방향 통신)
    • [JAVA] TCP 통신 소켓 프로그래밍(단방향 통신)
    • [JAVA] 생성자(Contructor)에 대해 알아보자
    cbw1030
    cbw1030

    티스토리툴바