-1
좋은 복사 생성자를 만드는 데 문제가 있습니다. 나는 변경 내용을 복사 할 때 변경되지 않는 새로운 PizzaOrderNew
개체를 만들 수 있기를 원합니다. 문제는 내 PizzaOrderNew
인스턴스 변수가 다른 클래스의 모든 개체, 인스턴스 변수, 치즈, 크기, 햄, 페퍼로니뿐만 아니라 일반적인 접근 자 및 변경자가있는 피자입니다. 시도 :복사 생성자와 문제가 있습니다
public PizzaOrderNew(PizzaOrderNew otherPizzaOrderNew)
{
pizza01.setSize(otherPizzaOrderNew.pizza01.getSize());
pizza01.setHam(otherPizzaOrderNew.pizza01.getHam());
pizza01.setCheese(otherPizzaOrderNew.pizza01.getCheese());
pizza01.setPepperoni(otherPizzaOrderNew.pizza01.getPepperoni());
}
하지만 예외입니다.
public PizzaOrderNew(PizzaOrderNew otherPizzaOrderNew)
{
pizza01 = otherPizzaOrderNew.pizza01;
}
을하지만 원래 내가 당신이 NullPointerException
pizza01
때문에이 초기화되지 얻을 같은데요
PizzaOrderNew 클래스를 게시 할 수 있습니까? 예외 클래스에는 어떤 예외가 있습니까? –
두 번째 코드 단편은 "실패"합니다. 실제로 지정하는 것은 객체 자체의 값이 아니라 객체에 대한 참조이기 때문입니다. 즉, 귀하의 사본은 사본이 아닙니다. – tommyo
Dici가 정확합니다. 널 포인터 예외가 발생합니다. Dici의 솔루션을 지금 시험 중입니다. pizza01을 기본값으로 초기화했으며 여전히 NullPointerException을 생성합니다. Dici와 tommyo가 모두 정확하다고 생각합니다. 누락 된 작은 것이 있습니다. 수업에 대해 더 이상 당신이 원하는 정보가 있습니까? 여러분 모두에게 다시 한번 감사드립니다. – user3624385