✅ 답안과 비교하여 스스로 코드 개선점 짚어보기 완료(2022.01.03)
NORMAL2. 모든 필드를 초기화하는 생성자 활용 ✅
printInformation 메소드에서 변수를 this.grade가 아닌 그냥 grade로 쓴다. 어차피 가리키는 값은 전역변수 grade이기 때문이다.
int 다음 String을 스캔 받는 경우 등에는 개행을 위해 입력 받을 값 앞에 scanner.nextLine();를 쓴다.
학년 : 1
반 : 2
이름 : 김자바
키 : 160.5
성별 : 여
package com.greedy.level02.normal.student.dto;
public class StudentDTO {
private int grade;
private int classroom;
private String name;
private double height;
private char gender;
public StudentDTO() {
}
public StudentDTO(int grade, int classroom, String name, double height, char gender) {
this.grade = grade;
this.classroom = classroom;
this.name = name;
this.height = height;
this.gender = gender;
}
/* 설정자(setter) 메소드 */
public void setGrade(int grade) {
this.grade = grade;
}
public void setClassroom(int classroom) {
this.classroom = classroom;
}
public void setName(String name) {
this.name = name;
}
public void setHeight(double height) {
this.height = height;
}
public void setGender(char gender) {
this.gender = gender;
}
/* 접근자(getter) 메소드 */
public int getGrade() {
return grade;
}
public int getClassroom() {
return classroom;
}
public String getName() {
return name;
}
public double getHeight() {
return height;
}
public char getGender() {
return gender;
}
public void printInformation() {
System.out.println("학년 : " + grade);
System.out.println("반 : " + classroom);
System.out.println("이름 : " + name);
System.out.println("키 : " + height);
System.out.println("성별 : " + gender);
}
}
package com.greedy.level02.normal.student.run;
import java.util.Scanner;
import com.greedy.level02.normal.student.dto.StudentDTO;
public class Application {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("학년 : ");
int grade = scanner.nextInt();
System.out.print("반 : ");
int classroom = scanner.nextInt();
System.out.print("이름 : ");
scanner.nextLine();
String name = scanner.nextLine();
System.out.print("키 : ");
double height = scanner.nextDouble();
System.out.print("성별 : ");
char gender = scanner.next().charAt(0);
StudentDTO student = new StudentDTO(grade, classroom, name, height, gender);
student.printInformation();
}
}
NORMAL1. 기본 생성자부터 모든 필드를 초기화하는 생성자 통해 출력하기 ✅
함수 호출하여 출력할 때 System.out.println();에 담지 않고 사용한다.
null, null, null, 0, 0.0
자바의 정석, 도우출판, 남궁성, 0, 0.0
홍길동전, 활빈당, 허균, 5000000, 0.5
package com.greedy.level02.normal.book.model.dto;
public class BookDTO {
private String title;
private String publisher;
private String author;
private int price;
private double discountRate;
public BookDTO() {
}
public BookDTO(String title, String publisher, String author) {
this.title = title;
this.publisher = publisher;
this.author = author;
}
public BookDTO(String title, String publisher, String author, int price, double discountRate) {
this(title, publisher, author);
this.price = price;
this.discountRate = discountRate;
}
/* 설정자(setter) 메소드 */
public void setTitle(String title) {
this.title = title;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public void setAuthor(String author) {
this.author = author;
}
public void setPrice(int price) {
this.price = price;
}
public void setDiscountRate(double discountRate) {
this.discountRate = discountRate;
}
/* 접근자(getter) 메소드 */
public String getTitle() {
return title;
}
public String getPublisher() {
return publisher;
}
public String getAuthor() {
return author;
}
public int getPrice() {
return price;
}
public double getDiscountRate() {
return discountRate;
}
/* 출력 메소드 */
public String getInformation() {
return this.title + ", " + this.publisher + ", " + this.author + ", " + this.price + ", " + this.discountRate;
}
}
package com.greedy.level02.normal.book.run;
import com.greedy.level02.normal.book.model.dto.BookDTO;
public class Application {
public static void main(String[] args) {
BookDTO book1 = new BookDTO();
book1.getInformation();
BookDTO book2 = new BookDTO("자바의 정석", "도우출판", "남궁성");
book2.getInformation();
BookDTO book3 = new BookDTO("홍길동전", "활빈당", "허균", 5000000, 0.5);
book3.getInformation();
}
}
BASIC1. 설정자(setter)와 접근자(getter) 활용 ✅
순서대로 getter를 이용한 초기값 확인, setter를 이용한 필드값 변경, getter를 이용하여 변경된 초기값 확인까지 이어진다.
id : null
pwd : null
name : null
age : 0
gender :
phone : null
email : null
변경 후 id : user01
변경 후 pwd : pass01
변경 후 name : 홍길동
변경 후 age : 20
변경 후 gender : M
변경 후 phone : 010-1234-5678
변경 후 email : hong123@greedy.com
package com.greedy.level01.basic.member.model.dto;
public class MemberDTO {
private String id;
private String pwd;
private String name;
private int age;
private char gender;
private String phone;
private String email;
/* 설정자(setter) 메소드 */
public void setId(String id) {
this.id = id;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public void setName(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
public void setGender(char gender) {
this.gender = gender;
}
public void setPhone(String phone) {
this.phone = phone;
}
public void setEmail(String email) {
this.email = email;
}
/* 접근자(getter) 메소드 */
public String getId() {
return id;
}
public String getPwd() {
return pwd;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public char getGender() {
return gender;
}
public String getPhone() {
return phone;
}
public String getEmail() {
return email;
}
}
package com.greedy.level01.basic.member.run;
import com.greedy.level01.basic.member.model.dto.MemberDTO;
public class Application {
public static void main(String[] args) {
MemberDTO member = new MemberDTO();
System.out.println("id : " + member.getId());
System.out.println("pwd : " + member.getPwd());
System.out.println("name : " + member.getName());
System.out.println("age : " + member.getAge());
System.out.println("gender : " + member.getGender());
System.out.println("phone : " + member.getPhone());
System.out.println("email : " + member.getEmail());
member.setId("user01");
member.setPwd("pass01");
member.setName("홍길동");
member.setAge(20);
member.setGender('M');
member.setPhone("010-1234-5678");
member.setEmail("hong123@greedy.com");
System.out.println("변경 후 id : " + member.getId());
System.out.println("변경 후 pwd : " + member.getPwd());
System.out.println("변경 후 name : " + member.getName());
System.out.println("변경 후 age : " + member.getAge());
System.out.println("변경 후 gender : " + member.getGender());
System.out.println("변경 후 phone : " + member.getPhone());
System.out.println("변경 후 email : " + member.getEmail());
}
}
'Java' 카테고리의 다른 글
[JAVA/수업 과제 practice] 클래스와 객체 Lv. 3~4 (0) | 2021.12.30 |
---|---|
[JAVA] 6-3. 오버로딩, 파라미터, static, final, 싱글톤 패턴 (0) | 2021.12.30 |
[JAVA] 6-2. 객체 지향 언어, 캡슐화, 추상화, 생성자 (0) | 2021.12.29 |
[JAVA] 6-1. 클래스, 사용자 정의 자료형 (0) | 2021.12.29 |
[자바/수업 Quiz] 배열 (0) | 2021.12.28 |