Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

자바(Java) 프로그램의 기본 구조와 핵심 구성 요소 완벽 정리

자바(Java)로 코드를 작성할 때는 반드시 지켜야 할 일정한 규칙과 표준이 있습니다. 예를 들어, 클래스는 변수와 함수(메서드)를 포함하며, 함수는 해당 변수들을 다루는 역할을 합니다. 또한 클래스는 상속을 통해 확장하거나 개선할 수도 있습니다.

자바 프로그램의 기본 구조

import된 패키지 목록;
public class <클래스명>
{
    생성자 (사용자가 직접 정의하거나 암묵적으로 생성됨)
    {
        생성자가 수행해야 할 연산;
    }
    데이터 요소/클래스 멤버 변수;
    사용자 정의 함수/메서드;
    public static void main(String args[])
    {
        클래스 인스턴스 생성;
        기타 연산;
    }
}

자바 프로그램의 실행은 'main' 메서드에서 시작됩니다. main 메서드는 아무 값도 반환하지 않기 때문에 반환 타입이 void이며, JVM 및 외부 코드에서 접근할 수 있어야 하므로 public으로 선언됩니다.

생성자(Constructor)는 미리 정의된 클래스의 객체를 초기화하는 데 사용됩니다. 생성자에는 'final', 'abstract', 'static', 'synchronized' 같은 키워드를 붙일 수 없다는 점에 유의해야 합니다.

반면, 사용자 정의 함수는 특정 작업을 수행하며, 필요에 따라 'final', 'abstract', 'static', 'synchronized' 키워드와 함께 자유롭게 사용할 수 있습니다.

예제 코드

public class Employee
{
    static int beginning = 2017;
    int num;
    public Employee(int i)
    {
        num = i;
        beginning++;
    }
    public void display_data()
    {
        System.out.println("The static value is : " + beginning + "\n The instance value is :"+ num);
    }
    public static int square_val()
    {
        return beginning * beginning;
    }
    public static void main(String args[])
    {
        Employee emp_1 = new Employee(2018);
        System.out.println("First object created ");
        emp_1.display_data();
        int sq_val = Employee.square_val();
        System.out.println("The square of the number is : "+ sq_val);
    }
}

실행 결과

First object created
The static value is : 2018
The instance value is :2018
The square of the number is : 4072324

위 예제에서 Employee라는 이름의 클래스는 여러 속성을 가지고 있으며, 생성자는 클래스의 static 속성인 'beginning' 값을 1씩 증가시킵니다. 'display_data' 함수는 클래스에 저장된 데이터를 화면에 출력하고, 'square_val' 함수는 특정 숫자의 제곱값을 반환합니다. main 메서드에서는 클래스의 인스턴스를 생성한 뒤 각 함수를 호출하며, 그 결과가 콘솔에 순서대로 출력됩니다.

핵심 포인트: static 변수와 인스턴스 변수의 차이

'beginning'처럼 static으로 선언된 변수는 클래스 레벨에서 공유되므로 모든 객체가 동일한 값을 참조합니다. 반면 'num'처럼 일반적으로 선언된 인스턴스 변수는 객체마다 별도의 값을 가집니다. 이 두 변수의 차이를 이해하면 자바 프로그램의 구조와 동작 방식을 더욱 명확하게 파악할 수 있습니다.