java - 클래스 외부에서 클래스의 변수에 접근하기

imjingu·2023년 8월 15일
0

개발공부

목록 보기
373/481

클래스 외부에서 클래스의 변수(필드)에 접근할 수 있는 방법은 2가지.
Student student = new Student();
1) 바로 접근하는 방법. student.studentName
2) 매서드로 접근하는 방법. student.getStudentName()
자바에서는 보안문제로 2번을 주로 사용하게 됨

package chapter20230814.student;

public class Student {
	int studentID; // 학번
	String studentName; // 이름
	int grade; // 학년
	String address; // 주소
	/*
	 
	 */
	
	public void showStudentInfo() {
		// 저장된 이름, 주소를 알려줌
		System.out.println(studentName + "," + address); // 이름, 주소
	}
	
	public String getStudentName() { // get 가져오는 것이기 때문에 불러오려면 get을 붙여줘야함, studentName은 string 이기 떄문에 String getStudentName 라고 작성
		// studentName을 반환
		return studentName;
	}
	
	public void setStudentName(String studentName) { // 저장하기 때문에 set을 붙이고 set은 보통 void를 씀
		// studentName을 저장
		this.studentName = studentName;
	}
	
}
package chapter20230814.student;

public class test02 {

	public static void main(String[] args) {
		Student studentAhn = new Student(); // 객체생성
		studentAhn.studentName = "안승연";
		
		//같은 결과가 나옴
		System.out.println(studentAhn.studentName); // 안승연, 1번 방법으로 접근
		System.out.println(studentAhn.getStudentName()); // 안승연, 2번 방법으로 접근

	}

}

package chapter20230814.student;

public class test03 {

	public static void main(String[] args) {
		/*
		 멤버 변수로 접근하는 방법은
		 1) 바로접근
		 2) 메서드를 통한 접근이 가능
		 일반적으로는 메서드를 통한 접근을 사용
		 */
		Student student1 = new Student();
		student1.setStudentName("안연수");
		System.out.println(student1.getStudentName());
		
		Student student2 = new Student();
		student2.setStudentName("홍길동");
		System.out.println(student2.getStudentName());
	}

}

package chapter20230814.student;

public class test04 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*
		 참조 변수 복사
		 */
		
		Student student1 = new Student();
		student1.studentName = "안연수";
		
		Student student2 = new Student();
		student2.studentName = "안승연";
		
		System.out.println(student1); // chapter20230814.student.Student@251a69d7 - @메모리주소
		System.out.println(student2); // chapter20230814.student.Student@7344699f
		System.out.println(student1.getStudentName()); // 안연수
		System.out.println(student2.getStudentName()); // 안승연
		System.out.println();
		// 두 객체가 저장된 주소가 다르나, 물리적으로 다른 주소에 저장이 된걸 알 수 있음,
		// 패키지명.클래스이름@메모리에 저장된 주소
		
		student1 = student2;
		System.out.println(student1); // chapter20230814.student.Student@7344699f
		System.out.println(student2); // chapter20230814.student.Student@7344699f
		System.out.println(student1.getStudentName()); // 안승연
		System.out.println(student2.getStudentName()); // 안승연
		// 객체는 참조타입이라서 주소가 복사됨

	}

}

0개의 댓글