scone-lemon

[디버깅 과목평가 대비] JAVA WORKSHOP 3 (CLASS & OBJECT) 본문

ETC./싸피 이모저모 (2021~2022)

[디버깅 과목평가 대비] JAVA WORKSHOP 3 (CLASS & OBJECT)

lemon-scone 2021. 8. 22. 15:21

Book.java

 

변수 접근제어자에 대한 언급이 없어서 private로 선언하지 않았다.

또한 private로 선언되지 않았기 때문에 객체. 를 활용해서 변수에 직접적으로 접근 할 수 있기 때문에 getter나 setter가 필요하지 않다고 생각되어서 getter와 setter를 만들어 주지 않았고 생성자만 만들어 주었다.

기본생성자 이외에도 변수를 포함한 생성자를 선언해주면서 BookTest에서 Book 객체를 만들어줄 때 사용할 수 있도록 만들어주었다.

 

package workshop.java03;

public class Book {
	
	String isbn;
	String title;
	String author;
	String publisher;
	int price;
	String desc;
	
	public Book() {
		super();
	}
	
	public Book(String isbn, String title, String author, String publisher, int price, String desc) {
		super();
		this.isbn = isbn;
		this.title = title;
		this.author = author;
		this.publisher = publisher;
		this.price = price;
		this.desc = desc;
	}
	
	@Override
	public String toString() {
		return isbn + " | " + title + " | " + author + " | " + publisher  + " | " + price  + " | " + desc; 
	}
	
}

 

 

BookTest.java

 

Solution 1,  Solution 2로 나누어서 구현해 보았다. 문제에서 요구하는 방법은 Solution 1이였지만 2로 시도해 보았다.

Solution 1은 Book 객체를 b1, b2 각각 생성해주고 b1, b2 각각 .toString()을 이용해서 출력해 주었다.

Solution 2는 Book 객체를 담는 배열을 만들어서 객체 두개를 생성해서 배열에 넣어주었고 foreach 문을 돌면서 각각 배열 원소들을 출력해 주었다.

package workshop.java03;

public class BookTest {
	public static void main(String[] args) {
		
		// solution 1
		Book b1 = new Book("21424","Java Pro","김하나","jean.kr",15000,"Java 기본 문법");
		Book b2 = new Book("35355","분석설계","소나무","jean.kr",30000,"SW 모델링");
		System.out.println("********************도서목록********************");
		System.out.println(b1.toString());
		System.out.println(b2.toString());
		
		// solution 2
		Book[] books = {
				new Book("21424","Java Pro","김하나","jean.kr",15000,"Java 기본 문법"),
				new Book("35355","분석설계","소나무","jean.kr",30000,"SW 모델링")
		};
		System.out.println("********************도서목록********************");
		for (Book book : books) {
			System.out.println(book.toString());
		}
		
	}
}