강의 내용
[1] 새로운 자료형을 사용하는 방법
[2] 객체를 생성하는 방법(실습)
[1] 새로운 자료형을 사용하는 방법
Q. 책이라는 자료형을 만들었다면 변수에 책(Object) 데이터를 어떻게 저장해야 할까?
(1) 변수를 선언
Book b;
변수를 선언하면 기억 공간이 만들어짐
(2) 객체를 생성(실체를 만듦)
new Book();
실체를 만드는 과정(객체를 메모리에 생성)
*현실 세계(책) : 실체로 존재
*자바 프로그램(책) : 책과 똑같은 형태의 구조가 메모리에 만들어져야 함
[□□□□□□] // 6개의 변수로 된 하나의 객체
메모리에 만든 자료형(책을 메모리 구조로 표현)
데이터를 넣으려면 메모리에 기억 공간이 실제로 존재해야 함
만들어 놓은 클래스(설계도)를 실제 메모리에 객체로 만들어야 함
*new : 생성 연산자(객체를 생성하는 연산자, 새로운 객체를 만드는 역할)
*Book() : 생성자 메서드(내부적으로 설계도를 메모리에 만들어주는 역할)
클래스를 갖고 메모리에 뭔가를 만드려면 메모리에 구조를 만드는 작업을 내부적으로 누군가는 해야 함
(3) 생성된 객체를 연결(저장)
b = new Book();
변수에는 하나의 데이터만 넣을 수 있기 때문에 객체 데이터(여러 데이터)를 바로 넣을 수 없음
*변수 : 데이터를 한 개만 저장하는 형태
예) 컵(변수)에 코끼리(객체)를 넣을 수 없음
예) 컵(변수)에 사람(객체)을 넣을 수 없음
직접적으로 넣을 수 없기 때문에 간접적으로 가리켜야 함
변수에 객체(만든 자료형)의 번지(위치)를 넣어 가리키게 하는 것도 일종의 저장
번지는 1개로 된 값이라 변수에 저장 가능
예) 코끼리(객체)
컵(변수)에 코끼리의 위치(번지)를 넣음
변수 = 200번지 // 번지를 찾아가면 객체가 존재하는 형태
객체를 생성해서 생성된 번지를 변수에 넣어 가리키게 하면 데이터를 넣을 수 있게 된다.
만드는 단계에 따라 변수의 이름이 바뀐다.
(1) 변수를 선언 : 인스턴스 변수(참조형 변수) : 실체(인스턴스, instance)를 가리키는 변수
(2) 객체를 생성(실체를 만듦) : 객체 변수 : 객체를 담는 변수(아무것도 가리키지 않는 상태)
[2] 객체를 생성하는 방법(실습)
Q. Book 자료형을 이용하여 책 정보를 저장하고 출력하시오.
public class BookExam { public static void main(String[] args) { // Q. [책] 1권을 저장할 [변수를 선언]하시오. Book b1; b1 = new Book(); // b = 자바, 30000, 한빛, 홍길동, 700, 111111(X) // Q. 한 권의 책 데이터를 저장하기 위해 객체를 생성하시오.(인스턴스를 만드시오) // new Book(); // 객체 생성 // Book b = new Book(); // 생성된 번지를 제 3의 변수에 넣음 Book b2 = new Book(); b2.title = "자바"; b2.price = 30000; b2.company = "패스트캠퍼스"; b2.author = "홍길동"; b2.page = 700; b2.isbn = "1199110"; System.out.println(b2.title + "\t" + b2.price + "\t" + b2.company + "\t" + b2.author + "\t" + b2.page + "\t" + b2.isbn); } }
Q. 한 명의 헬스 클럽 회원 데이터를 저장하고 출력하시오.
// 회원(Object) : 이름, 나이, 전화번호, 이메일, 거주지, 몸무게 -> 모델링 public class Member { public String name; public int age; public String tel; public String email; public String addr; public float weight; }
public class MemberTest { public static void main(String[] args) { // Q. 한 명의 헬스 클럽 [회원] 데이터를 저장하고 출력하시오. Member m; // 실체가 없는 상태 : 데이터를 넣을 수 없음 m = new Member(); // 객체 생성 m.name = "홍길동"; m.age = 30; m.tel = "010-1111-1111"; m.email = "fc@naver.com"; m.addr = "서울"; m.weight = 57.6f; System.out.println(m.name + "\t" + m.age + "\t" + m.tel + "\t" + m.email + "\t" + m.addr + "\t" + m.weight); } }
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/48sS29N