본문 바로가기

복습 및 이해

클래스와 객체의 이해

1. 책에 대한 클래스를 만들어준다 (클래스 = 설계도면)

ex) 책에 대한 클래스 (책 설계)
생각해보자.
책이라는 객체는 제목이 있을 수도 있고, 작가가 있을 수도 있고, 년도와 페이지 수를 가질 수 있다

String title; // 책 제목
String author;  // 책 작가
int publishYear;  // 책 만든 년도
int totalPage; // 총 페이지 수

Book이라는 클래스 이름으로 설계를 했다
public class Book {

String title;
String author; 
int publishYear; 
int totalPage;

}

* 클래스는 대문자로 시작하는 것이 좋다

package exercise2;

public class Book {

	String title;
	String author;
	int publishYear;
	int totalPage;
	
}// end of class

 




2. 설계 도면을 이제 실제로 만들어 보자 (클래스 인스턴스화) - 스택, 힙 메모리에 올라감

Book book1 = new Book(); // 객체 생성
Book book2 = new Book(); // 객체 생성

대입 연산자라서 new Book 을 먼저 찾아감 (미리 만들어둔)

Book 박스만 만들어둔 상태인데 생성자를 만들어줌으로서 Book 안에 있는 클래스(객체)들이 heap메모리로 올라감

클래스를 인스턴스화 후 값을 넣지 않고 sysout(출력하면 주소값만 나옴)

값을 넣지 않고 바로 출력후 주소값이 나온 콘솔창

 




3. 생성된 heap 메모리에 속성값 넣기

기존에 생성해둔 book 설계
String title;
String author; 
int publishYear; 
int totalPage;

book1.title = "오늘은 금요일";
book1.author = "홍길동";
book1.publishYear = 2024;
book1.totalPage = 365;

 




4. 속성값 출력하기
System.out.prinln(book1.title);
System.out.prinln(book1.author);
System.out.prinln(book1.publishYear);
System.out.prinln(book1.totalPage);

package exercise2;

public class BookTest {
	
	public static void main(String[] args) {
		
		// 인스턴스화 
		Book book1 = new Book();
		Book book2 = new Book();
		
		book1.title = "오늘은 금요일";
		book1.author = "홍길동";
		book1.publishYear = 2024;
		book1.totalPage = 365;
		
		System.out.println(book1.title);
		System.out.println(book1.author);
		System.out.println(book1.publishYear);
		System.out.println(book1.totalPage);
		
	}// end of main

}// end of class

콘솔창 결과값

728x90