Om Java C =>Java syntax variabler metoder färdiga klasser

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

INTRODUKTION TILL PROGRAMMERING
Repetition av språket Java
F2 - Intro till Java1 Föreläsning 2 - Intro till Java  Sammanfattning av Lektion 1 (kap 2): • Vad behövs för att kunna programmera? • DrJava • Java •
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
Klassarv och inkapsling
Välkommen Vahid Mosavat
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Programmeringsteknik för K och Media
Programkodens uppbyggnad
Att programmera i språket Java
Föreläsning 2 Datalogi för E1 2D1343
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
Strömmar Vid läsning och skrivning används något som kallas strömmar.
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
i olika programmeringsspråk
Programmering B PHP Lektion 2
Föreläsning 11 Arrayer.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Ali Ghodsi Variabler En variabel är en sorts behållare som man kan placera data i Man måste ange typ och namn för alla variabler.
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Objektorienterad Modellering Programmering och Analys
Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden.
Programspråk Två olika typer av program omvandlar högnivå till lågnivå program: Interpreterande program och kompilerande program. Python är ett interpreterande.
Metoder och slingor Metoder och dess typ Slingor med while och for-satser.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Objektorienterad programmering i Java
Föreläsning 10 Stränghantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Föreläsning 4 Klasser Och Objekt.
1 ITK:P2 F6 Sortering av generiska containerklasser DSV Peter Mozelius.
PROGRAMMERINGSTEKNIK Övningsgrupp 3 Marcus Hjelm
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Central-enhet PM CPU BIOS Skiv- minne Sekundär- minnes- enheter (SM)
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Programmeringsteknik för K och Media
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 3 Operatorer Flödeskontroll Primitiva datatyperKlasser i API och egna klasser int double byte float char boolean short long String BufferedReader.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP&M – Föreläsning 3 kap 2-4 Repetition Föreläsning-datayper-syntax-tilldelning.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Python.
Föreläsning 3: Booleans, if, switch
Presentationens avskrift:

Om Java C =>Java syntax variabler metoder färdiga klasser Minikurs i Java F1 Om Java C =>Java syntax variabler metoder färdiga klasser

Java C/C++ kompilering till bytekod kompilering till binärkod direkt exekvering platformsberoende varierande längd på variabler hårdvarunära, snabbt flexibel - potentiellt riskabel manuell minneshantering ingen indexkontroll multipelt arv operator overloading frivillig särfallshantering call by value OR name (&) Java kompilering till bytekod interpretering platformsoberoende fix längd på variabler jit, run time optimering restriktiv - "säker" skräpsamlare indexkontroll enkelt arv samt interface ingen operator overloading särfallshantering call by value(prim),by name (obj)

Ett javaprograms uppbyggnad Ett program består av en eller flera klasser Varje klass innehåller en eller flera metoder Varje metod består av satser Metoden main utförs allra först när programmet körs

Exempel: // Ett gratulerande program import java.io.*; class Grattis { public static void main (String[] args) { String namn = ”Fingal Olsson”; int n = 102; System.out.print(”Grattis ” + namn + ” på”); System.out.println(n + ”-årsdagen!”); }

Kompilering och interpretering Programmet måste översättas till maskinkod för den dator du använder För Javaprogram görs översättningen i två steg: Kompilering: programmet översätts till maskinoberoende bytekod Interpretering: bytekoden tolkas för den aktuella datorn och maskinkoden körs

Hur gör man? För att kompilera Grattis.java skriver du javac Grattis.java varvid filen Grattis.class (bytekod) skapas. Den interpreteras och körs när man skriver java Grattis

Reserverade ord Följande ord finns definierade i Java: abstract boolean break byte (byvalue) case (cast) catch char class (const) continue default do double else extends false final finally float for (future) (generic) (goto) if implements import (inner) instanceof int interface long native new null (operator) (outer) package private protected public (rest) return short static super switch Synchronized this throw throws transient true try (var) void volatile while

Javas API API står för Application Programmer Interface En samling klasser som man kan använda vid behov Hämtas till programmet med import, t ex import java.io.*; print och println finns i API:n java.io Se Appendix O i boken!

Kommentarer En kommentar förklarar vad programmet gör. Enradkommentar //Detta är en enradskommentar Flerradskommentarer /* Denna kommentar går över flera rader*/

Identifierare Identifierare är orden som du själv inför i ditt program Kan bestå av bokstäver, siffror, _ och $ Får inte börja med en siffra Java skiljer på VERSALER och gemena. T ex är Summa och summa olika identifierare

Litteraler En litteral är ett värde som skrivs direkt i programkoden, t ex heltal: 17 -42 4711 flyttal: 3.14159 -12.5 2.9E12 tecken: ’A’ ’?’ ’8’ strängar: ”Vad heter du?” logiska: true false

Variabler En variabel är en identifierare som representerar ett minnesutrymme för en viss typ av data Variabler måste deklareras innan dom används Exempel: int antal;

Primitiva datatyper Varje värde som lagras i minnet är av en viss datatyp Java har åtta fördefinierade typer som kallas primitiva datatyper: byte float short double int boolean long char

Heltal Det finns fyra olika heltalstyper: Namn byte short int long Storlek 8 bitar 16 bitar 32 bitar 64 bitar Min-värde -128 -32,768 -2,147,483,648 < -9 x 1018 Max-värde 127 32,767 2,147,483,647 > 9 x 1018

Flyttal Det finns två flyttalstyper: Min-värde -3.4 x 1038 Max-värde 3.4 x 1038 1.7 x 10308 Namn float double Storlek 32 bitar 64 bitar

Tecken I en variabel av typen char kan ett tecken lagras Java använder teckenkodningssystemet Unicode som lagrar tecken i 16 bitar Tecken från många olika språk finns med, däribland å, ä och ö. Se www.unicode.org Teckenkonstanter omges av apostrofer, t ex ’a’ ’&’ ’\n’ (retur) ’\’’ (apostrof)

Boolean En boolesk variabel kan endast anta värdena true och false Exempel: boolean parkering = false; Booleska variabler används ofta i villkor

Omslagsklasser (Wrapper classes) För varje primitiv datatyp finns en motsvarande klass, t ex Dessa klasser innehåller en del användbara metoder t ex för att omvandla från strängar till tal Datatyp int double char boolea n Klass Integer Double Characte r Boolean

Matematiska operatorer 2.52 + 19 blir 21.52 4.18 - 0.02 blir 4.16 3.5 * 2 blir 7.0 19 / 4.0 blir 4.75 19 / 4 blir 4 19 % 4 blir 3 % ger resten vid heltalsdivision

Logiska operatorer Villkor kan kombineras med följande tre operatorer: if (ålder <= 4 || ålder >= 21) System.out.println(”OK!”);

Jämförelseoperatorer I villkor kan följande operatorer användas: Strängar kan inte jämföras med operatorerna ovan (eftersom strängar inte är primitiva datatyper) .

Strängjämförelse För jämförelse av strängar finns metoderna public boolean equals(String s) public boolean equalsIgnoreCase(String s) För att avgöra bokstavsordning finns public int compareTo(String s) Anropet s1.compareTo(s2) ger negativt värde om s1 kommer före s2 positivt värde om s1 kommer efter s2 noll om strängarna är lika

Operatorn + Operatorn + används både för att slå ihop strängar och för att addera tal Exempel 1: ”Grattis” + namn två strängar slås ihop till en Exempel 2: ” på ” + n talet i n omvandlas till en sträng och strängarna slås ihop Exempel 3: x + y talen i variablerna x och y adderas

Flödeskontroll Boolean fortsätt; while (fortsätt) { /* Satser som upprepas */ } do { } while (fortsätt); for (int i=0; i<2; i++) {

Val if (otur != 13) /* Satser om sant */ else /* Satser om falskt */ switch (tkn) { case 'A': /* Satser om A*/ break; default: /* Satser om inget ovan */ }

Inläsning Användaren kan ge en variabel ett nytt värde om programmet läser in från tangentbordet: Se till att eventuella fel skickas vidare public static void main (String[] args) throws IOException { Tala om varifrån inläsningen ska ske BufferedReader stdin = new BufferedReader (new InputStreamReader (System.in)); Läs in raden rad = stdin.readLine();

Inläsning av tal Metoden readLine() läser in en sträng. Vid behov kan man omvandla strängen till ett tal heltal = Integer.parseInt(rad); Inläsning och omvandling kan göras i ett steg: heltal = Integer.parseInt(stdin.readLine()); flyttal = Double.parseDouble(stdin.readLine()); I gamla versioner av Java (1.1) måste man skriva: flyttal=(new Double(stdin.readLine())).doubleValue();

StringTokenizer Kan dela upp en sträng i delar (tokens), t ex ta fram orden ur en mening. Normalt delas strängen vid mellanslag, tab och radbyte. Man kan också ange vilka tecken strängen ska delas vid. Importeras med: import java.util.StringTokenizer;

Konstruktorer StringTokenizer(String str) str är strängen som ska delas upp. StringTokenizer(String str, String skiljetecken) skiljetecken anger vilka tecken str ska delas vid. String skiljetecken, boolean rubbet) rubbet ska vara true om även skiljetecknen ska returneras.

Metoder hasMoreTokens() Returnerar true om det finns några tokens kvar att plocka fram ur strängen. nextToken() Returnerar nästa token. countTokens() Räknar ut hur många tokens det finns i strängen.

Exempel String mening; StringTokenizer orden; mening = stdin.readLine(); // Skapar en ny tokenizer orden = new StringTokenizer(mening); // Skriver ut första ordet stdout.println(orden.nextToken()); // Skriver ut andra ordet

Vector Används som en vektor men måste importeras: Fördelar: Nackdelar import java.util.Vector; Fördelar: Längden utökas automatiskt när man lägger in ett nytt element. Lätt att stoppa in element var som helst. Nackdelar Ineffektivt. Varje element blir av klassen Object så man måste omvandla framtagna element till rätt klass.

Metoder i klassen Vector addElement(Object element) Lägger till ett element. removeElement(Object element) Tar bort ett visst element. elementAt(int index) Returnerar det element som finnspå plats index firstElement() och lastElement() Returnerar första resp sista elementet. size() Returnerar antal element.

Exempel Vector balls = new Vector(); Ball b; for (int i = 0; i < 22; i++) { b = new Ball(100, 100, 5); balls.addElement(b); } b = (Ball) balls.elementAt(16); stdout.println(”Antal: ” + balls.size());

Filer Enda sättet att spara data mellan programkörningar är att lagra dessa på fil. På kursbiblioteket finns två klasser som gör det enklare att läsa från och skriva på fil. SimpleTextFileReader SimpleTextFileWriter Om du vill använda någon av klasserna kan du kopiera den från kursbiblioteket och lägga den sist i ditt program.

SimpleTextFileReader // Öppna fil för läsning SimpleTextFileReader in = new SimpleTextFileReader(”infil.txt”); String str; // Läs in alla rader och skriv ut på skärmen while ((str = in.readLine())!= null) { System.out.println(str); } in.close();

SimpleTextFileWriter // Öppna fil för utskrift SimpleTextFileWriter out = new SimpleTextFileWriter (”utfil.txt”); out.println(”Detta skrivs på filen!”); System.out.println(”Detta på skärmen”); // Stäng filen out.close();