2011-01-14 13 views
-1

All dies ist kompiliert und in BlueJ ausgeführt, so dass keine Hauptmethode erforderlich ist, ich viele Fehler erhalte und ich neu in Java bin, so dass ich nicht weiß, wie man sie behebt. Jede Hilfe wäre sehr geschätzt.Hilfe mit Java-Fehlern,

Dieser hat Fehler `import java.util. *;

public class LettingAgent {

private ArrayList<Property>myProperty; 
private int propertyNo; 


public LettingAgent(){ 
    myProperty = new ArrayList<Property>(); 
    propertyNo = 0; 
} 

public void addProperty(String newAddress, char newLocation, int newMonthlyRent, int newNoOfBedrooms){ 
    Property newProperty = new Property(newAddress, newLocation, newMonthlyRent, newNoOfBedrooms); 
    myProperty.add(newProperty); 
} 


public void removeProperty(int propertyNo){ 
    if(propertyNo>myProperty.size() || propertyNo<0){ 
     System.out.println("Invalid Property Number!"); 

    }else{ 
     myProperty.remove(propertyNo); 
     System.out.println("Property Successfully removed.");    
    } 
} 


public void addTenant(int propertyNo, String tenantName){ 
    if(propertyNo>myProperty.size() || propertyNo<0){ 
     System.out.println("Invalid Property Number!");   
    }else{ 
     myProperty.get(propertyNo); 
     //Property.newTenant(tenantName);    
    } 
} 


public void removeTenant(int propertyNo){ 
    if(propertyNo<myProperty.size()){ 
     myProperty.get(propertyNo); 
     //Property.removeTenant(); 
    }else{ 
     System.out.println("Invalid Property Number!"); 
    } 
} 
public void searchProperty(String searchAddress){ 
    int propertyNumber = 0;  
    for(Property Property : myProperty){ 
     myProperty.get(propertyNumber);    
     if (myProperty.get(propertyNo).equals(searchAddress)){ 
      System.out.println("Property Details: "+ Property); 
     } 
     else{ 
      System.out.println("No Such Property."); 
     } 

     if(propertyNumber>myProperty.size()){ 
      System.out.println("No Such Property.");   
     }else{ 
      break; 
     }   

    } 

} 
public void propertyList(Char location, int maxRent, int minBedrooms){ 

    for(Property Property : myProperty){ 
     if((Property.getLocation().equals(location))&& (Property.get(newMonthlyRent).equals(maxRent))&& (myProperty.get(newNoOfBedrooms).equals(minBedrooms))){ 
      System.out.println(propertyNo); 
      Property.displayDetails();        
     }else{ 
      System.out.println("Property Does Not Fit Search Criteria!"); 
     }   
    }      
} 

}

`

dies ist die zugehörige Klasse` // Objektklasse public class Eigenschaft { // initialisiert Variablen private String-Adresse; privater Char Ort; private int Monatsmiete; private int noOfBedrooms; private Boolean besetzt; private Zeichenfolge mieterName;

//constructor, to create a new property 
public Property(String newAddress, char newLocation,int newMonthlyRent, int newNoOfBedrooms){ 
    address = newAddress; 
    location = newLocation; 
    monthlyRent = newMonthlyRent; 
    noOfBedrooms = newNoOfBedrooms; 
    occupied = false; 
    tenantName = ""; 
} 

//method to return the address of created property 
public String getAddress(){ 
    return address; 
} 
//method to return the location of created property  
public char getLocation(){ 
    return location; 
} 
//method to return the rent of created property  
public int getMonthlyRent(){ 
    return monthlyRent; 
} 
//method to return the number of bedrooms of created property 
public int getNoOfBedrooms(){ 
    return noOfBedrooms; 
} 
//method to return the occupied status of created property  
public boolean getOccupied(){ 
    return occupied; 
} 
//method to return the name of the tenant of created property  
public String getTenantName(){ 
    return tenantName; 
} 
//method to set a new monthly rent 
public void newRentRate(int newMonthlyRent){ 
    monthlyRent = newMonthlyRent; 
} 
//method to set a new tenant, but only works if current property is empty 
public void newTenant(String newTenant){ 
    if(occupied){ 
     System.out.println(" ERROR! Property is already occupied. "); 
    }else{ 
     tenantName = newTenant; 
     occupied = true;  
    } 

} 
//method used to remove tenant and reset the occupied status to false 
public void removeTenant(){ 
    if(occupied){ 
     tenantName = " "; 
     occupied = false; 
    }else{ 
     System.out.println("ERROR! Property is already empty. "); 
    } 
} 
//method implements a switch statement to switch the char type in to a more understandable string type 
// and also then displays the full property details. 
public void displayDetails(){ 
    String fullLocation; 
    switch(location){ 
     case 'n': case 'N': fullLocation = " North London"; break; 
     case 's': case 'S': fullLocation = " South London"; break; 
     case 'e': case 'E': fullLocation = " East London"; break; 
     case 'w': case 'W': fullLocation = " West London"; break; 
      default: fullLocation = " unknown"; 
    } 

    System.out.println("Address :" + address); 
    System.out.println("Location :" + fullLocation); 
    System.out.println("Monthly Rent : " + monthlyRent); 
    System.out.println("Number of bedrooms : " + noOfBedrooms); 
    System.out.println("Occupied Status : " + occupied); 

    if(occupied){ 
     System.out.println("Tenants Name : " + tenantName); 
    }else{ 
     System.out.println(" "); 
    } 

} 

} `

+0

Haben Sie die Fehler etwas ausmachen, veröffentlichen, die Sie bekommen? Zu sagen, dass Sie Fehler bekommen, ist eine ziemlich breite Aussage. – jmort253

+0

Wenn Sie die Fehler angeben, weisen wir Sie auf das Problem hin. –

+0

Ich bekomme Fehler innerhalb der Methoden addTenant() und removeTenant(), ich bin mir nicht sicher, wirklich, wie Attribute aus einem Objekt innerhalb einer Array-Liste, – user575234

Antwort

2

Die Klasse Property keine Methode haben get() definiert.

ändern Property.get(newMonthlyRent).equals(-Property.getMonthlyRent().equals(

Auch scheint es, dass Sie Property eine einzelne Eigenschaft mit dem Arraylist myProperty mischen, die

Die get() Methode auf dem Arraylist eine Liste aller Eigenschaften hält wird die einzelne Property-Instanz zurückgeben. Verwenden Sie daher in Ihrer addTenant()-Methode myProperty.get(propertyNo).newTenant(tenantName);


UPDATE

Property.getLocation() gibt ein char kein String. A char hat keine Methode.

ändern Property.getLocation().equals(location)-Property.getLocation() == location

+0

danke so sehr, ich bekomme immer noch den Fehler char kann nicht in der endgültigen Methode auf der if-Anweisung dereferenziert werden – user575234

+0

@ user575234 aktualisiert –

+0

Wenn dies Ihre Frage beantwortet, bitte beachten Sie die Markierung als akzeptiert. – num1