I denne artikel vil jeg prøve at beskrive hvordan objekter virker. Objekter kan godt være svært at forstå, især hvis man ikke kender noget til programmering i forvejen. Så jeg vil derfor anbefale at man har et lille kendskab til programmering, og siden denne artikel bliver skrevet i java, så også til java sproget.
I dette eksempel, vil jeg igen bruge "java bogen" og "c++ bogen" som objekter og bog, som typen.
Hvad er en bog, eller hvad er typiske karakteristika ved en bog?
Den har:
en titel
en eller flere forfattere
et isbn nummer
en genre
osv.
Dette betyder at vores bog, som er en klasse, definere alle de oplysninger der skal til, for at man kan lave mange forskellige bøger.
Først skal vi lave selve bog klasse, denne klasse skal indeholde de ting som vi definerede lige før, men for at lave eksemplet mindre, har jeg valgt kun at brugere "forfatteren" og "isbn" nummeret.
Desuden har jeg også valgt at, der kun må være en forfatter per bog. Da det er nemmest at holde styr på.
public class Bog {
private String titel; // bogens titel
private String forfatter; // kun EN forfatter per bog.
public Bog(String titel) { // Klassen konstruktør
this.titel = titel; // sætter bogens titel
}
// her sættes bogens forfatter
public void setForfatter(String forfatter) {
this.forfatter = forfatter;
}
// Her kan man hente forfatterens navn
public String getForfatter() {
return forfatter;
}
// her kan man hente bogen titel
public String getTitel() {
return titel;
}
// her kan man sætte bogens titel
public void setTitel(String titel) {
this.titel = titel;
}
// denne metode udskriver bøgernes indhold
public void udskriv() {
System.out.println("Titel: " + titel);
System.out.println("Skrevet af: " + forfatter);
System.out.println();
}
}
Et objekt af Bog-klassen, oprettes ved at angive en titel på bogen. Og objektet indeholder oplysninger om: forfatteren og titlen på selve bogen. Der er metoder i klassen, som vi kan manipulere med objektet med. Man kan rette forfatteren af bogen, og titlen på bogen.
Nu er vores bog klasse færdig, og så skal vi konstruere en Main-klasse, som køre programmet. I denne Main-klasse, laves der objekter af Bog-klassen. Og det er så her vi laver vores "java bog" og "c++ bog".
Disse 2 objekter kan vi så manipulere med, ved brug af de metoder som ligger inde i Bog-klassen. Grunden til at disse metoder virker til begge bøger/objekter, er at de begge er af typen "Bog", og derfor kan alle de ting som der defineret i Bog-klassen.
public class MainKlasse {
public MainKlasse() {
}
// så indsætter vi data i bøgerne, og udskriver fra dem.
// (denne metode køre programmet)
public static void main(String[]args) {
// først laver vi bøgerne
Bog javaBog = new Bog("Min java bog"); // javaBog objektet
Bog cppBog = new Bog("Min c++ bog"); // cppBog objektet
// data om forfatterne indsættes i de 2 bøger vi har lavet
javaBog.setForfatter("java Guruen");
cppBog.setForfatter("c++ Guruen");
// her kalder vi Bog-klassens udskriv metode
javaBog.udskriv();
cppBog.udskriv();
// bare lidt pynt... en skille linje
System.out.println("-----------------------------");
// her ændre vi data'en i bøgerne, og udskriver oplysningerne igen
// der bruges igen Bog-klassens metoder til at ændre i data
javaBog.setForfatter("Ny java bogs forfatter");
cppBog.setTitel("Ny c++ bog...");
// her kalder vi Bog-klassens udskriv metode
javaBog.udskriv();
cppBog.udskriv();
}
}
Der bliver udskrevet følgende i dosprompten:
Titel: Min java bog
Skrevet af: java Guruen
Titel: Min c++ bog
Skrevet af: c++ Guruen
-----------------------------
Titel: Min java bog
Skrevet af: Ny java bogs forfatter
Titel: Ny c++ bog...
Skrevet af: c++ Guruen
De to objekter der bliver lavet er:
javaBog & cppBog.
Disse 2 objekter er af typen Bog, og derfor indeholder de variabler som er defineret i Bog-klassen.
Dvs. at vi nu har lavet 2 objekter af Bog-klassen, og vi har manipuleret med dem. Og derefter har vi tjekket om det hele virkede, ved at udskrive indholdet af vores 2 objekter.
Jeg håber at der ud fra denne korte tekst, kan ses hvad objekter er, og hvordan man manipulere med dem. Grunden til at jeg ikke har skrevet mere, er fordi at jeg mener at, kode siger mere end almindelig tekst gør.