생성자 new

  • 객체를 생성하는 생성자
  • 기능을 호출하는 것이 아니다
  • 객체가 생성될 때 변수나 상수를 초기화하거나 다른 초기화 기능을 수행하는 메서드를 호출한다
  • 생성자는 반환 값이 없고 클래스의 이름과 동일하다
  • 대부분의 생성자는 외부에서 접근 가능하지만, 필요에 의해 private으로 선언되는 경우가 있다

    int String 등은 생성자를 사용하지 않는다
    선언하는 순간 정해진 메모리로 메모리가 할당되기 때문
    객체의 경우 생성자를 사용해서 힙 메모리에 할당해야함

기본 생성자(default constructor)

  • 클래스에는 적어도 하나 이상의 생성자가 존재한다
  • 생성자를 구현하지 않아고 new 키워드를 이용해서 생성자를 호출할 수 있다
  • 클래스에 생성자가 하나도 없다면 컴파일러가 생성자 코드를 넣어준다
  • 매개 변수가 없고 구현부가 없다

생성자 오버로딩

여러가지 생성자를 정의하는 것
디폴트 생성자와 매개변수를 직접 넣어서 생성하는 생성자를 모두 이용 가능

객체 구현하기 실습

  1. 키가 180이고 몸무게가 78킬로인 남성이 있습니다. 이름은 tomas이고 나이는 37세입니다.
  2. 음식점에 배달 주문이 들어왔습니다
    주문 접수 번호 : 202011020003
    주문 핸드폰 번호 : 01023450001
    주문 집 주소 : 서울시 강남구 역삼동 111 - 333
    주문 날짜 : 20221122
    주문 시간 : 110022
    주문 가격 : 25000
    메뉴 번호 : 0003
  • 내가 구현한 코드

Person.java

package ch8_practice;

public class Person {
	
	public String personName;
	public int personWeight;
	public int personHeight;
	public int personAge;
	public String personSex;
	
	public Person(String personName, int personWeight, int personHeight, int personAge, String personSex) {
		this.personName = personName;
		this.personWeight = personWeight;
		this.personHeight = personHeight;
		this.personAge = personAge;
		this.personSex = personSex;
		
	}
	
	public String showPersonInfo() {
		return "키가 " + personHeight + "이고 몸무게가 " + personWeight + "인 " + personSex + "이 있습니다. 이름은 " 
	+ personName + "이고 나이는 " + personAge + "입니다. ";
	}
}

PersonTest.java

package ch8_practice;

public class PersonTest {

	public static void main(String[] args) {
		
		Person personYoo = new Person("Yoo", 55, 170, 23, "여성");
		
		System.out.println(personYoo.showPersonInfo());
	}

}

Order.java

package ch8_practice;

public class Order {
	
	public String orderNumber;
	public String orderPhoneNumber;
	public String orderAddress;
	public String orderDate;
	public String orderTime;
	public String orderPrice;
	public String orderMenu;
	
	public Order(String orderNumber, String orderPhoneNumber, String orderAddress, String orderDate, String orderTime, String orderPrice, String orderMenu) {
		this.orderNumber = orderNumber;
		this.orderPhoneNumber = orderPhoneNumber;
		this.orderAddress = orderAddress;
		this.orderDate = orderDate;
		this.orderTime = orderTime;
		this.orderPrice = orderPrice;
		this.orderMenu = orderMenu;
	}
	
	public String ShowOrderInfo() {
		return "주문 접수 번호 : " + orderNumber + "\n" +
				"주문 핸드폰 번호 : " + orderPhoneNumber + "\n" +
				"주문 집 주소 : " + orderAddress + "\n" +
				"주문 날짜 : " + orderDate + "\n" +
				"주문 시간 : " + orderTime + "\n" +
				"주문 가격 : " + orderPrice + "\n" +
				"메뉴 번호 : " + orderMenu + "\n" ;
	}
}

OrderTest.java

package ch8_practice;

import java.util.Scanner;

public class OrderTest{
	public static void main(String[] args) {
		Scanner scanner = new Scanner(System.in);
		
		System.out.println("주문 번호를 입력하세요");
		String orderNumber = scanner.next();
		System.out.println("주문 휴대폰 번호를 입력하세요");
		String orderPhoneNumber = scanner.next();
		System.out.println("주문 주소를 입력하세요");
		String orderAddress = scanner.next();
		System.out.println("주문 날짜를 입력하세요");
		String orderDate = scanner.next();
		System.out.println("주문 시간을 입력하세요");
		String orderTime = scanner.next();
		System.out.println("주문 가격을 입력하세요");
		String orderPrice = scanner.next();
		System.out.println("주문 메뉴 번호를 입력하세요");
		String orderMenu = scanner.next();
		
		Order order = new Order(orderNumber, orderPhoneNumber, orderAddress, orderDate, orderTime, orderPrice, orderMenu);
		
		System.out.println(order.ShowOrderInfo());	
	}
}
  • Scanner를 이용해서 주문 정보를 입력받아 출력하도록 구현하였다
profile
안녕하세요. Chat JooPT입니다.

0개의 댓글