torsdag 23 april 2009

Klasser och objekt

Vid objektorienterad programmering bygger man upp sina program av ett antal väl avgränsade enheter som kallas objekt. 

Det klassiska bilden av ett datorprogram är en "låda" i vilken man stoppar in indata och får ut udata. Programmets uppgift är alltså att transformera ett dataflöde. Detta treaditionellla sätt att uppfatta datorprogram på brukar kallas det funktionsorienterade synsättet.

Det objektorienterade synsättet är annorlunda. Enligt detta uppfattar man ett datorprogram som en modell av den verklighet programmet skall samverka med. De enskilada e
nheterna i ett program, de s.k objekten, är då modeller av verkligen eller tänkta ting i programmet omgivining och ett datorprogrammes upphoft är att manipulera objektet. I programmets använder man s.ks klasser för att avbilda och beskriva objektens egenskaper. 

Varje objekt har en unik identitet och i programmet kommer man åt objekt via namn, antigen direkt eller via referenser. I java används referenser. Man kan t.ex. konstruera ett objekt blomman som avbildar en verklig blomma eller ett objekt fönstret som beskriver ett fönster på skärmen. Varje objekt har en uppsättning egenskaper vilka bestäms av dess attribut och dess operationer. Attribut används för att hålla reda på objektets tillstånd, eller status.
Varje objekt har en egen, unik uppsättning attribut. Normalt brukar man gömma ett objekts attribut inne i objektets så att det blir oåtkomlig utifrån och bara kan förändras av objektets självt. Detta kallas inkapsling eller information hiding.

Som exempel kan vi studera objektet hissen som beskriver en verklig hiss. Dess tillstånd kan beskrivas med hjälp av de två attributern riktning och våning. Attributen rikting kan ha något värde stilla, uppåt eller neråt och attributet våning kan innehålla ett heltal som anger vilken våning hissen 
är på. 

Olika objektorienterade programmeringsspråk använder olika termer för "attribut". I Java används för det mesta termen "instansvariabel" i C++ används termen "datamedlem" och i Ada "komponent". I fortsättningen kommer vi att använda ordet instansvariabel. Ibland använder vi det enklare ordet variabel när det är uppenbart att det är frågan om en instansvariabel.

Den andra kategorin egenskap för ett objekt är de operationer som man 
kan utföra på objektet. För objektet "hissen" kan det t.ex. finnas metoderna körTill, stanna och vilkenVåning . Metoden "körTill" använder man för att få hissen att köra till en viss våning, "stanna" används för att stoppa hissen f.n. befinner sig. I Java kallas en sådan operation för en "metod". Ibland används vi ordet instansmetod för att betona att en viss metod hanterar enskild instans av en klass.

Ett objekt är alltså en modell av ett verkligt eller tänkt föremål, men hur beskrivs då objekt i ett program? Det är här begreppet klass kommer in. En klass är en mall, eller mönster, som beskriver hur objekt med samma uppbyggnad och egenskaper ser ut.  

En klass är alltså  en beskrivning.

                 
Objekt
Modell av ett verkligt eller tänkt föremål.
Har två slags egenskaper; attribut och operationer.
Kallas instansvariabler resp. metoder i Java.



fredag 17 april 2009

Beräkna volymen och arean av en sfär - java

Ett program som beräknar volymen och arean av en sfär. Som indata, i en diagolnal, ges sfärens radie. Följande formeler är givna:

Sfärens area beräknas med formeln:            A=4\pi \cdot r^{2} 

och det tillhörande klotets volym är :    V=\frac{4\pi r^{3}}{3}            




import static javax.swing.JOptionPane.*;


/*

 * Ett program som beräknar volymen och arean av en sfär.

 * Som en indata, i en diagonalruta, ges sfärens radie. 

 * 

 */

public class VolymenArean {

public static void main(String[] args) {

String txt = showInputDialog("Ange sfärens radie"); // läser in en

// textsträng


double radie = Double.parseDouble(txt); /*

* typomvandlar från sträng till

* decimaltal

*/

double volym, area;

volym = (4 * Math.PI * Math.pow(radie, 3) / 3); // utför beräkning

area = (4 * Math.PI * Math.pow(radie, 2)); // utför beräkning

showMessageDialog(null, "Vid en radie på " + txt + "\n" 

+ "Får man en volym på " + volym + "\n" + "och en area på " + area);

System.exit(0);


}


}

onsdag 15 april 2009

The Cloner

import static javax.swing.JOptionPane.*;

public class hjälp {
public static void main(String[] args) {
for (;;) 

showMessageDialog(null,
"Cloner: The program with a personality" + "\n"
+ "It will get on all your disks" + "\n"
+ "It will infiltrate your chips" + "\n"
+ "Yes, it's Cloner!" + "\n"
+ "It will stick to you like glue" + "\n"
+ "It will modify RAM too" + "\n"
+ "Send in the Cloner!");


}

}

for-satsen

Den enklaste satsen för att göra upprepningar är while-satsen, men det finns en annan sats som också används ofta, nämligen for-satsen. Man brukar använda en for-sats när man har en räknare som skall räknas upp eller ner på varje varv.

exempel while-sats:

int j = 0;
while ( j <>
   System.out.println(j);
j = j + 2;

}

Alltså:

init;
While(uttryck){
  sats;
 ändring;
}


Och ett exempel for-sats kan see ut så här:

int j;
for(j=0;  j <  6; j = j + 2 ) {
   System.out.println(j);
}

Alltså:
for(init;  vilkor;  ändring)
 sats;

While - satsen * java










tisdag 14 april 2009