Programming/객체 지향 프로그래밍(OOP)

OOP 개념: static과 final 배열

vita12321 2023. 9. 24. 08:00
728x90
반응형

이번 글에서는 객체 지향 프로그래밍(Object-Oriented Programming, OOP)의 핵심 요소 중 하나인 'static final 배열'에 대해 깊게 알아보겠습니다. 이전 글에서는 클래스 변수와 초기화에 대해 배웠으니, 이제 static final 배열에 대해 더 자세하게 살펴보겠습니다.


1. static이란 무엇인가?

 

static Java에서 사용되는 키워드 중 하나로, 클래스 수준에서 작동하는 변수나 메소드를 선언하는 데 사용됩니다. , 해당 변수나 메소드는 클래스의 모든 인스턴스가 공유합니다. 이렇게 클래스 수준에서 공유되기 때문에 인스턴스를 생성하지 않고도 접근할 수 있습니다.


2. static을 사용하는가?

 

static은 여러 가지 용도로 사용됩니다:

 

  • 상태 공유: 같은 클래스의 모든 객체들이 같은 값을 공유할 때 유용합니다. 예를 들어 한 게임 내에서 모든 플레이어가 공유해야 하는 최고 점수 정보를 관리할 때 주로 사용됩니다.

 

  • 메모리 효율성: 동일한 데이터를 모든 인스턴스마다 별도로 저장하지 않고 한 번만 저장하여 메모리를 절약할 수 있습니다.

3. final 배열이란 무엇인가?

 

final 배열은 그 크기와 참조가 변경되지 않는 배열을 말합니다. , 한번 생성된 후에는 그 크기를 변경하거나 다른 배열로 참조를 변경할 수 없습니다. 하지만, final 키워드가 붙어 있다고 해서 그 안의 내용물까지 변경할 수 없다는 의미는 아닙니다. 따라서 final 배열의 각 요소값은 변동될 가능성이 있음을 명심해야 합니다.


4. final 배열을 사용하는가?

 

  • final 키워드를 이용한 상수 선언: 프로그래밍 시 상수 값들을 보관하기 위해서 주로 사용합니다.
  • 값 보호: 프로그램 실행 도중 값이 바뀔 일이 없음으로써 오류 발생 가능성을 줄일 수 있습니다.

5. static final 배열 구현하기

 

Java 언어 기준으로 Student 클래스 내부에 SUBJECTS라는 이름의 private static final String[] 변수를 가지고 있다고 가정합니다. 이 변수는 모든 Student 객체들이 공유하며, 학생들이 수강 가능한 전체 과목 목록을 나타냅니다.

 

예시 코드:

public class Student {

 

    private static final String[] SUBJECTS = {"Math", "Science", "English"}; // Static Final Array

 

    public Student() {

        // constructor

    }

 

    public static String[] getSubjects() {

        return SUBJECTS;

    }

}

 

위 예제에서 `SUBJECTS` 필드는 static final 배열로, 모든 Student 객체들이 이 값을 공유합니다.


6. static final 배열을 통한 데이터 접근

 

static 변수나 메소드에 접근하는 방법은 인스턴스 생성 없이도 클래스 이름을 통해 접근할 수 있습니다. 그러나 final 배열의 경우 내부의 값은 변경 가능하므로 주의가 필요합니다.

 

예시 코드:

Student s1 = new Student();

System.out.println(Arrays.toString(Student.getSubjects())); // "[Math, Science, English]" 출력

7. 주의사항

 

static final 배열을 사용할 때 주의해야 할 몇 가지 사항이 있습니다:

 

final 배열은 참조 자체는 변경할 수 없지만, 그 안에 들어있는 값들은 변경 가능합니다.

정적 변수(static variable)는 모든 인스턴스에서 공유되므로, 한 인스턴스에서 값이 변경되면 다른 모든 인스턴스에서도 그 변경 사항이 반영됩니다.


8. 결론

 

객체 지향 프로그래밍에서 'static' 'final 배열'은 중요한 개념입니다. 이를 통해 상태를 공유하거나 변하지 않아야 하는 값을 관리하는데 유용합니다.

 

하지만, 이러한 기능들을 사용할 때에는 주의사항도 존재합니다. static 변수는 모든 인스턴트 간에 공유되므로 값 변경 시 영향 범위를 잘 이해하고 사용해야 하며, final 배열은 참조 자체만 불변인 것으로 내부 요소값은 변동될 수 있다는 것 등을 명심해야 합니다.

 

객체 지향 프로그래밍의 여러 요소들은 각각의 장단점과 특성이 있으므로 상황에 따라 적절하게 활용하는 것이 중요합니다.'static' 'final 배열'역시 그러한 요소 중 하나이며, 이러한 개념들을 잘 이해하고 활용한다면 보다 효과적인 프로그래밍이 가능할 것입니다.

728x90
반응형

 

728x90
반응형