본문 바로가기
JAVA

JAVA(자바빈즈(Java Beans), 은닉성, 상속성)

by 글로리. 2020. 6. 9.

자바빈즈(JavaBeans)

  • 자바 언어에서 사용하는 복합적 데이터 표현의 최소단위로서, 재사용 가능한 컴포넌트(구성요소)생성가능.
  • 자바빈즈 클래스로서 작동하기 위해, 객체 클래스는 명명법, 생성법 그리고 행동에 관련된 일련의 관례를 따라야 하다.
    이러한 관례는 (빌더 형식의) 개발 도구에서 자바빈즈와의 연결을 통해 클래스의 사용과 재사용 그리고 클래스의 재배치를 가능하게 한다
  • 지켜야 할 관례
    - 클래스는 생성자를 가지고 있어야 함.
    - 클래스의 속성들은 get,set 혹은 표준 명명법을 따르는 메서드들을 사용해 접근할 수 있어야 한다.

은닉성

  • 멤버변수나 메서드가 객체에 노출되지 않도록 설정<
  • 실수로 인한 기능의 오작동을 방지하기 위해, 클래스의 일부를 숨기는 처리

적용방법

접근한정자 설명
public 모든곳에서 접근가능.
일반적으로 모든메서드 앞에 명시
private 클래스 안에서만 사용가능, 객체를 통한 접근 불가
일반적으로 모든 멤버변수 앞에 명시
protected 클래스 내에 다른자원이나 패키지내에 존재하는 클래스와 하위 클래스에서 접근가능. 잘 사용하지 않음.
default 접근 한정자를 명시하지 않은 경우. 클래스 내의 다른자원이나 동일 패키지내의 다른클래스에서 접근가능. 잘 사용하지 않음

getter, setter

  • getter, setter는 은닉된 멤버변수에 간접적으로 접근하기 위하여 정의된 메서드들을 의미하는 용어

Getter : 은닉된 멤버변수의 값을 리턴하기 위한 메서드
Setter : 파라미터로 전달된 값을 멤버변수에 복사하기 위한 메서드

메서드 작성 예

멤버변수 이름 getter setter
String userName String getUserName() void setUserName(String 파라미터)
int userAge int getUserAge() void getUserAge(int 파라미터)

멤버변수 은닉처리

  • 거의 대부분의 멤버변수는 은닉처리를 기본으로 함.

class Student {
    // 멤버변수 은닉
    private String name;
    private int age;

    // 은닉된 멤벼변수에 값 대입 --> 메서드 사용

    public void setName(String name) {this.name = name;}
    public String getName() {return name;}

    pulbic void setAge(int age) {this.age = age;}
    public int getAge() {return age;}
}

public class Main01 {
    public static void main(String[] args) {
        Student st = new Student();
        st.setName("학생");
        st.setAge(27);

        String name = st.getName(); 
        System.out.println("이름 :" + name);

        int age = st.getAge();
        System.out.println("나이 :" + age);
    }
}



클래스에 접근 한정자를 지정한경우

접근 한정자 설명
public 객체 성성이 가능.
다른소스코드에 정의된 클래스끼리도 객체생성 가능.
private 클래스 적용 불가
protected 클래스 적용 불가
default 동일한 소스코드에 정의된 클래스끼리만 객체생성 가능.
(지금까지의 예제형태)

클래스의 분리

  • 하나의 소스코드에서 프로그램의 모든 기능을 구현하면 유지보수에 비효율적이므로 기능단위로 소스코드 분리.
  • 소스코드가 분리된 클래스끼리는 public이 명시되어야만 서로 객체생성 가능.
  • 일반적으로 클래스 정의에는 public만 사용한다.
  • 하나의 소스코드에는 오직 하나의 public만 존재 가능.

'JAVA' 카테고리의 다른 글

JAVA(객체형변환, 객체배열)  (0) 2020.06.10
JAVA(상속성, 다형성)  (0) 2020.06.09
JAVA(클래스, 객체, 생성자)  (0) 2020.06.04
JAVA(재귀함수)  (0) 2020.06.04
JAVA(값 복사 / 참조 복사)  (0) 2020.06.03

댓글