즐거운프로그래밍

[자바] 노트패드++ 정보의 은닉화, private 함수

수수께끼 고양이 2023. 10. 10. 22:27
728x90
반응형

private 함수

 

// 정보의 은닉화
public class MainApp { 
	public static void main(String args[]) {
		Student s1 = new Student(); // 이름 변수(reference = 참조자) 
		// s1.name="brad"; // name을 직접 수정, 직접 접근 방식은 추후에 유지, 보수시 힘들어짐 
		s1.setName("brad"); // 이름 간접 수정, 우회 접근
		// s1.age=24; // 나이를 직접 수정
		s1.setAge(24);
		// s1.height=182.5;
		s1.setHeight(182.5);
		// System.out.println(s1.name); //이름 직접 읽기
		System.out.println(s1.getName()); // 이름 간접 읽기
		// System.out.println(s1.age); // 나이 직접 읽기
		System.out.println(s1.getAge());
		// System.out.println(s1.height);
		System.out.println(s1.getHeight());
		// int i; // 일반 변수		
	}
}

 

 

class Student {
	private String name; // 정보의 은닉화, 직접 읽어오는 건 안됨
	private int age; // age 수정, 읽기 방법 추가하기
	private double height;
	void setName(String name) { // 숨겨져 있는 정보를 함수로 수행함, 간접적으로 접근하는 함수
		this.name=name; // this(객체)가 붙은 애가 속성(속성들은 보통 private)
		}
	String getName() {
		return name;
	}
	void setAge(int age) {
		this.age=age;
		// System.out.println("age 속성은 없어졌습니다.");
		}
	int getAge() {
		return this.age;
		// System.out.println("age 속성은 없어졌습니다.");
		// return -1;
	}
	void setHeight(double height) {
		this.height=height;
	}
	double getHeight() {
		return this.height;
	}
}

 

 

728x90
반응형