07. november 2011 - 14:28Der er
13 kommentarer og 2 løsninger
java begynder hjælp
Hej Eksperter.
Jeg er lige begyndt på java programmering, men mangler simpelthen en basal og visuel forståelse af hvordan dette sprog fungerer. Sådan som jeg har forstået det er java objekt orienteret programmering. Betyder det så at når jeg opretter en "class", så skaber jeg et nyt objekt? Når jeg skal kalde den metode, sker det så altid inde i objektet, eller kalder man det også fra et andet objekt også?
Endvidere er jeg også i tvivl om hvad præcist en metode er, og hvordan den ser ud
Som Arne er inde på. Når du definerer en klasse giver du dig selv mulighed for at oprette et objekt af den klasse. Den vil så have klassenavnet som datatype.
Et lille et eksempel:
public class Person { private String name; private int age;
public Person(String name, int age) { this.name = name; this.age = age; } public String getName(){ return this.name; } public int getAge(){ return this.age; } }
På ovenstående klasse kan du så gøre følgende:
Person p = new Person("Hans-peter",52); System.out.println(p.getName()+" er "+p.getAge()+" år gammel");
Som Arne også er inde på kan du lave metoder som du kan kalde direkte på en klasse, det vil sige en klasse som du ikke har et objekt af. Dette kaldes statiske metoder som du definerer på følgende måde:
public static Person createNewPerson(String name, int age) { Person personObj = new Person(name,age); return personObj; } Hvis vi skal lave ovenstående eksempel om til at bruge den statiske metode vil det være:
Person p = Person.createNewPerson("Peter",45); System.out.println(p.getName()+" er "+p.getAge()+" år gammel");
Ovenstående lille eksempel giver ikke så meget mening i praksis men kan være udemærket til at forstå forskellen på statiske og ikke-statiske metoder i en klasse. Generelt er det god semantik at erklærer alle klasse variable for private og så lave metoder til at ændre og/eller tilgå disse variable via gettere/settere metoder. At en variabel er private betyder i al sin enkelthed at det kun er denne ene klasse der kan tilgå variablen. Metoder kan du også erklærer for private og det vil så igen betyde at det kun er klassen der kan gøre brug af den.
Jeg håber at ovenstående giver lidt mening og hjælper dig videre.
Alle klasser har som udgangspunkt en tom constructor / konstruktør. Det vigtige at forstå her er det er construtoren der returnerer dit objekt. Det vil sige at det er her du skal sørge for at alle dine variable indeholder en værdi, hvordan du gør det er egentlig ligemeget, det kunne være at hente ud fra en database eller læse fra en XML fil eller noget helt andet. Så i contructoren skal du sørge for at angive de parametre der skal bruges til at klargøre objektet.
Omkring det du siger til Arnes kommentarer. Syntaxen hedder: datatype variabelnavn = new klassenavn
Så hvis du vil have mange objekter af samme datatype (klassenavn) gør du således:
Test t = new Test(); Test t1 = new Test(); Test t2 = new Test();
Du har nu 3 objekter er Test klassen. Et metodekalk på en klasse er så "bare" variabelnavn.metodenavn
altså som i: Person p = new Person("Navn",10); p.getAge();
når du skriver: p.getAge() får du tallet 10 tilbage som du kan ligge i en anden variabel eller udskrive til konsollen eller lign.
"Objects first with java a practical introduction using BlueJ"
Denne forklarer tingene rigtig rigtig godt for en nybegynder, og den lettere øvede.
Endnu engang tal for hjælpen:-)
mvh Mads
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.