Fasen *svär* kör ett program enligt nedan.. i Fastighet.java finns klass och metoder som tillämpas i Fastighet_test.java.. Det som inte fungerar är anropet av funktionen för att ta fram försäljarens arvode efter att ett slutpris på fastigheten satts.. intSlutPris sätts enligt metoden innan, men sedan blir det problem när getProvision tillämpas. Jag vill som indata till denna metod ha slutpriset på en fastighet som väljs via index på fastigheten i vektorn. Kan någon kika på detta åt mig? Får inte tag på slutpriset när jag skall anropa provisions classen.. :\ Please hjälpa..
Fastighet.java
import extra.*;
public class Fastighet {
// Instansvariabel
private String stringAdress;
private int intStorlek, intHyra, intStartPris, intSlutPris;
private float floatProv;
// Kontrstuktorer
public Fastighet(String a, int s, int h, int sp, int sp2 ) { // Initierar instansvariablerna stringAdress, intStorlek
stringAdress = a; // intHyra och intStartPris med de startvärdena som anges i a,
intStorlek = s; // s, h och sp
intHyra = h;
intStartPris = sp;
intSlutPris = sp2;
}
// Metoder
public void setSlutPris(int v) { // Anrop av metoden setSlutPris(<nytt värde>)
intSlutPris = v; // sätter värdet på intSlutPris till värdet på v
}
public int getSlutPris() { // Anrop av metoden getSlutPris() returnerar
return intSlutPris; // värdet på intSlutPris
}
public float getProvision(int x){ // Anrop av metoden giveProvision returnerar värdet
floatProv = x*0.07; // på tänkt provision av intSlutPris, med 7%
return floatProv;
}
public String toString() {
return "Adress: " + stringAdress + ". Storlek: " + intStorlek + ". Hyra: " + intHyra + ". Startpris: " + intStartPris + ". Slutpris: " + intSlutPris + ".";
}
} // class
Fastighet_test.java
import extra.*;
import java.util.*; // Vector ligger i java.util
// Programmet skapar fastigheter med indata som
// adress, storlek, hyra och startpris enligt
// Fastighet(String a, int s, int h, int sp )
public class Fastighet_test {
public static void main (String[] arg) {
System.out.print("-- Välkommen till Fastighetsbanken.net --\n");
//System.out.print("Starta editeraren med 1, avsluta program med 0: ");
// Skapar en ny vektor fastigheter
Vector fastigheter = new Vector();
// Skapar räknare till do-while- och if-satser som följer.
int i=1, oi=0;
String b_adress;
int b_storlek, b_hyra, b_startpris, b_slutpris;
do{
Std.out.print("Vill du lägga till en ny fastighet? 1=ja, 0=nej: ");
i = Std.in.readInt();
Std.in.skipLine();
if (i == 1){
Std.out.println("Ange Adress: ");
b_adress = Std.in.readLine();
Std.out.println("Ange storlek (i hela kvm): ");
b_storlek = Std.in.readInt();
Std.out.println("Ange manadshyra (i hela kr): ");
b_hyra = Std.in.readInt();
Std.out.println("Ange startpris (i hela kr): ");
b_startpris = Std.in.readInt();
fastigheter.add(new Fastighet(b_adress, b_storlek, b_hyra, b_startpris,0));
}
} while (i == 1);
Std.out.println();
// Utskrift av alla fastigheter i vektorn
for(int n = 0; n < fastigheter.size(); n++){
System.out.print(fastigheter.get(n) + "\n");
}
// Tom rad
Std.out.println();
Std.out.print("Vill du: sätta ett slutpris? (skriv 1), kolla provision (skriv 2) eller avsluta (skriv 0): ");
oi = Std.in.readInt();
if(oi == 1){
int c_index, c_slutpris;
// Utskrift av alla fastigheter i vektorn, indexerade!
for(int n = 0; n < fastigheter.size(); n++){
System.out.print("Index: " + n + " - " + fastigheter.get(n) + "\n\n");
}
// Tom rad
Std.out.println();
// Läsa in index för att plocka ut rätt värde
Std.out.print("Ange index på fastigheten: ");
c_index = Std.in.readInt();
Std.out.println("Ange slutpris (i hela kr): ");
c_slutpris = Std.in.readInt();
Fastighet tmpFastighet = (Fastighet)fastigheter.get(c_index);
tmpFastighet.setSlutPris(c_slutpris);
Std.out.println("Fastighetens info efter ändring");
System.out.print(fastigheter.get(c_index) + "\n");
}
else if(oi == 2){
float d_provision;
int d_index, d_hej, d_hej2;
// Utskrift av alla fastigheter i vektorn, indexerade!
for(int n = 0; n < fastigheter.size(); n++){
System.out.print("Index: " + n + " - " + fastigheter.get(n) + "\n\n");
}
// Tom rad
Std.out.println();
// Läsa in index för att plocka ut rätt värde
Std.out.print("Ange index på fastigheten: ");
d_index = Std.in.readInt();
Fastighet tmpFastighet2 = (Fastighet)fastigheter.get(d_index);
d_hej = tmpFastighet2.getSlutPris();
d_hej2 = tmpFastighet2.getProvision(d_hej);
System.out.print(fastigheter.get(d_index) + "\n");
}
} // main
} // class