26. marts 2003 - 11:12Der er
22 kommentarer og 2 løsninger
Classer & Vector
Hejsa Hvis jeg nu vil hente data fra klassen Konto til klassen Bank og indsætte disse i en Vector, hvad gør jeg så? Jeg har lavet en metode til det. import java.util.*; class Konto { public int Belob; public int Kontonr; public Konto(int b, int k) { this.Belob = b; this.Kontonr = k; } }
class Bank { Vector Konti = new Vector(); void Indsat(); { ; } }
class Main { public static void main(String args[]) { Konto k = new Konto(100,1); Bank b = new Bank(); } }
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
public class Main { public static void main(String args[]) { Konto k = new Konto(100, 1); Bank b = new Bank(); b.add(k); } }
class Konto { private int belob; private int kontonr; public Konto(int b, int k) { this.belob = b; this.kontonr = k; } public int getBelob() { return belob; } public int getKontonr() { return kontonr; } public void setBelob(int belob) { this.belob = belob; } public void setKontonr(int kontonr) { this.kontonr = kontonr; }
}
class Bank { Vector konti; public Bank() { konti = new Vector(); } public void add(Konto k) { konti.add(k); } public int size() { return konti.size(); } public Konto get(int ix) { return (Konto) konti.get(ix); } }
Hej Arne. Tak for besvarelse. Jeg kan godt se og forstå hvad du har lavet, men jeg her lige et spørgsmål. Hvorfor add'er du i main metoden og ikke i Bank klassen. Det virker da mere logisk eller sådan fungere det kåske ikke? :-)
hvis jeg laver en Print metode som f.eks: public void Print() { System.out.println(konti.elementAt(0).toString()); } så bliver mit output: Konto@256a7c Jeg har add'ed mit element på plads nr. 0. Resultat er det samme selvom jeg laver et for loop.
arne: Man anvender den metode der passer bedst til formålet, og har man IKKE brug for at det er syncronized så anvender man IKKE Vector, da den performer dårligere, ligegyldigt om forskellen i de nyere ikke er så stor som tidligere, så performer de alligevel dårligere.
At man anvender ArrayList istedet for Vector viser også overfor en kompetent lærer at man har et indblik i sproget.
De opgaver der stadigvæk indeholder Vector til sådanne ting, er tydeligtvis meget gamle, og ikke opdateret.
Ja, okay det var jo en mulighed. Men så udskriver jeg jo egentlig ikke indholdet i Vector'en men kun input-datane i konto-klassen. Og det er jo det jeg gerne vil.
Hvis man siger at man bruger Vector i.s.f. ArrayList af performance hensyn til en kompetent lærer, så vil han konkludere at man baserer sin viden på forældede bøger.
Ligesom brug af register keyword i C programmer heller ikke længere opfattes som et smart trick til at optimere koden.
arne: Nu jokker du godt nok rundt i det som en gal.
ArrayList er den man bruger forudsat man ikke vil havde det syncronized.
Men okay du har jo også engang hævdet at man godt kan lave streng behandling direkte på en String, da den kun var lidt langsomere end StringBuffer. Så brug du bare den LANGSOMMERE Vector istedet. Men det ville være godt hvis du ikke forsøgte at få andre til at begå samme fejl.
Hallo i to.... Jeg har spurgt efter hjælp, fordi JEG ikke kunne løse en opgave hvor JEG havde valgt at bruge en Vector. Om det er rigtigt eller forkert er opgaven irrelevant. Og jeg har værdsat den hjælp I begge har givet mig. Men hvis I absolut vil slås om hvad der er rigtig og forkert, så er gør det et andet sted.
Arne, du bliver lige nødt til at forklare det lidt anderledes. Hvorfor kan jeg ikke lave: public void Print() { System.out.println(toString(konti.elementAt(0))); } eller noget tilsvarende, til at udskrive mit element nr. 0
Du mener: System.out.println(konti.elementAt(0).toString()); ikke ?
det kan du også godt hvis du laver en toString i Konto klassen.
Ellers så arver Konto klassen toString fra Object klassen.
Og Object klassens toString skriver kun klassens navn @ objektets adresse ud.
Hvis du laver en toString i Konto som i mit eksempel så kommer der et eller andet fornuftigt ud.
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.