arne v - er desværre ikke helt med - hvad nu når jeg har det liggende i 6 forskellige klasser (af pædagogiske grunde) - skal jeg bare lave fejl-klasserne om til public static...??
Du skal overveje om de metoder hvis kald giver fejl skal ændres til static eller om det er metode der kalder som skal lave en instans af objektet og kalde metode for dette objekt.
2 muligheder => du skal vælge
Og du skal vælge udfra om metoderne faktisk er statiske (kan kaldes helt standalone) eller de er ikke-statiske (skal bruge diverse variable defineret for instanser af pågældende klasse).
void Gem_actionPerformed(ActionEvent e) { Navn = NavnTextField.getText(); Version = VersionTextField.getText(); Aarstal = AarstalTextField.getText(); Stoerrelse = StoerrelseTextField.getText(); Ejer = EjerTextField.getText();
CD = new SystemCD(Navn, Version, Aarstal, Stoerrelse, Ejer); if (!BinSearchTree.Insert(CD)) Vissefelt.setText(CD.GetDisplayText()+ "\n" + "CD er ikke gemt"); else Vissefelt.setText(CD.GetDisplayText()+"\n" + "CD er gemt");
void Find_actionPerformed(ActionEvent e) { Navn = SoegefeltTextField.getText(); MidlertidigCD.SetNavn(Navn); if (!BinSearchTree.Find(MidlertidigCD)) Vissefelt.setText("CD er ikke fundet!!!"); else { CD = (SystemCD)BinSearchTree.Current();
Vissefelt.setText(CD.GetDisplayText()+ "\n" + "CD er fundet" + "\n");
BinTreeNode x; boolean indsat = false; //hvis der indsættes en node i træet
if(Find(S)) //hvis cd'en findes i forvejen { now = top; indsat = false; }
else { x = new BinTreeNode(S); //hjælpenode
if (Empty()) //hvis træet er tomt { top = x; now = x; indsat = true; //en node er indsat }
else { if (S.CompareTo((Sortable)now.GetData()) < 0) { now.SetLeftChild(x); now = x; } if (S.CompareTo((Sortable)now.GetData()) > 0) { now.SetRightChild(x); now = x; } indsat = true; //der er indsat en node
} } return indsat; //returnere den indsatte node }
Tja, sandsynligvis mangler du bare at skrive static foran metoden i BinSearchTree.
Men lige et MEGET godt råd. Almindelig kodestandard er, at metoder og variabler starter med småt, mens klassenavne starter med stort. Hvis variabelnavnet består af flere sammensatte ord, er det første med småt, f.eks. ejerTextField i stedet for EjerTextField.
Følges denne konvention, er man aldrig i tvivl om man er i gang med at kalde en metode på et objekt, eller på en klasse (dvs en statisk metode)
vender muligvis tilbage senere, det skal lige finpudses - og som sagt så er java ikke min stærke side !?
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.