2016-08-06 4 views
-1

나는 완전히 새로운 자바이고 간단한 명령 행 응용 프로그램을 만들려고했지만 너무나 틀린 일을하고있다. 여기에 내 코드슈퍼 클래스에서 유용하게 확장하는 방법

public class Auto1 { 
    private String make; 
    private String model; 
    private int value; 
    private int soldPrice; 
    private int year; 
    private int hp; 


    public Auto1(String make, String model, int value, int soldPrice, int year, int hp) { 
     this.make = make; 
     this.model = model; 
     this.value = value; 
     this.soldPrice= soldPrice; 
     this.year = year; 
     this.hp = hp; 
    } 

    public void setMake(String a) { 
     make = a; 
    } 
    public void setModel(String b) { 
     model = b; 
    } 
    public void setvalue(int c) { 
     value = c; 
    } 
    public void setSoldPrice(int d) { 
     soldPrice = d; 
    } 
    public void setYear(int e) { 
     year = e; 
    } 
    public void setHp(int f) { 
     hp = f; 
    } 
    public String getMake() { 
     return make; 
    } 
    public String getModel() { 
     return model; 
    } 
    public int getValue() { 
     return value; 
    } 
    public int getSoldPrice() { 
     return soldPrice; 
    } 
    public int getYear() { 
     return year; 
    } 
    public void price() { 
     int price = value - soldPrice; 
     if(a >=5000) { 
      System.out.println("You Overpaid"); 
     } else { 
      System.out.println("Fair Price"); 
     } 
    } 
} 

입니다 그리고 나는 "대중"유형의 불법 시작이 분명히 있기 때문에 나는 그것이 저를 허용하지 않습니다 그러나이 코드

public class Auto extends Auto1{ 
    Auto1 auto; 
    public auto = ("Audi","R8",162900,200000,2017,610){} 
} 

을 만들 것이다하는 서브 클래스를 만들려고하고 있어요 객체를 만드는 다른 방법을 모르겠습니다. 죄송합니다.이 사람이 어리석은 소리가 들리더라도 저는 Java에 익숙하지 않습니다.

+1

Java가 유효하지 않습니다. 당신은 - 또는 - 관계를 가지려고하고 있습니까? 당신의 목표는 무엇입니까? – Li357

+0

나는 그게 뭔지 정말로 모르겠다. 나는 정말로 새로운 것이다. – Kushtrim

답변

1

라인 public auto = ("Audi","R8",162900,200000,2017,610){}은 (는) 올바른 Java 구문입니다. 이것을 생성자에 넣으려고 했습니까? 귀하의 클래스 AutoAuto1보다 구체적인 버전, 즉 Auto1의 특정 '종류'를 나타내는 것으로 보입니다.

public Auto() 
{ 
    super("Audi","R8",162900,200000,2017,610); 
} 
+0

이것을 정리해 주셔서 고마워. 하나 더 문제 tho ... 어떻게이 응용 프로그램을 초기화합니다. 주 수업 시간에 무엇을 써야합니까? – Kushtrim

+1

새 클래스를 생성하려면'Auto a = new Auto(); '를 호출하고 객체를 가지고 무엇이든 수행하십시오 – Li357

+0

어떻게이 클래스의 주어진 값으로 애플리케이션을 초기화합니까? Andrew – Kushtrim

1

귀하의 질문에 대한 답변이 있지만 최선을 다하고있는 OO 디자인이 아닌 것처럼 보입니다. 모양을 보면 Auto1은 (이론상으로)보다 구체적인 Auto 클래스를 (즉, 다른 방향으로) 확장해야합니다. 이 경우, 무엇을하고 있는지에 따라 Auto를 추상 클래스로 만들 수 있습니다. Auto1이 바퀴와 엔진이있는 "실제"차종이고 Auto1이 일부 모델 정보 일 경우 Auto1을 확장하지 말고 Auto 클래스에 Auto1 유형 변수를 사용하는 것이 좋습니다. 이 경우에는 이론적으로 자동차 (자동 유형의 객체)가 만들어지면 make 및 year와 같은 속성을 변경해서는 안됩니다.

관련 문제