ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 객체배열
    개발/자바JAVA 2024. 1. 29. 17:25

    ▶객체배열 : 객체를 저장하는 배열로 배열의 자료형을 클래스명(사용자 정의 자료형) 으로 지정하여 활용.

     

     

      ◎객체배열 없이 여러개의 객체를 관리할 경우.

     

     

    먼저 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());
    			}
    		}
    	}
    }

     

     

     

     

     

     

     

     

     

Designed by Tistory.