12
Tags:
java
Skrevet af
Bruger #2796
@ 01.02.2003
I denne artikel vil jeg komme med en kort introduktion til java ved at vise, hvordan konstruktører virker. Derudover vil jeg komme med nogle udtryk og tips som man skal/kan bruge, når man udvikler programmer i java eller et andet objekt orienteret sprog.
Opsætningen af klassen
Det aller første man burde lære noget om er, hvad en konstruktør er. En kontruktør er det første der bliver initialiseret i et nyt objekt, og hvis der ikke laves en konstruktør, laves der automatisk en bag om ryggen på dig. Den konstruktør der laves bag-om-ryggen kan man jo bare ikke fortælle hvad der skal ske nå selve objektet skal initialiseres. Derfor er det altid smart at lave en konstruktør, også selvom man ikke ligger noget i den (det er god programmering at gøre det).
Konstruktøren har det samme navn som den klasse man laver den i. I modsætning til f.eks. pascal/delphi, som kalder deres konstruktør for "constructor()" bruger man altså i java, navnet på selve klassen.
Her er et eksempel på det:
class Tester {
// klassens (default)konstruktør
public Tester() {
// En tom konstruktør
// Der må godt være andet kode herinde, det er stadigvæk
// en default konstruktør
}
}
Denne klasse gjorde jo ikke særligt meget, men princippet er der. Der bliver kun vist hvordan man opretter en konstruktør, og den konstruktør der bliver oprettet er klassens default-konstruktør. Grunden til at det er klassens default-konstruktør, er fordi at der ikke er nogen parameter i den. Hvad er parameter? kan du så spørge. Jow ser du, parametre er de værdier som en metode tager med ind, via metode kaldet. Jeg ved godt det lyder lidt forvirrende, men kig på dette eksempel:
class Tester {
// klassens konstruktør, med parametre
public Tester(String navn) {
System.out.println("dit navn er: " + navn);
}
}
Denne gang er konstruktøren ikke længere en default konstruktør, da den tager en parameter med. "String navn" er denne konstruktørs parameter, og der kan skrives mange flere på, hvis det er det man ønsker.
Hvad skal man så bruge en konstruktør til?
Det man typisk bruger en konstruktør til, er at initialisere et objekt, med nogle bestemte værdier, da man så ikke skal sidde og skrive de værdier ind bagefter.
Derved, bliver klassen også mere dynamisk, end hvis man prædefinerede værdierne i selve klassen, og den så brugte de prædefinerede værdier hver gang man oprettede et objekt af den type.
Flere eksempler
Her er der et eksempel på hvordan man kan bruge et konstruktør, til at oprette en person:
class Person {
// klassens konstruktør, med 2 formelle parametre
public Person(String navn, int alder) {
System.out.println("så " + navn + " du er altså " + alder + " gammel.");
}
public static void main(String[]args) {
new Person("Jimmi",22); // mit navn og min alder som aktuelle parametre
// når objektet skal oprettes
}
}
Dette eksempel opretter en person ved navn "Jimmi" og alder 22, og udskriver følgende:
så Jimmi du er altså 22 år gammel.Alt dette betyder, at det er blevet meget nemmere at lave klasser i java, som opføre sig på bestemte måder. Man kan f.eks. udvide eksemplet med, at den beregner den dag man er født, eller mange andre ting.
Idéen var som sagt bare at vise hvordan man lige brugte en konstruktør. Men, der kan også bruges 2 eller flere konstruktører. Man skal bare vælge at bruge de forskellige konstruktører, når der oprettes et objekt af typen.
Hvis vi nu fortsætter lidt på dette eksempel, og udvider den til at have 2 konstruktører (en default og en anden), så kan vi se hvordan det gøres:
class Person {
// klassens default konstruktør
public Person() {
System.out.println("Hejsa anonyme person");
}
// klassens konstruktør, med 2 formelle parametre
public Person(String navn, int alder) {
System.out.println("så " + navn + " du er altså " + alder + " gammel.");
}
public static void main(String[]args) {
new Person("Jimmi",22); // mit navn og min alder som aktuelle parametre
// når objektet skal oprettes
new Person(); // kaldet til den defaulte konstruktør
}
}
Denne gang bliver der udskrevet følgende:
så Jimmi du er altså 22 år gammel.Hejsa anonyme personDen første linje blev udskrevet fra konstruktøren med parametre, og linje nr 2 blev udskrevet fra den defaulte konstruktør.
Der kan ligges mange flere konstruktør til dette eksempel, men da det bare er et lille eksempel, er dette ikke gjort.
Jeg håber i kan bruge denne artikel om konstruktører til noget, og at den gav jer lyst til at programmere videre i java.
Hvad synes du om denne artikel? Giv din mening til kende ved at stemme via pilene til venstre og/eller lægge en kommentar herunder.
Del også gerne artiklen med dine Facebook venner:
Kommentarer (14)
Det virker... tro mig...
God artikel, der på en forståelig og god måde forklarer brugeren hvordan man laver en constructor. Jeg savner godt nok i andet kodeeksempel at du skiller main metoden ud fra klasse definitionen. Det forvirrer en smule. Det vil heller aldrig virke da main metoden mangler en klasse definition.
Kanon artikel!
Main metoden mangler heller ikke en klasse definition. Den er jo defineret inde i Person-klassen.
Godt og enkelt skrevet
Jeg er måske hård med karakteren (har givet den 1), men det er fordi jeg ikke synes du kan kalde dette en introduktion til Java - jeg kender Java, men kan forestille mig at nybegyndere misforstår OOP-begrebet hvis de kun læser din artikler her om constructorer..! Hvis jeg skulle skrive en introduktion ville jeg starte med at forklare OOP og så derefter hvordan Java passer ind i dette. F.eks. at en constructor reelt ikke er andet end en særlig metode!
Lige en kommentar. Man kan godt have mange forskellige constructor's. Det kræver dog at man skal have forskellige parametre til de forskellige constructors
til ThomasW: jeps
Forstad ikke noget :-( Hvilket program skal man bruge for at lave det?
Du skal ikke bruge det til et bestemt program, men du "skal" bruge det, når du vil initialisere et objekt som du skal bruge. Her er konstruktøren handy, da det er det der bliver automatisk kaldt, når du opretter objektet. f.eks. String s = new String(); <-- der bliver konstruktøren kaldt.
Halløj alle!
Jeg er helt (og mener helt) ny i Java-verdenen, og fik lige anbefalet den her side af en ven, da jeg fortalte ham jeg godt kunne tænke mig at lære lidt begynder Java
Denne her artikel faldt først for mine øjne, og jeg må sige, det er det mest forvirrende jeg nogensinde har set
Jeg er selvfølgelig også helt ny, nogen der kunne give mig et link eller en side til nybegyndere?
I know i am late, men tage en af de tidliger versioner som mig, jeg har lært lidt men synes stadig dette er forvirrerne.
Hmm tror jeg kom med min kommentar lidt for hurtig, god artikel men vil gerne havet fået analyseret det sidste eksempel bedre
3 her fra
Du skal være
logget ind for at skrive en kommentar.