자바의 소스 코드 구조를 알아보자!
// 패키지 선언
package com.javaTest.test01
// 패키지 가져오기
import java.util.Date;
// 클래스 블록 (Name)
public class Name{
// 메인 메서드 블록
public static void main(String[] args) {
String test = "s";
}
// 메서드 블록
// [ public | private | protected] [static] (리턴자료형|void) 메서드명(자료형 매개변수, ..){}
public static int getNum(){
return 1;
}
}
1. 패키지 선언
Java에서 **패키지(package)**는 클래스와 인터페이스를 그룹화하여 체계적으로 관리하는 기능을 제공한다.
[ 형식 ]
package 패키지이름;
패키지의 장점
- 이름 충돌 방지: 같은 이름을 가진 클래스나 인터페이스가 다른 패키지에 있을 수 있으므로 패키지를 통해 이들을 구분
- 코드 조직화: 관련된 클래스들을 한 패키지에 모아 코드의 가독성과 유지보수를 용이하게 함
- 접근 제어: 패키지를 통해 접근 제어를 할 수 있습니다. public, protected, private 등의 키워드를 사용해 패키지 내에서 접근 가능한 범위를 지정할 수 있음
2. 패키지 불러오기
Java에서 **패키지 불러오기(import)**는 다른 패키지에 정의된 클래스를 사용하기 위해 필요한 기능이다.
[ 형식 ]
// import 패키지이름.클래스이름;
import java.util.Scanner;
// 모든 클래스 불러오기
import java.util.*;
참고로, *을 사용하면 필요하지 않은 클래스까지 모두 불러오므로, 실제로는 필요한 클래스만 명시적으로 불러오는 것이 좋다.
3. 클래스 블록
Java에서 클래스 블록은 클래스의 정의를 감싸는 중괄호 {} 안에 위치한 모든 코드 영역을 의미한다.
클래스 블록 내부에는 클래스의 속성(필드), 메서드, 생성자, 중첩 클래스 등이 정의된다.
[ 형식 ]
class 클래스이름 {
// 필드 (멤버 변수)
// 생성자
// 메서드 (멤버 함수)
// 중첩 클래스 (선택 사항)
}
- 클래스명은 꼭 소스 파일명과 같아야 한다. ex) A.java => public class A { }
클래스 구성 요소
- 필드(Field): 객체가 가지는 속성 또는 상태. 데이터를 저장.
- 예: String model;, int speed;
- 생성자(Constructor): 객체를 초기화. 클래스 이름과 동일한 이름을 가지며, 객체가 생성될 때 호출됨
- 메서드(Method): 클래스가 수행할 동작이나 기능을 정의. 메서드는 함수와 유사하며, 객체의 행위를 나타낸다.
- 중첩 클래스(Nested Class): 클래스 안에 다른 클래스를 정의한다.
4. 메인 메서드 블록
Java 프로그램에서 **메인 메서드(Main method)**는 프로그램이 시작되는 시작점이다. 모든 Java 애플리케이션은 하나의 main 메서드를 가지고 있어야 하며, 프로그램이 실행될 때 가장 먼저 호출되는 메서드다.
[ 형식 ]
public static void main(String[] args) {
// 메인 메서드 블록 내부 코드
}
메인 메서드 블록의 주요 구성
- public: 메인 메서드는 어디서든 호출될 수 있어야 해서 public으로 선언된다. public은 접근 제어자로, 다른 클래스나 패키지에서도 메서드에 접근할 수 있음을 의미한다.
- static: 메인 메서드는 클래스의 인스턴스를 생성하지 않고도 호출될 수 있도록 static으로 선언된다. 프로그램 시작 시 바로 호출되기 때문에 인스턴스 없이 동작해야 한다.
- void: 메인 메서드는 반환 값을 가지지 않기 때문에 반환형을 void로 선언한다.
- main: 이 메서드의 이름은 main으로 고정되어 있다. 자바 가상 머신(JVM)은 프로그램을 실행할 때 반드시 main이라는 이름을 가진 메서드를 찾아서 호출한다.
- String[] args: args는 명령줄에서 입력되는 인자를 받기 위한 배열. 사용자가 프로그램 실행 시 입력한 값을 배열 형태로 받아서 사용할 수 있다.
'코딩 공부 기록 > Java' 카테고리의 다른 글
[Java] 컬렉션 (Collection) 종류 알아보기 (0) | 2024.12.03 |
---|---|
OSGi Framework 란? (기본 개념 이해) (1) | 2024.11.19 |