JAVA/JAVA 문법

JAVA : 클래스의 멤버변수에 데이터를 셋팅하는 방법 3가지 (getter/setter 함수)

신강희 2024. 6. 3. 12:06
728x90

< 클래스의 멤버변수에 데이터를 셋팅하는 방법

3가지 (getter/setter 함수) >

 

 

# 자바에서 클래스의 멤버 변수에 데이터를 설정하는 대표적인 3가지 방법

  1. 직접 접근 (Direct Access)
  2. 생성자를 통한 설정 (Using Constructors)
  3. 게터와 세터 메서드를 통한 설정 (Using Getter and Setter Methods)

 

# 이전에 작성한 코드를 그대로 가지고 설명

- 참고 : https://sorktjrrb.tistory.com/183

 

JAVA : this로 사용하는 멤버변수와 접근제어자(Access)

# 자바에서 this 키워드는 현재 객체의 인스턴스를 가리키는 참조 변수로, 주로 인스턴스 변수와 메소드 매개변수를 구분할 때 사용된다. - this 키워드를 사용하면 클래스의 멤버 변수와 메소드를

sorktjrrb.tistory.com

 

# 직접 접근 방법은 Member 클래스에서 멤버 변수를 public으로 선언하고, 객체를 통해 직접 접근하는 방식

- 직접 접근은 보안등의 이유로 권장되지 않는다.

 

# 그러므로 일반적으로 멤버 변수는 'private'로 선언하고, 접근 메서드(게터와 세터)를 사용

- 생성 방법은 private로 멤버 변수를 선언하고 게터,세터 함수를 작성할 위치에 마우스 우클릭

- 소스 > 제너레이트 게터 앤 세터.. 를 선택

- 생성을 원하는 멤버 변수를 선택하면 자동으로 생성해준다.

 

	// 접근제어자는 총 4개
	// 1. 아무것도 안쓰는것 => default : 같은 패키지 내에서만 가능
	// 2. public : 어디서든 접근 가능.
	// 3. private : 어디서든 접근 불가능.
	// 4. protected : 상속관계만 접근 가능.
	
	private String name;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getAddress() {
		return address;
	}
	public void setAddress(String address) {
		this.address = address;
	}
	private String tel;
	private String address;

 

# 이제 Main 클래스에서 생성된 함수를 이용해서 set'변수명' 으로 데이터를 가져올수 있다.

package main;

import model.Member;

public class AccessMain {

	public static void main(String[] args) {
		// 객체 생성
		// 다른 패키지에 있는 변수를 가져다 쓰기위해서 import 해줘야함 (파이썬과 동일)
		// 다른 패키지에서 public 으로 생성한걸 가져온다.
		Member m1 = new Member();
		
		// 이제 변수를다 private 로 변경하여서 생성이 불가능해짐
		// m1.name = "홍길동";
		// m1.tel = "010-1111-2222";
		// m1.address = "인천 서구 연희동";
		
		// 리소스 에서 게터 세터 생성후 데이터 다시 작성
		m1.setName("홍길동");
		m1.setTel("010-2222-3333");
		m1.setAddress("인천 서구 청라");
		
		
		Member m2 = new Member("김나나", "010-2222-3333", "인천 서구 청라동");
		System.out.println( m2.getName());
	}

}

 

다음 게시글로 계속~!

 

반응형