-
▶객체배열 : 객체를 저장하는 배열로 배열의 자료형을 클래스명(사용자 정의 자료형) 으로 지정하여 활용.
◎객체배열 없이 여러개의 객체를 관리할 경우.
먼저 Book Vo(필드, 생성자, 메소드) 를 만들어 준다.
package com.kh.chat01_oneVsmany.model.vo; public class Book { //필드부 private String title; private String author; private int price; private String publisher; //getter / setter public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } public String getPublisher() { return publisher; } public void setPublisher(String publisher) { this.publisher = publisher; } //생성자부 public Book() { } public Book(String title, String author, int price, String publisher) { this.title = title; this.author = author; this.price = price; this.publisher = publisher; } //메서드부 public String information() { return "title : " + title + ", author :" + author + ", price : " + price + ", publisher : " + publisher; } }
1. 기본생성자로 객체 생성 후 setter 메소드를 이용해서 각 필드에 대입.
2. 매개변수 생성자를 통해 객체 생성과 동시에 각 필드에 초기화.
3. 사용자가 키보드로 직접 입력한 정보를 통해 객체를 생성
4. 세개의 Book 객체를 사용자에게 입력받아 따로따로 관리하기.
Book bk1 = null; Book bk2 = null; Book bk3 = null; Scanner sc = new Scanner(System.in); // 3개의 전체 도서정보를 입력받은 후 각 객체에 초기화 시켜두기 for (int i = 0; i < 3; i++) { System.out.print("제목 : "); String title = sc.nextLine(); System.out.print("저자명 : "); String author = sc.nextLine(); System.out.print("가격 : "); int price = sc.nextInt(); sc.nextLine(); System.out.print("출판사 : "); String publisher = sc.nextLine(); if (i == 0) { bk1 = new Book(title, author, price, publisher); } else if (i == 1) { bk2 = new Book(title, author, price, publisher); } else { bk3 = new Book(title, author, price, publisher); } } System.out.println(bk1.information()); System.out.println(bk2.information()); System.out.println(bk3.information()); } }
+간단한 제목으로 검색 기능 추가
◎객체배열을 이용한 도서관리 프로그램
●객체배열 선언과 할당
Book[ ] arr = new Book[3]
1. 객체배열을 이용한 도서관리
3개의 전체 도서 정보를 입력받은 후 각 인덱스에 해당 객체 생성
+ 제목으로 해당 책의 가격 받기
package com.kh.chat01_oneVsmany.run; import java.util.Scanner; import com.kh.chat01_oneVsmany.model.vo.Book; public class ObjectArrayRun { public static void main(String[]args) { //객체 배열을 이용한 도서관리 프로그램 Book[] arr = new Book[3]; Scanner sc = new Scanner(System.in); //3개의 전체 도서 정보를 입력받은 후 각 인덱스에 해당 객체 생성 for(int i =0; i< arr.length; i++) { System.out.print("제목 : "); String title = sc.nextLine(); System.out.print("저자명 : "); String author = sc.nextLine(); System.out.print("가격 : "); int price = sc.nextInt(); sc.nextLine(); System.out.print("출판사 : "); String publisher = sc.nextLine(); arr[i] = new Book(title, author, price, publisher); } for(int i =0; i< arr.length; i++) { System.out.println(arr[i].information()); } System.out.println("검색할 책 제목 : "); String searchTitle = sc.nextLine(); for(int i=0; i<arr.length; i++) { if(arr[i].getTitle().equals(searchTitle)) { System.out.println(arr[i].getPrice()); } } } }
'개발 > 자바JAVA' 카테고리의 다른 글
다형성(Polymorphism) (1) 2024.01.31 상속(Inherit) / 오버라이딩(Overriding) (1) 2024.01.30 메소드(Method) / 오버로딩(Overloading) (1) 2024.01.29 생성자(Constructor) (0) 2024.01.26 접근제한자(public/protected/default/private) (0) 2024.01.26