Første
Objektorienteret programmering serie, Planche nr. 24
Kursus Indhold

Udskrift af : Objektorienteret programmering

Planche 1 : Objektorienteret programmering

Hvad er

Planche 2 : Objekter?

Definition: An object is a software bundle of variables and related methods.

eller på dansk:

Et objekt er en samling variable og tilhørende metoder.

Planche 3 : Objektmodel

API : Application Program Interface

Public API : almen tilgængelige metoder

Planche 4 : Fordele

Planche 5 : Beskeder

Objekter kommunikere med beskeder

Dvs. at kald af en offentlig metode i et andet objekt sker via en besked

Planche 6 : Fordele

Planche 7 : Klasser

Definition: En klasse er et skema eller en protype, der definere variable og metoder, der er fælles for en gruppe objekter.

Planche 8 : Eksempel - cykler

Planche 9 : Brug af klasser

Planche 10 : Objekter - Klasser

Planche 11 : Fordele

Planche 12 : Nedarvning (udvidelse)

Planche 13 : Udvidelse

Planche 14 : Fordele

Planche 15 : Java

Planche 16 : Java-kode

En javafil indeholder mindst en klassedefinition:

modifikationer class klassenavn evt. udvidelsesinfo{

  Sætninger bestående af enten variabelerklæringer
  eller metode-erklæringer

}
En metode-erklæring ser således ud:
modifikationer type metodenavn (  evt.  variabelliste ) {

   Sætninger

}
Den sidste sætning, der udføres i metoden skal give en værdi af samme type som metodens erklæring.

En metode uden parametre angives med ().

Planche 17 : Hvordan bruges metoder

Metoder kaldes ved at tilknytte dem til et objekt:

     navn = inddatafelt.getText();



     indtastet.setText(indatafelt.getText());   

Hvor
     String navn;
     javax.swing.JTextField inddatafelt;
     javax.swing.JLabel indtastet;

Planche 18 : Eksempel

HejVerden.
/*  
 * HejVerden - den første application
 *
 */
class HejVerden {
	public static void main (String args[]) {
		System.out.println ("Hej Verden!") ;
	}
}

Planche 19 : Eksempel 2

HejVerdenApp.
/*  
 * HejVerdenApp - den første applet
 *
 */

import java.awt.Graphics;

public class HejVerdenApp extends java.applet.Applet {

         public void paint ( Graphics g ) {
		g.drawString ("Hej Verden!", 200, 200 );
         }
}

Planche 20 : Pakker

Klasser samles i pakker.

Pakker er hierakisk beskrivelse, svarende til katalogsystemer:

Pakken            dk.blanet.system.Penge
findes ofte som   dk/blanet/system/Penge.class 
                  (og kildeteksten Penge.java ved siden af)
eller             dk\blanet\system\Penge.class 
                  (i Windows95/OS2)

Pakkebeskrivelsen indsættes i java-programmet med

package dk.blanet.system;

i filen Penge.java - Klassen (definitionen) hentes med import.

Planche 21 : Klassebiblioteker

En samling klasser med samme pakkebetegnelse kaldes et klassebibliotek. Pakken java.lang er indbygget (og behøves ikke 'importeres').

Et helt klassebibliotek importeres med * istedet for klassenavn.

Klassebiblioteker KAN distribere som en fil (.jar eller .zip).

Systemvariabel CLASSPATH peger på kataloger, hvori der findes klasser eller klassebiblioteker.

Planche 22 : String-type

String text = new String ("Tekst");

kan også skrives enklere:

String text = "Tekst" ;

String hilsen = "Hej " + navn + ", hvordan går det?" ;

Planche 23 : Pas på med objekter!

String svar = indputFelt.getText();
if (svar == "Ok") {
	System.err.println("Tekst er Ok");
} else {
	System.err.println("Tekst er IKKE Ok");
}
Denne kodestump giver "Tekst er IKKE Ok". Hvorfor?

Planche 24 : String Literal Pool!

String svar = "Ok";
if (svar == "Ok") {
	System.err.println("Tekst er Ok");
} else {
	System.err.println("Tekst er IKKE Ok");
}
Denne kodestump virker efter "hensigten" - men det skyldes String Literal Pool:

svar1 = "Ok"; svar2 = "Ok";

Er SAMME object på grund af genbrug af Stringkonstanter!

String-klassen er final!


© 2000 BLA*net - Leif E. Andersen, leander@blanet.dk