Java
C++-syntax
Objektorienterat
Avsett för nätbruk
Bra grafiskt stöd, bra i samspel med browsers
Massor med biblioteksfunktioner
Maskinoberoende (?)
Sun-produkt
Java
Simple
Object-oriented
Distributed
Robust
Secure
Architecture neutral
Portable
High performance
Multithreaded
Dynamic
Java, Simple
C++-syntax
Lätt att lära för C-++-programmerare
- gäller speciellt objektorienteringen
Välkända koncept
Förbättringar/Förenklingar från C++
- konstiga konstruktioner ur C++ finns ej
- automatisk garbage collection (skräpsamling, dvs tar hand om objekt som "är döda")
- pekare starkt förenklade
- liten och nätt
Java, Simple
import java.io.*;
public class MyCount {
public static int countChars(String in)
{
int count = 0;
for (int i = 0;
i <= in.length() - 1; i++)
{
if (in.charAt(i) == ' ') count++;
}
return count;
}
public static void main(String[] args)
{
String instring =
"Solen skiner idag igen!";
System.out.println(instring +
" has " + countChars(instring) +
" blanks");
}
}
Java,Simple
import java.io.*;
public class MyCount {
public static int countChars(String in)
{
int count = 0;
for (int i = 0;
i <= in.length() - 1; i++)
{
if (in.charAt(i) == ' ') count++;
}
return count;
}
public static void main(String[] args)
throws Exception
{
InputStreamReader isr;
BufferedReader keyb;
String instring;
isr = new
InputStreamReader(System.in);
keyb = new BufferedReader(isr);
instring = keyb.readLine();
System.out.println(instring +
" has " + countChars(instring) +
" blanks");
}
}
Java, Object-oriented
Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an instance of some class, and whose classes are all members of a hiearchy of classes united via inheritance relationships.
Java, Object-oriented
OOP är ett förhållningssätt kring problemlösning
Om procedurer och funktioner är verb och data är substantiv, är ett procedur-orienterat språk uppbygtt kring verb och ett objekt-orienterat kring substantiv.
Programmet är uppbyggt av av oberoende objekt.
Programexekveringen är interaktionen mellan dessa objekt.
Ett objekt rymmer inom sig ett tillstånd (datafält) och beteenden (metoder)
Ett objekts beteende ges av dess klasstillhörighet (=typ)
Klasser är hierkiskt ordnade.
Java, Distributed
Understödjer arbete i nätverk
Kan hämta data och program på olika maskiner
Olika TCP/IP protokoll understöds, fungerar därför bra med Internet
Java, Secure and Robust
Pålitlighet är en nyckelfråga.
Starkt typat, dvs variabler ska deklareras med typangivelse
Det går inte att adressera kodavsnitt, som om dessa vore data (jmfr C++)
Ursprunget av program som hämtas från WWW kontrolleras
Java, Architecture Neutral
and Portable -
High-performance
Java kan köras på olika maskiner och under olika OS, både som enskilda program och i nät
Kompileras till en "neutral kod" (byte code), som sedan exekveras på en maskin med ett run-time-system
Standardiserade datatyper etc
Färdiga biblioteksfunktioner för filhantering mm
Kan kompileras "hela vägen" för ökad hastighet
Java, Multithreaded
Programmet kan lösa olika uppgifter skenbart parallellt
Java, Dynamic
Kan hantera förändringar i omvärlden
Flexibla snitt mellan bibliotek och program
Klasser kan adderas under programkörning
Vidare i Java
Variabler, datatyper
Flödeskontroll och loopar (ej break-continue), konstruktioner
Flödeskontroll och loopar (ej break-continue), fullständiga programexempel
Arrayer och strängar.
Funktioner, parameteröverföring
15 - 25 minuter
Helst tre och tre
Anteckningar (enkla) på WWW (således inte en tutorial)
Vidare i Java
Tidgränserna gäller. Ha mycket exempel att "flexa" med
Fundera på målgruppens (dvs dina studiekamraters, inte din lärares) behov
Allt tar längre tid än vad man tror vid tavlan, oavsett vad man tror ;-D
Ta bara upp relevanta konstruktioner, illustrera med relevanta exempel
Tydliga OH är bra. Skriva på tavlan tar ofta (alltför) lång tid.
Keep smiling! :-D