Android Programmierung mit Java Studiengang MI

Ähnliche Dokumente
Arbeitsblätter für die Lehrveranstaltung OOP JAVA 1

Grundlagen der Programmierung Teil1 Einheit III Okt. 2010

Primitive Datentypen

Android-Apps Gegenüberstellung Delphi java

Java-Schulung Grundlagen

Klausur Grundlagen der Programmierung

RO-Tutorien 3 / 6 / 12

Einstieg in die Informatik mit Java

Beispiele für Ausdrücke. Der imperative Kern. Der imperative Kern. Imperativer Kern - Kontrollstrukturen. Deklarationen mit Initialisierung

Grundlagen der Programmierung Teil1 Einheit III Okt. 2009

Wie entwerfe ich ein Programm?

Datenbankanwendungsprogrammierung Crashkurs Java

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke

1 Polymorphie (Vielgestaltigkeit)

System.out.println("TEXT");

Die Programmiersprache C Eine Einführung

Distributed Computing Group

Vorkurs Informatik WiSe 16/17

AuD-Tafelübung T-B5b

Theorie zu Übung 8 Implementierung in Java

2. Methoden. n Generelles zum Aufruf von Methoden. n Parameterübergabemechanismen (call by value, call by reference)

Einführung in C#.NET. 1 Übersicht. 2 Typen (Types) Dieser Artikel stammt aus dem Magazin von C++.de (

Modul 122 VBA Scribt.docx

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Programmieren in Java

Vorlesung Programmieren

Zeichen. Datentyp char. char ch = 'x'; Page 1. Zeichen braucht man zur Verarbeitung von Texten, Namen, Bezeichnungen. Zeichencodes

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Algorithmen zur Datenanalyse in C++

FH D. Objektorientierte Programmierung in Java FH D FH D. Prof. Dr. Ing. André Stuhlsatz. Blöcke. Beispiel: Variablen in Blöcken

Grundlagen. Die Komponenten eines C Programms. Das erste Programm

THE GO PROGRAMMING LANGUAGE. Michael Karnutsch & Marko Sulejic

Einführung in die Informatik: Programmierung und Software-Entwicklung, WS 11/12 1. Kapitel 11. Listen. Listen

Programmieren 2 Java Überblick

PROGRAMMIERUNG IN JAVA

Tutorium Rechnerorganisation

Einführung in die C-Programmierung

3. Anweisungen und Kontrollstrukturen

Programmieren in C. C Syntax Datentypen, Operatoren und Kontrollstrukturen. Prof. Dr. Nikolaus Wulff

Unterlagen. CPP-Uebungen-08/

Vorlesung Programmieren

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Vorlesung Programmieren

C allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.

Info B VL 8: Abstrakte Klassen & Interfaces

Gliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik

Probeklausur: Programmierung WS04/05

Die for -Schleife HEUTE. Schleifen. Arrays. Schleifen in JAVA. while, do reichen aus, um alle iterativen Algorithmen zu beschreiben

Versuchsziele Kenntnisse in der Anwendung von: Sortieren mit Klassen Benutzung von generischen Klassen o Definition o Sortierung.

Einstieg in die Informatik mit Java

EINI LW/WiMa. Einführung in die Informatik für Naturwissenschaftler und Ingenieure Vorlesung 2 SWS WS 14/15

Grundlagen der Programmierung in C++ Arrays und Strings, Teil 1

Welche Informatik-Kenntnisse bringen Sie mit?

1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)

Dr. Monika Meiler. Inhalt

Grundlagen der Informatik 2

Imperative Programmierung in Java. Algorithmen und Datenstrukturen II 1

Objektorientierung (OO)

5. Tutorium zu Programmieren

1. Grundzüge der Objektorientierung 2. Methoden, Unterprogramme und Parameter 3. Datenabstraktion 4. Konstruktoren 5. Vordefinierte Klassen

Das Typsystem von Scala. L. Piepmeyer: Funktionale Programmierung - Das Typsystem von Scala

Javakurs 2013 Objektorientierung

Javakurs für Anfänger

Grundlagen der Informatik Enums, Strings und Arrays

Informatik B von Adrian Neumann

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Ein erstes Java-Programm

Programmieren I. Kontrollstrukturen. Heusch 8 Ratz Institut für Angewandte Informatik

Einführung in die Programmierung Wintersemester 2011/12

Programmieren I + II Regeln der Code-Formatierung

C-Kurs 2010 Pointer. 16. September v2.7.3

Zusammenfassung des Handzettels für Programmieren in C

1. Referenzdatentypen: Felder und Strings. Referenz- vs. einfache Datentypen. Rückblick: Einfache Datentypen (1) 4711 r

Java 8. Elmar Fuchs Grundlagen Programmierung. 1. Ausgabe, Oktober 2014 JAV8

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Java I Vorlesung 6 Referenz-Datentypen

Objektorientierte Programmierung OOP Programmieren mit Java

! 1. Unterklassen und Vererbung! 2. Abstrakte Klassen und Interfaces! 3. Modularität und Pakete! 4. Ausnahmen (Exceptions) II.4.

Java - Schleifen. Bedingung. wiederhole. Anweisung Anweisung Anweisung. Leibniz Universität IT Services Anja Aue

Moderne C-Programmierung

Grundlagen der Objektorientierten Programmierung - Statische Arrays

EXCEL VBA Cheat Sheet

Advanced Programming in C

Musterlösungen zur Klausur Informatik 3

Klassen und Objekte. Einführung in Java. Folie 1 von Mai Ivo Kronenberg

Einführung in ActionScript

Programmieren I. Kontrollstrukturen Heusch 8 Ratz Institut für Angewandte Informatik

Einstieg in die Informatik mit Java

Probeklausur: Programmierung WS04/05

Software Entwicklung 1

Auswahlen (Selektionen)

C# - Einführung in die Programmiersprache Arrays, Enumeration und Collections. Leibniz Universität IT Services Anja Aue

Einführung in die Programmierung Wintersemester 2008/09

Wo sind wir? Kontrollstrukturen

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Kontrollstrukturen. Wo sind wir? Anweisung mit Label. Block. Beispiel. Deklarationsanweisung

II.1.1. Erste Schritte - 1 -

Transkript:

Android Programmierung mit Java Studiengang MI Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://mwilhelm.hs-harz.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik: Android 1 Überblick: Einleitung, Installation Sprache elementare Datentypen Variablen und Kontrollstrukturen Arrays, Funktionen, Rekursionen Objekte, etc. Android Studio Grafische Oberfläche Einfache UI-Elemente Layouts Core-Data Sensoren Viele Beispiele Gliederung FB Automatisierung und Informatik: Android 2 1

Links https://developer.android.com/studio/intro/index.html https://developer.android.com/studio/index.html FB Automatisierung und Informatik: Android 3 Java: Kommentare: Allgemeine Kommentare // nur eine Zeile /* */ Bereich Anfang Bereich Ende FB Automatisierung und Informatik: Android 4 2

Java: Variablen Deklaration immer explizit Zuweisung int implicitinteger; implicitinteger = 2.0; double implicitdouble = 70.0; implicitdouble = 70.1; final double constantdouble = 42; constantdouble = 43; MyClass mc = new MyClass(); mc.a = 22; (new MyClass()).a = 22; Java: Datentypen int float Integer Float double Double, booelan String Object FB Automatisierung und Informatik: Android 5 Java: Datentypen Int byte 8-Bit, unsigned-int -128 +127 short 16-Bit, unsigned-int -32768 32767 int 32-Bit, signed-int -2.147.483.648 +2.147.483.647 long 64-Bit, signed-int -9223372036854775808... 9223372036854775807 Floating-Point float, Float double, Double boolean, Boolean BigDecimal String class KEINE KEINE struct tupel Single-Format (1,8,23-Bit, 7 Stellen) Double-Format (1,11,52-Bit, 15-Stellen) Numerik-Datentyp mit einfachen Operatoren FB Automatisierung und Informatik: Android 6 3

Java: String-Datentyp Zuweisung String string1=""; String string2= new String("") ; String string3="abc"; string3+="def"; // concat string3.append("def") ; // besser StringBuilder String string4=string3 + "ghi"; FB Automatisierung und Informatik: Android 7 Java: String-Datentyp Konstanten final String stringconst="42 ist die Antwort auf alle Frage"; final String dollarsign; dollarsign = "\u0024"; // $, Unicode scalar U+0024 Unicode String blackheart = "\u2665"; //, Unicode scalar U+2665 String sparklingheart = "\u1f496"; //, Unicode scalar U+1F496 System.out.println(dollarSign); System.out.println(blackHeart); System.out.println(sparklingHeart); double \u03c0 = 3.141592653589793; \u0063\u006c\u0061\u0073\u0073\u0020\u0041\u0020\u007b\u007d FB Automatisierung und Informatik: Android class A { 8 4

FB Automatisierung und Informatik: Android 9 Java: String-Datentyp Methoden equals length charat indexof compareto comparetoignorecase concat contains isempty lastindexof matches Methoden replace split substring tolowercase touppercase tochararray() trim format valueof printf Exception FB Automatisierung und Informatik: Android 10 5

Java: String-Datentyp Abfragen String sind Referenzen if (string1.isempty()) { for (char ch : "Dog! ".tochararray() { System.out.print(ch); FB Automatisierung und Informatik: Android 11 Java: Konvertierung String s="1.23"; int i = Integer.valueOf(s1); // Rückmeldung mit einer Exeption Exception in thread "main" java.lang.numberformatexception: For input string: "AA" at java.lang.numberformatexception.forinputstring(unknown Source) at java.lang.integer.parseint(unknown Source) at java.lang.integer.parseint(unknown Source) at Test.main(Test.java:27) String s1="aa"; try { int i1 = Integer.valueOf(s1); catch (NumberFormatException e) { System.out.println("Fehler: "+e); FB Automatisierung und Informatik: Android 12 6

Java: Konvertierung String s="123"; int i = Integer.valueOf(s1); // Rückmeldung mit einer Exeption Exception in thread "main" java.lang.numberformatexception: For input string: "AA" at java.lang.numberformatexception.forinputstring(unknown Source) at java.lang.integer.parseint(unknown Source) at java.lang.integer.parseint(unknown Source) at Test.main(Test.java:27) String s1="aa"; try { int i1 = Integer.valueOf(s1); catch (NumberFormatException e) { System.out.println("Fehler: "+e); FB Automatisierung und Informatik: Android 13 Java: Konvertierung String s="a123"; double d = Double.parseDouble(s); Exeption // Rückmeldung mit einer Exception in thread "main" java.lang.numberformatexception: For input string: "AA" at java.lang.numberformatexception.forinputstring(unknown Source) at java.lang.integer.parseint(unknown Source) at java.lang.integer.parseint(unknown Source) at Test.main(Test.java:27) String s1="aa"; try { double d = Double.parseDouble(s); catch (NumberFormatException e) { System.out.println("Fehler: "+e); FB Automatisierung und Informatik: Android 14 7

Java: Konvertierung String s="a123"; double d = Double.valueOf(s); // Rückmeldung mit einer Exeption Exception in thread "main" java.lang.numberformatexception: For input string: "AA" at java.lang.numberformatexception.forinputstring(unknown Source) at java.lang.integer.parseint(unknown Source) at java.lang.integer.parseint(unknown Source) at Test.main(Test.java:27) String s1="aa"; try { double d = Double.valueOf(s); catch (NumberFormatException e) { System.out.println("Fehler: "+e); FB Automatisierung und Informatik: Android 15 Java: Operatoren:!= % %= & && &* &+ &- &= * *= + += - -= / /= < << <<= <= = = > >= >> >>= ^ ^= = ~ ~= ~> xor bit Negation Coalescing Op. a?? b wenn a<>nil a! sonst b FB Automatisierung und Informatik: Android 16 8

Java: is-operator: Der Operator instanceof testet, ob eine Instanz einem Typ entspricht: int i1 = Integer.valueOf(s1); if (i1 instanceof Integer) { System.out.println("int ja"); // Fehler Integer i1 = Integer.valueOf(s1); if (i1 instanceof Integer) { System.out.println("int ja"); // korrekt FB Automatisierung und Informatik: Android 17 Java: as-operator: Der Operator (Typ) wandelt eine Variable in einen anderen Typ um. Hier wird keine Überprüfung durchgeführt. Es wird nur durchgeführt, wenn der Compiler vorher erkennt, dass das Casting gefahrlos möglich ist. Es ist nur sinnvoll beim UpCasting: float nach double byte nach int Hier wird keine Überprüfung durchgeführt. Bei einem Fehlerfall wird eine Exception ausgelöst: CastException FB Automatisierung und Informatik: Android 18 9

Java: if-anweisungen: Immer mit den Klammern (), kein elif int a = 5 int b = 7 if (a > b) { print("a ist größer als b"); else { print("a ist kleiner als b"); if (a > b) print("a ist größer als b"); else print("b ist kleiner als b"); <= FB Automatisierung und Informatik: Android 19 Java: case-anweisungen int a = 4; switch (a) { case 1: case 2: System.out.println("1 oder 2"); break; case 4: System.out.println("1 oder 2"); break; default: // muss nicht immer eintragen werden System.out.println("else"); FB Automatisierung und Informatik: Android 20 10

Java: case-anweisungen String a = "a"; switch (a) { case "a": System.out.println("a"); case "b": System.out.println("b"); default: System.out.println("else"); FB Automatisierung und Informatik: Android 123 21 While-Schleife Aufbau: 1) Initialisierung 2) while ( Bedingung/en ) { 3) Schleifenrumpf / Anweisungen 4) Bedingung zeigt an, wie oft die Schleife durchlaufen wird FB Automatisierung und Informatik: Android 22 11

Do-While-Schleife Aufbau: 1) Initialisierung 2) do { 3) Schleifenrumpf / Anweisungen 4) 5) while ( Bedingung/en ); Bedingung zeigt an, wie oft die Schleife durchlaufen wird FB Automatisierung und Informatik: Android 23 For-Schleife for ( Init; Bedingung; Testvariablen anpassen ) { // Fuehre Arbeiten durch // Berechne Bedingung neu for ( int iy=0; iy<10; iy=iy+1 ) { line( 10, iy, 300, iy); 2. Variante?? for ( int iy=0; iy<10; iy=iy-1 ) { line( 10, iy, 300, iy); FB Automatisierung und Informatik: Android 24 12

For-each-Schleife for ( Datentyp : Array/Liste ) { // Fuehre Arbeiten durch // Berechne Bedingung neu int[] feld = {2,3,5,7,11,13,17; for ( int i : feld ) { syso( i); FB Automatisierung und Informatik: Android 25 Java: Arrays List Oberklasse Array fest ArrayList flexibel Vector flexibel LinkedList flexibel Hashtable FB Automatisierung und Informatik: Android 26 13

Deklaration einer 10x10 Matrix int n=10; int m=10; int[][] a = new int[n][m]; int[][] b = new int[n][m]; for(int i=0; i<n; i++) { for(int j=0; j<m; j++) { a[i][j] = i+j; b[i][j] = i+i + j<<1; // << bedeutet Multiplikation mit zwei // >> bedeutet Multiplikation mit 0,5 FB Automatisierung und Informatik: Android 27 Sichere Initialisierung von Arrays Anstatt float[] werte = new float[6]; for(int i = 0; i < 6; i++) { werte[i] = 0; lässt sich sicherer schreiben: int[] float[] werte = new float[6]; for(int i = 0; i < werte.length; i++) { werte[i] = 0; FB Automatisierung und Informatik: Android 28 14

Java: Arrays var array: [String] = [] var array: [String]() Array.append("Michel") Array.append("Andrea") for personname in array { print("person: \(personname)") for i in 0 len(array) -1 { print("person: \(array[i])") for i in 0..<len(array) { print("person: \(array[i])") ev. FEHLER FB Automatisierung und Informatik: Android 29 Java: mehrdimensionale Arrays var array = [ [1,2,3] [4,5,6,7,8], [9,10] ] array.count liefert 3 for (row in 0..<array.count) { for (col in 0..<array[row].count) { print("row: \(row) col \(col) : \(array[row][col]) ") var array2d = [ [Int] ]() var array3d = [ [ [Int] ] ]() FB Automatisierung und Informatik: Android 30 15

Java: Enumeration: Enumeration sind besser als mehrere Konstante: final int fb_ai =1; final int fb_vw =2; final int fb_w =3; printfb(int fn) {. Enumeration enum FB {AI, VW, W; static void test5() { FB fb = FB.AI; Enumeration enum FB {AI=1, VW=2, W=3; static void test5() { FB fb = FB.AI; Enum sinnvoll auch in einer switch-anweisung FB Automatisierung und Informatik: Android 31 Java: void Funktionen: call by value, call by reference void print1() { print("hallo"); print1(); void print2(a:int) { print("a", a); print2(a:33); void printint() { int a=3; print("a hat den Wert:"+a); printint(); void print3(a:int, b:int) { print("a", a, "b", b); print3(a:33, b:11); FB Automatisierung und Informatik: Android 32 16

Java: void Funktionen double Inch2Cm(inch:double) { return inch*2.54; double cm=1.23; double inch=inch2cm(cm); FB Automatisierung und Informatik: Android 33 Java: try catch, gibt es nur mit Funktionen Fehlerabfangen try{ catch (ExceptionTyp1 e1) { catch (ExceptionTyp2 e2) { FB Automatisierung und Informatik: Android 34 17

Java: Klassen: class MyClass: OptSuperclass, OptInterface, OptInterface2 { String myproperty; public MyClass() { myproperty = "abc ; int doit() { return 0; int doit(int a) { return a+1; public int getmyproperty() { return myproperty; public void setmyproperty(int value) { myproperty = value; FB Automatisierung und Informatik: Android 35 Java: Klassen class Instanz: MyClass Properties Type Methoden interface this null Vererbung mit new Konstruktor, immer der Name der Klasse setter / getter, extra Methoden statische und dynamische Methoden Schnittstelle, WICHTIG eigene Objekt, Instanz keinen Wert ja, aber nur einfache Vererbung FB Automatisierung und Informatik: Android 36 18