유난스런 개발 기록

[JAVA] Day-1 _ instance(인스턴스) 변수와 추상화 본문

개념정리/JAVA

[JAVA] Day-1 _ instance(인스턴스) 변수와 추상화

yourhwan 2023. 1. 3. 01:27

day-1

instance(인스턴스) 변수와 추상화


instance(인스턴스) 변수란?

- instanace 변수는 다른 말로 non static 변수라고도 부르며, 서로 다른 instance 끼리 공유하지 못한다.

- 각자 고유의 instance 내에서만 사용할 수 있다.

- class가 메모리(RAM)에 올라가서 실제 사용 가능한 객체로 되어진 상태를 의미한다.

 

추상화란?

- 여러개의 객체에서 공통된 특징을 묶어 필요한 기능 및 속성만 뽑아내는 것을 말한다.

 

아래 예제는 instance와 추상화를 통해 회원정보를 출력할 수 있는 코드다.


코드를 보면서 실습해보자

만약 쇼핑몰 프로그램을 작성하고자 한다면 여러가지 부품이 필요하다. (회원, 장바구니, 주문내역, 제품목록 등)

여기서 필요로 하는 부품의 실제 도면을 "클래스"라고 볼 수 있다.

public class Member {

	String id; //아이디  leess, eomjh	
	String pwd; //비밀번호 abcd, qwer1234 
	String name; //성명	이순신, 엄정화
	String email; //이메일 leess@naver.com , eomjh@gmail.com
	// id, pwd, name, email 은 공유할 수 없는 변수이므로 instance(인스턴스) 변수라고 부른다.
    // 만약 병원과 관련된 홈페이지를 만든다고 하면 혈액형, 몸무게, 신장, 혈압 등을 인스턴스 변수로 작성할 수 있다.
	
	void showInfo() { // 인스턴스 메소드(method)
		// 	void는 return 타입이 없다는 말이다.
		
		System.out.println("=== 회원정보 ===\n"			// \n은 줄바꿈을 해주는 것이다.	
						+ "1. 아이디 : " + id + "\n"		//  문자열 사이의 + 는 문자열의 결합을 뜻한다.
						+ "2. 비밀번호 : " + pwd + "\n"
						+ "3. 성명 : " + name + "\n"
						+ "4. 이메일 : " + email + "\n" 
				);	// 위의 출력문에서 인스턴스 변수를 불러와 눈으로 볼 수 있게 출력을 해줄 수 있다.
                	// id, pwd, name, email 은 ""를 사용하지 않고 +를 붙여주었는데,
                    // 변수의 경우 ""는 입력할 필요가 없으며 +를 통해 문자열과 이어서 출력할 수 있다.
		
	}
	
}

 

 

// 필드에 만든 변수를 가져와 이순신 이라는 사람의 정보를 입력하고 프린트해보자

		Member lssmbr = new Member(); // 이순신
		// lssmbr 을 Member 클래스의 객체(== 인스턴스)라고 부른다.
        // 위에 있는 코드블럭이 Member 클래스인데 이클립스에서 Member lssmbr = new Member();를 입력하고
        // Member에 커서를 둔 상태에서 F3을 누르면 해당되는 멤버 클래스로 이동할 수 있다.
		
		System.out.println("lssmbr : " + lssmbr);
		//lssmbr : my.day01.Member@aec6354
		//@다음에 나오는 16진수의 값은 메모리(RAM)상의 위치(주소)를 가리키는 것이다.
		
		lssmbr.id = "leess"; // = 은 어떤 값을 어떤 변수에 대입한다(넣어준다)라는 뜻이다.
		lssmbr.pwd = "abcd";
		lssmbr.name = "이순신";
		lssmbr.email = "leess@naver.com";
        
        // 변수를 선언하고 그 변수 속에 해당하는 정보(값)을 넣어주는 코드다.
        // 변수에 넣어준 값은 이 코드블럭 위에 있는 인스턴스 메소드의 출력문을 통해 확인할 수 있다.
        
        /*
        콘솔에 출력 된 정보
        
        lssmbr : my.day01.Member@15db9742
        === 회원정보 ===
	1. 아이디 : leess
        2. 비밀번호 : abcd
        3. 성명 : 이순신
        4. 이메일 : leess@naver.com
        5. 주소 : null
        */

 

위와 같은 방법으로 객체를 생성해주고 변수를 설정하여 값을 넣어주면 새로운 사람들의 정보를 입출력할 수 있다.