2015-02-16 2 views
-5

У меня есть задание для колледжаИнтерфейсы и полиморфизм

До сих пор это то, что у меня есть

public class Film { 

    //Data members 
    static int idNumber; 
    String title; 
    String classification; 

    //constructor 
    public Film() { 
     idNumber = 0; 
     title = "Not Given"; 
     classification = "G"; 
     classification = "PG"; 
     classification = "12A"; 
     classification = "15A"; 
     classification = "16"; 
     classification = "18";  
    } 

    public Film(int idNumber, String title, String classification) { 
     idNumber = 0; 
     title = "Not Given"; 
     classification = "Not Given"; 
    } 

    //Getters 
    public int getIdNumber() { 
     return idNumber; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public String getClassification() { 
     return classification; 
    } 

    //Setters 
    public void setIdNumber(int IdNumber) { 
     IdNumber = idNumber; 
    } 

    public void setTitle(String Title) { 
     Title = title; 
    } 

    public void setClassification(String Classification) { 
     Classification = classification; 
    } 

    //calculateLateFee method 
    double calculateLateFee(int numDaysLate){ 
     return numDaysLate; 
    } 

    //toString method 
    public String toString(){ 
     return idNumber + "" + title + "" + classification; 
     } 

}//end class 

и

public class Drama extends Film { 

    int numDaysLate = 3; 

    //overridden calculateLateFee method 
    double calculateLateFee(int numDaysLate){ 
     return numDaysLate;  
    } 

}//end class 

и

public class Action extends Film { 

    int numDaysLate = 5; 

    //overridden calculateLateFee method 
    double calculateLateFee(int numDaysLate){ 
     return numDaysLate; 

} 

} 

и

public class Comedy extends Film { 

    int numDaysLate = 4; 

    //overridden calculateLateFee method 
    double calculateLateFee(int numDaysLate){ 
     return numDaysLate; 
} 

} 

import java.util.Scanner; 

public class FilmTest { 

static int array; 

//create method createArray 
public static Film[] createArray() { 

    Scanner int_input = new Scanner(System.in); 

    Film[] array = new Film[0]; 

    //read user input as arraySize 
    return new Film[3]; 

}//end method 

//create method populateArray 
public static void populateArray(Film[] array) { 

    Scanner string_input = new Scanner(System.in); 
    Scanner double_input = new Scanner(System.in); 
    Scanner int_input = new Scanner(System.in); 

    for (int i = 0; i < 3; i++) { 
     Film movies = new Film(); //drama 

     //set ID number 
     System.out.println("Enter Movie ID Number: "); 
     movies.setIdNumber(int_input.nextInt()); 

     //put new student into array passed to the method 
     array[i] = movies; 

    }//end for loop 

}//end method 

//create method display Array 
public static void displayArray(Film[] array){ 

     for (Film s : array) { 

      System.out.println(String.format("%s %d", s.getTitle(), 
       s.getIdNumber(), s.getClassification())); 
     }//end for loop 
    }//end method 

    public static void main(String [] args) { 

     // create array of size specified by user 
     Film[] movies = createArray(); 

     //populate this array with data from user 
     populateArray(movies); 

     //display array contents 
     displayArray(movies); 

    }//end main method 

}//end class 

нормально, так что я только узнать, как сделать этот материал так может кто-то пожалуйста, помогите мне

Как я пишу это так, чтобы, когда я вхожу 3 Идентификационные номера детали фильма придумает, что-то как это:

Enter Movie ID Number: 
12345 
Enter Movie ID Number: 
34567 
Enter Movie ID Number: 
95432 
12345 - Step Brothers - 15A - Comedy 
34567 - Transformers - PG - Action 
95432 - The Godfather -18 - Drama 
+1

Привет, добро пожаловать в stackoverflow. Пожалуйста, сократите свой вопрос до определенной проблемы. Было бы лучше, если бы вы сначала прочитали http://sscce.org/. Это сэкономит время для чтения людьми, и они помогут вам лучше. –

ответ

0

Вам нужно что-то вроде этого ...

public Film GetMovieFromID(int id){ 
    for(Film f: array){ 
      if(f.getIdNumber == id){ 
       return f; 
      } 
    } 
    //If it didn't find the movie return null 
    return null; 
} 

Тогда вам нужен сканер, чтобы запросить ввод данных пользователем. Поэтому после отображения идентификаторов и названий, классификации и рейтинга. Вам необходимо называть что-то вроде этого ...

public void MovieGoerChoosening(){ 
    String s = "What movie would you like to see? (Type in movie ID.)"; 
    Film chosenMovie; 
    System.out.println(s); 
    Scanner sc = new Scanner(System.in); 
    try{ 
    /** 
     * Surrounded with a try catch block because users are stoopid 
     * and given the chance they will break your program at any 
     * opportunity given. 
     */ 
      s = sc.Next(); 
      chosenMovie = GetMovieFromID(Integer.parseInt(s)); 
    }catch(NumberFormatException e){ 
      s = "Type in a number with digits only. Try again." 
      System.out.println(s); 
    //Recursive call to itself to give the movie goer a second chance 
      MovieGoerChoosening(); 
    } 
    //Again users make mistakes and even if they typed only digits it 
    //could have returned nothing. 
    if(chosenMovie != null){ 
      System.out.println(String.format("%s %d", chosenMovie.getTitle(), 
      chosenMovie.getIdNumber(), chosenMovie.getClassification())); 
    }else{ 
      s = "Not a valid movie... Try again."; 
      System.out.println(s); 
      //Recursive call to itself to give the movie goer a second chance 
      MovieGoerChoosening(); 
    } 
} 
Смежные вопросы