객체지향언어 - 주문자의 정보와 주문 내역 객체 구현하기 (2022-07-28)

2022. 7. 29. 00:343층 1구역 - 개발의 장/맨 땅에 JAVA치기

== 키가 180 이고 몸무게가 78 킬로인 남성이 있습니다. 이름은 Tomas 이고 나이는 37세입니다.

 

== 음식점에 배달 주문이 들어왔습니다.

  1. 주문 접수 번호 : 202011020003
    주문 핸드폰 번호 : 01023450001
    주문 집 주소 : 서울시 강남구 역삼동 111-333
    주문 날짜 : 20201102
    주문 시간 : 130258
    주문 가격 : 35000
    메뉴 번호 : 0003

 

 

필자가 구현한 정보

Person.java

package ch08;

public class Person {
	private int height, weight, age;
	private String name;

	public int getHeight() {
		return height;
	}

	public int getWeight() {
		return weight;
	}

	public int getAge() {
		return age;
	}

	public String getName() {
		return name;
	}

	public void setHeight(int height) {
		this.height = height;
	}

	public void setWeight(int weight) {
		this.weight = weight;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public void setName(String name) {
		this.name = name;
	}

	public void personInfo() {
		System.out.println("키가 " + getHeight() + " 이고 몸무게가 " + getWeight() + " 킬로인 남성이 있습니다.");
		System.out.println("이름은 " + getName() + " 이고 나이는 " + getAge() + "세 입니다.");
	}
}

 

Order.java

package ch08;

public class Order {

	private int date, price, date2;
	private String adress, data, num, menu;

	public int getDate() {
		return date;
	}

	public int getDate2() {
		return date2;
	}

	public int getPrice() {
		return price;
	}

	public String getAdress() {
		return adress;
	}

	public String getData() {
		return data;
	}

	public String getNum() {
		return num;
	}

	public String getMenu() {
		return menu;
	}

	public void setDate(int date) {
		this.date = date;
	}

	public void setDate2(int date2) {
		this.date2 = date2;
	}

	public void setPrice(int price) {
		this.price = price;
	}

	public void setAdress(String adress) {
		this.adress = adress;
	}

	public void setData(String data) {
		this.data = data;
	}

	public void setNum(String num) {
		this.num = num;
	}

	public void setMenu(String menu) {
		this.menu = menu;
	}

	public void orderInfo() {
		System.out.println("주문 접수 번호 : " + getData());
		System.out.println("주문 핸드폰 번호 : " + getNum());
		System.out.println("주문 집 주소 : " + getAdress());
		System.out.println("주문 날짜 : " + getDate());
		System.out.println("주문 시간 : " + getDate2());
		System.out.println("주문 가격 : " + getPrice());
		System.out.println("메뉴 번호 : " + getMenu());
	}
}

 

OrderTest.java

package ch08;

public class OrderTest {

	public static void main(String[] args) {
		Person person = new Person();
		person.setAge(37);
		person.setHeight(180);
		person.setName("Tomas");
		person.setWeight(78);
		
		person.personInfo();
		System.out.println();
		
		
	
		Order order = new Order();
		order.setAdress("서울시 강남구 역삼동 111-333");
		order.setData("202011020003");
		order.setDate(20201102);
		order.setMenu("0003");
		order.setNum("01023450001");
		order.setPrice(35000);
		order.setDate2(130258);
		
		order.orderInfo();
	}

}

 

강사의 구현 정보

 

Order.java

package ch08;

public class Order {

	// Date 나 Calendar 객체를 사용할 줄 알면 시간이나 날짜 대한 값은 해당 객체를 사용하면 됩니다.
	// 여기서 숫자에 해당되는 자료형을 String으로 표현한건 0으로 시작될 가능성이 있는 숫자에 해당합니다.
	
	public String orderNumber;
	public String customerPhone;
	public String customerAddress;
	public String orderDate;
	public String orderTime;
	public int price;
	public String menuId;
	
	public void showOrderDetail() {
		
		System.out.println("주문 접수 번호: " + orderNumber);
		System.out.println("주문 핸드폰 번호: " + customerPhone);
		System.out.println("주문 집 주소: " + customerAddress);
		System.out.println("주문 날짜: " + orderDate);
		System.out.println("주문 시간: " + orderTime);
		System.out.println("주문 가격: " + price);
		System.out.println("메뉴 번호: " + menuId);
	}
}

 

OrderTest.java

package ch08;

public class OrderTest {

	public static void main(String[] args) {

		Order myOrder = new Order();
		myOrder.orderNumber = "202011020003";
		myOrder.customerPhone = "01023450001";
		myOrder.customerAddress = "서울시 강남구 역삼동 111-333";
		myOrder.orderDate = "20201102";
		myOrder.orderTime = "130258";
		myOrder.price = 35000;
		myOrder.menuId = "0003";
		
		myOrder.showOrderDetail();
	}

}

 

 

Person.java

package ch08;

public class Person {

	public String name;
	public int age;
	public int height;
	public int weight;
	public String gender;
	
	public void showPersonInfo() {
		System.out.println("키가 " + height + "이고, 몸무게가 " + weight + "킬로인 "+ gender + "이 있습니다.");
		System.out.println("이름은 " + name + "이고, 나이는 " + age + "세입니다" );
	}
	
}

 

PersonTest.java

 

package ch08;

public class PersonTest {

	public static void main(String[] args) {

		Person personT = new Person();
		personT.name = "Tomas";
		personT.age = 37;
		personT.height = 180;
		personT.weight = 78;
		personT.gender = "남성";
		
		personT.showPersonInfo();
		
	}

}

 

강사와 필자의 차이

강사는 person과 order의 객체를 구현할 때 public 자료형을 사용하여 그냥 평범하게 자료를 반환.

 

필자는 Getter와 Setter를 사용하여 객체를 구현, 확실히 깔끔한건 강사의 객체가 깔끔함.

만약 이런 문제라면 getter, setter를 쓰는거 보단 직관적으로 자료형을 시도해보는 것도 나쁘지 않을 듯.