Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 알고리즘
- 상속
- 추상화
- Calendar Class
- 백앤드
- 예외던지기
- 가위바위보프로그램
- 부모 생성자
- AoutoBoxing
- userDefineException
- 국비지원
- 코딩
- 비전공자
- 프로그래머스
- do~while문
- for문
- exception
- 생성자
- 취준생
- 클래스의구조
- 사용자 정의 예외처리
- 개발자
- Date Class
- Java
- super 생성자
- 자바
- 캐스팅연산자
- 예외처리
- 독학
- 개발
Archives
- Today
- Total
유난스런 개발 기록
[JAVA] Day-1 _ instance(인스턴스) 변수와 추상화 본문
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
*/
위와 같은 방법으로 객체를 생성해주고 변수를 설정하여 값을 넣어주면 새로운 사람들의 정보를 입출력할 수 있다.
'개념정리 > JAVA' 카테고리의 다른 글
[JAVA] Day-4 _ 형변환(casting) 연산자 (0) | 2023.01.09 |
---|---|
[JAVA] Day-3 _ 자료형의 종류 (0) | 2023.01.08 |
[JAVA] Day-3 _ 메소드(method)와 생성자(constructor) (0) | 2023.01.07 |
[JAVA] Day-2 _ static변수, instance변수, 지역변수, 멤버변수 (0) | 2023.01.05 |
[JAVA] Day-1 _ class(클래스)의 구조 (0) | 2023.01.02 |