public일 때 멤버 변수를 선언할 때와 private을 사용할 때?

Java에서 멤버 변수(클래스 속성)는 public 및 private을 포함하여 다양한 액세스 한정자로 선언할 수 있습니다.
다음은 공개 및 비공개 사용에 대한 일반적인 지침입니다.

1. 공개 멤버 변수:
   - 멤버 변수를 클래스 외부에서 직접 접근할 수 있도록 하려면 공개로 선언하면 됩니다.
   - 공용 멤버 변수는 클래스 및 다른 클래스의 인스턴스에서 직접 액세스하고 수정할 수 있습니다.

2. 비공개 멤버 변수:
   - 멤버 변수에 대한 직접 접근을 제한하고 클래스 메서드를 통해 접근 및 수정을 제어하고 싶을 때 비공개로 선언할 수 있습니다.
   - Private 멤버 변수는 클래스 내부에서만 접근 및 수정이 가능하며, 클래스 외부에서 직접 접근할 수 없습니다.

멤버 변수를 private로 선언함으로써 객체지향 프로그래밍의 중요한 원칙 중 하나인 캡슐화(Encapsulation) 개념을 구현할 수 있다.
캡슐화는 클래스의 내부 구현 세부 정보를 숨기고 클래스에 대한 제어된 액세스를 제공하며 데이터 보안 및 일관성을 보장합니다.

일반적으로 클래스 멤버 변수를 비공개로 선언하고 공개 getter 및 setter 메서드를 통해 이러한 변수에 액세스하고 수정하는 것이 좋습니다.
이것은 클래스의 캡슐화를 유지하여 내부 구현 세부 사항을 직접 노출하지 않고도 더 큰 제어 및 유연성을 제공합니다.

예를 들어 다음 예를 고려하십시오.

```java
public class Person {     private String name; // 전용 멤버 변수

    public String getName() {         return name; // 공개 getter 메소드     }

    public void setName(String newName) {         name = newName; // 공개 setter 메서드     } } ```



위의 예에서는 직접 액세스를 방지하기 위해 name 멤버 변수를 private로 선언했습니다.
public getter 메소드 `getName()`과 setter 메소드 `setName()`을 통해 클래스 외부에서 name 값에 안전하게 액세스하고 수정할 수 있습니다.

이는 일반적인 지침일 뿐이며 특정 상황은 다를 수 있다는 점에 유의하는 것이 중요합니다.
요구 사항 및 설계 목표에 따라 멤버 변수를 공용으로 선언해야 하는 경우도
있지만 대부분의 경우 캡슐화 및 데이터 보안을 유지하기 위해 전용을 사용하십시오.

추천

출처blog.csdn.net/qq_20936333/article/details/131444850