SMALL
안녕하세요, 코린이의 코딩 학습기 채니입니다.
Java 객체를 예습했던 내용에 대해 실습을 정리한 포스팅입니다.
1) clone메소드를 활용하기
package com.kh.prac5.model.vo;
public class Book {
String title; //책 제목
int price; //가격
String writer; //저자
String publisher;//출판사
public Book() {}
public Book(String title, int price, String writer, String publisher) {
this.title = title;
this.price = price;
this.writer = writer;
this.publisher = publisher;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
@Override
public String toString() {
return "제목 : " + title + ", 가격 : " + price + ", 저자 : " + writer + ", 출판사 : " + publisher;
}
//1. new 연산자
@Override
public Book clone() {
return new Book(title, 0, writer, publisher);
}
}
@run
ackage com.kh.prac5.run;
import java.util.Scanner;
import com.kh.prac5.model.vo.Book;
public class Run {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Book bk = new Book("자바강의", 120000, "api마스터", "KH");
Book copyBk = bk.clone();
System.out.println("바뀌기 전 >> " + copyBk);
System.out.print("책의 가격을 입력 하시오 : ");
copyBk.setPrice(sc.nextInt());
System.out.println("바뀐 후 >> " + copyBk);
}
}
@출력값
바뀌기 전 >> 제목 : 자바강의, 가격 : 0, 저자 : api마스터, 출판사 : KH
책의 가격을 입력 하시오 : 20000
바뀐 후 >> 제목 : 자바강의, 가격 : 20000, 저자 : api마스터, 출판사 : KH
2. Object의 clone()을 활용
package com.kh.prac5.model.vo;
public class Book implements Cloneable{
String title; //책 제목
int price; //가격
String writer; //저자
String publisher; //출판사
public Book() {}
public Book(String title, int price, String writer, String publisher) {
this.title = title;
this.price = price;
this.writer = writer;
this.publisher = publisher;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
@Override
public String toString() {
return "제목 : " + title + ", 가격 : " + price + ", 저자 : " + writer + ", 출판사 : " + publisher;
}
//2. Object의 clone()를 활용 (Cloneable 구현 및 CloneNotSupportedException 예외처리)
@Override
public Book clone() {
Book result = null;
try {
result = (Book)super.clone();
} catch(CloneNotSupportedException e ) {
e.printStackTrace();
}
return result;
}
}
@출력값
바뀌기 전 >> 제목 : 자바강의, 가격 : 120000, 저자 : api마스터, 출판사 : KH
책의 가격을 입력 하시오 : 20000
바뀐 후 >> 제목 : 자바강의, 가격 : 20000, 저자 : api마스터, 출판사 : KH
LIST
'Java > Java 예습' 카테고리의 다른 글
[Java] 자바의 객체 Part.2 실습_4 (0) | 2022.01.27 |
---|---|
[Java] 자바의 객체 Part.2 실습_3 (0) | 2022.01.26 |
[Java] 자바의 객체 Part.2 예습_5 (0) | 2022.01.26 |
[Java] 자바의 객체 Part.2 예습_4 (0) | 2022.01.25 |
[Java] 자바의 객체 Part.2 예습_3 (0) | 2022.01.24 |