본문 바로가기
Java

[Java] Encapsul(캡슐화)

by 엘딘 2022. 4. 10.

캡슐화:

    관련있는 변수와 함수를 하나의 클래스로 묶고 외부에서 쉽게 접근하지 못하게 하는 은닉(정보은닉)

    객체가 제공하는 필드와 메소드를 통해서만 접근 가능

 

메소드 접근 지정자

public: 모든 객체에서 접근 가능

protected: 동일한 패키지 안에서 사용가능, 다른 패키지라도 상속받은 클래스에는 접근 가능

default: 접근제어자가 없는 형태로 동일한 패키지 안에서만 접근 가능

private: 동일한 클래스 안에서만 접근 가능, this를 사용하는 것은 외부에서 접근 불가능, 상속도 안됨

 

 

 

 

 

capsule.java
public class capsule {
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        String Member[][] = {
                {"홍길동", "23", "123-4567", "서울시", "동창" },
                {"성춘향", "19", "145-5678", "남원시", "여사친" },
                {"정수동", "25", "189-1234", "부산시", "선배" }
        };

        // 종이를 3장 준비
        MemberDto member[] = new MemberDto[3];

        // 기입할 수 있도록 준비
        for (int i = 0; i < member.length; i++) {
            member[i] = new MemberDto();
        }

        // 추가
        member[0].setName("짱구");
        member[0].setAge(5);
        member[0].setPhone("123-4567");
        member[0].setAddress("서울시");
        member[0].setContent("조카");

        // 읽어들인다
        System.out.println(member[0].getName());
        System.out.println(member[0].getAge());
        System.out.println(member[0].getPhone());
        System.out.println(member[0].getAddress());
        System.out.println(member[0].getContent());
    }
}
===========================================================
짱구
5
123-4567
서울시
조카

 

MemberDto
public class MemberDto {

	
	private String name;
	private int age;
	private String address;
	private String phone;
	private String content;

	public MemberDto() {		
	}

	public MemberDto(String name, int age, String address, String phone, String content) {
		super();
		this.name = name;
		this.age = age;
		this.address = address;
		this.phone = phone;
		this.content = content;
	}

	public String getName() {
		return name;
	}

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

	public int getAge() {
		return age;
	}

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

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public String getPhone() {
		return phone;
	}

	public void setPhone(String phone) {
		this.phone = phone;
	}

	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}	
}

 

public void setName(String name) {
	this.name = name;
}
public: 어디서든 접근 가능
void: 리턴값이 없음
setName: 메소드 이름
String name: 매개변수
this.name: member클래스 내에 있는 private String name


public String getName(){
	return name;
}
String: 리턴값의 데이터타임
getName: 메소드 이름
return: 리턴
name: member클래스 내에 있는 private String name에 저장되어 있는 값

'Java' 카테고리의 다른 글

[Java] For  (0) 2022.04.10
[Java] File  (0) 2022.04.10
[Java] Continue  (0) 2022.04.10
[Java] Constructor(생성자) - 후에 다시 작성  (0) 2022.04.10
[Java] Casting  (0) 2022.04.10

댓글