02 - Java datatyper Grundlæggende om datatyper og variable.

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Tabeller av objekter Klassen ArrayList
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
14 okt. 2003, Arne Maus Inst. for informatikk, UiO
C++ for Java-programmerere
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Uke 8 - Mer om: Objekter, klasser og pekere
NUUG.topic = Ruby.new Johannes Brodwall Takk til Dave Thomas for bruk av enkelte slides.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Høgskolen i Oslo Webprogrammering Introduksjon til Java-scripting.
Java 12 Mer filbehandling - skrive til fil HashMap Et større eksempel Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Java 14 Et eksempel fra bioinformatikk: analyse av biologiske sekvenser Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
IS-102 Klassedefinisjoner
Eiendomregister mars 2002 Arne Maus. import java.util.*; import inf101.*; /* Klasse med main() som starter hele programmet */ class EiendomsregisterMain.
Tema: Introduksjon Hvorfor Velocity? Installasjon Velocity VS. JSF / JSP Eksempler Oppsumering.
C# for javaprogrammerere
En gang til!? .
Objekt Orientert Programmering (OOP). Objektorientering (OO)1/6 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på.
Introduksjon til Java 5.0. Hva er nytt i 5.0? Generiske typer For-løkke med iterator (for-hver løkke) Automatisk innpakking av primitive typer Metadata.
Kap 05 Abstrakte datastrukturer. Arv - Implementering Interface / Abstrakte klasser / Konkrete klasser Concrete classAbstract class Interface extends.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Objektorientert programmering
ADA 95 – del3 Foreleser: Olaf Hallan Graven Bok: Programming in ADA95 (2nd) John Barnes.
  Den perfekte julegaven til Javakoden din Johannes Brodwall Steria.
Uke 7 - del I: Repetisjon del II: Objekter, klasser og pekere 30 sept. 2003, Arne Maus Inst. for informatikk, UiO.
Java 3 Mer om uttrykk Terminal I/O Forgreninger
Java 11 Programmering med og uten objekter: hva er forskjellen?
OOT Seminar H-97 CORBA Praktisk del. Valg av ORB implementasjon n Har valgt å bruke Visigenic sin ORB implementsjon n ORB’en er 100% Java kodet n Bygger.
Paradigmer i Programmering 3. Højere ordens funktioner Idag: Højere ordens funktioner Algebraiske datatyper Næste gang: I/O, Filer, interaktive programmer.
Database tilgang Opret forbindelse til din Ms SQL database inde i Visual Studio fra Server Explorer vinduet.
1 Kap 06 Ordnede / Sorterte lister Oppgave nr 06_02 Polynomer Klassehierarki Javadokumentasjon.
Løsningsforslag til MOFScript oppgave. Metamodellen.
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
1 Pointere, referencer, struct’s mv.. 2 Erklæringer Eksempel på erklæringer int i, *ip, f ( ), *fip( ), (*pfi) ( ); Erklærer en integer, en pointer til.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
09 – Arv og polymorfi i java
B.V. Electronic Østerbro Skive GuideOnLine Framework.
INF1000 (Uke 14) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B.
INF1000 (Uke 13) Resten av eksamen H03 + del av V05 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.
Indledende Datalogi /kelk 1 Need to know Løkker Klasser, instanser og Objekter Hvorfor objektorientering? Scope – hvor erklæres en variabel? ”Access Modifiers”
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
INF Objektorientert programmering
Compiler/fortolker struktur Mellem- kode Kode- generering Kode- optimering Lexikalsk- analyse Syntax- analyse Semantik- analyse if viggo == 3 then....
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Ekstra mange tips til Oblig 3! 12. mars 2007 Are Magnus Bruaset og Arild Waaler Inst. for informatikk, UiO.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
INF1000 (Uke 12) Sortering og eksamensoppgaver Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Anja B. Kristoffersen.
Byggeklosser i java  Klassedefinisjon  Variabel deklarasjon  Metodedeklarasjoner  En ordentlig klasse  Spesielle/kryptiske skrivemåter  løkker og.
1 Input og output mv.. 2 printf int printf(char *format, arg1, arg2, …, argn) returnerer antal udskrevne tegn Format indeholder to typer objekter: almindelige.
Inf1000 (Uke 10) HashMap og ArrayList
INF1000 (Uke 4) Mer om forgreninger, While-løkker
XML og JDOM Helge Furuseth XML  XML = Extensible Markup Language Basert på SGML – Standard Generalized Markup Language  HTML =
Inf1000 (Uke 5) Arrayer, filer og tekst
Typeparametrisering Generel kode (generisk kode).
Triks Avslutt alle klasser, metoder og løkker samtidig som du lager dem. Deklarer alle variablene/referansene på begynnelsen av klassen. Hvis du definerer.
Primitive typer, klasseegenskaber samt identitet og lighed
IS-102 Interaksjon med objekter
BilSalg klassedatastruktur Bil klassedatastruktur
CMPE 152: Compiler Design April 23 Class Meeting
BilSalg klassedatastruktur Bil klassedatastruktur
Utskrift av presentasjonen:

02 - Java datatyper Grundlæggende om datatyper og variable

2 NOEA2009Java-kursus – Datatyper En simpel klasse public class Book { private String title; private String author; public Book(String t, String a) //Constructor { title= t; author= a; } String toString(){ return (title+" "+author); } Definer klassen Book {…} Er samling af udtryk Kaldes blok eller scope Attribut eller instans variable Variabel, der hører til en instans, dvs. objekt. Bruges normalt til initialisering Konstruktør. Kaldes når objektet instanseres Instans metode. Er en funktion der udføres på objektet Metoden er arvet fra Object, og bruges fra Java 1.5

3 NOEA2009Java-kursus – Datatyper Driver program public class Main { public static void main(String[] args) { Book b1= new Book("C#","Troelsen"); Book b2= new Book("Java","Kölling"); System.out.println(b1.toString()); System.out.println(b2); } Programmet startes fra main-metoden Den skal have signaturen: public static void main(String[] args) Instansering af 2 objekter af klassen Book Kald metode på objekt toString() kaldes implicit Output fra program: C# Troelsen Java Kölling

4 NOEA2009Java-kursus – Datatyper Coding Guidelines 1.Java programmer bør altid have.java extensionen. 2.Filnavne skal være det samme som navnet på public class. F.eks hvis navnet på public class er Hello, bør du gemme den I en fil der hedder Hello.java. 3.Du bør skrive kommentarer i koden der beskriver hvad klassen og evt. visse metoder gør. 4.Det er en konvention i Java at klasse navne starter med stort bogstav, og hvert nyt ord starter også med stort. F.eks: MinEgenKlasse 5.Det samme gælder for variabel og metodenavne, bortset fra at de starter med lille bogstav: minVariabel, minMetode()

5 NOEA2009Java-kursus – Datatyper Kommentarer Der findes 3 typer kommentarer i Java: –C++ style: //Resten af linien er en kommentar –C style: /* Det er mellem /*..*/ er en kommentar */ –JavaDocs: Kan bruges til automatisk generering af dokumentation. F.eks: /** This is an example of special java doc comments used for \n generating an html documentation. It uses tags Florence 1.2 */

6 NOEA2009Java-kursus – Datatyper Udtryk Kort Udtryk eller statements består af en eller flere linier afsluttet med semikolon F.eks: –System.out.println(“Hello world”); Flere statements kan samles i en blok, markeret med { ….} F.eks: –for(int i=0;i<10;i++) { int x=i*i; System.out.println(i+”: ”+x); }

7 NOEA2009Java-kursus – Datatyper Datatyper I Java er der de simple datatyper man forventer: –boolean (for logical) –char (for textual) –byte –short –int 20 svarer til 024 (octal) og x014 (hex) –long (integral) –Double450.0 svarer til 450f og 4.5e2 –float (floating point). String er lidt speciel, da den er en klasse, men kan opføre sig som en simpel datatype

8 NOEA2009Java-kursus – Datatyper Variable Variable skal erklæres med en datatype: Og initialiseres før den kan bruges: public void metode() { int width, height; width = 2; height = 4; int area = width * height; int x; int y = x * 2;... } Erklæring Erklæring + initialiering Fejl, x er ikke init.

9 NOEA2009Java-kursus – Datatyper Type konversion Implicit type konversion: –fra mindre til større type Ellers er der brug for typecast eller explicit konversion… –typecast syntaksen er typen i parentes –Konversion baseret på System.Convert klassen int i = 5; double d = 3.2; string s = "496"; d = i; i = (int) d; i = Integer.parseInt(s); implicit konversion typecast nødvendig Konversion nødvendig

10 NOEA2009Java-kursus – Datatyper Value vs. reference typer I Java er 2 kategorier af data typer Value typer: –variablen repræsenterer en værdi ("bits") Reference typer: –variablen repræsenterer en reference til et objekt –aktuelle data er indeholdt i objektet int i; i = 10; 10 string s; s = "calico"; "calico"

11 NOEA2009Java-kursus – Datatyper Value type eller primitiv type: –Variable med primitive data typer som int eller long. –Gemmer data direkte på det sted i memory, hvor variablen er gemt Reference Variables –Variable, erklæret med abstrakte datatyper. –Variablen gemmer adressen på objektet –Dvs. den peger på et andet sted I memory, de faktiske data er. –Når du erklærer en variable af en klasse, erklærer du I virkeligheden en reference variabel til et objekt af klassen.

12 NOEA2009Java-kursus – Datatyper int num = 10; // primitiv type String name = "Hello"; // reference type

13 NOEA2009Java-kursus – Datatyper Boxing og Unboxing Java konverterer værdi objekt, når der er behov –værdi ==> objekt kaldes "boxing" –objekt ==> værdi kaldes "unboxing" int i, j; object obj; i = 32; obj = i; // boxed copy! i = 19; j = (Integer) obj;// unboxed!

14 NOEA2009Java-kursus – Datatyper Anvendelse af reference typer (klasser) … Oprettelse, tildeling, og sammenligning: Customer c1, c2, c3; String s1, s2; c1 = new Customer("joe hummel", 36259); c2 = new Customer("marybeth lore", 55298); c3 = null; // c3 references no object c3 = c1; // c3 now references same obj as c1 if (c1 == null)... // do I ref an object? if (c1 == c2)... // compares references if (c1.equals(c2))... // compares objects if (s1 == s2)... // exception: == overloaded to // compare string data

15 NOEA2009Java-kursus – Datatyper Definering af “Lig med” Klasser kan omdefinere equals boolean equals(Object obj) { Book other; if ((obj == null) || (!(obj instanceof Book))) { return false; // definitely not equal } other = (Book) obj; // typecast to access // equal if same author... return this.author == other.author; }

16 NOEA2009Java-kursus – Datatyper Arrays Arrays er reference typer –oprettes med new –0-baseret indeksering –Tildelt default værdier (0 for numerisk, null for references, etc.) int[] a; a = new int[5]; a[0] = 17; a[1] = 32; int x = a[0] + a[1] + a[4]; int l = a.Length; Tilgå element Opret Antal elementer

17 NOEA2009Java-kursus – Datatyper Multi-dimensionelle arrays Java understøtter arrays som array af arrays –nedenstående implementer et 2D array med forskellig længde (Jagged) Customer[][] twoD; int[][] jagged2D; // 2D array as single object twoD = new Customer[10][100]; twoD[0, 0] = new Customer(…); twoD[9, 99] = new Customer(…); // 2D array as array of arrays jagged2D = new int[10][]; jagged2D[0] = new int[10]; jagged2D[1] = new int[20]; jagged2D[9] = new int[100]; jagged2D[0][0] = 1; jagged2D[9][99] = 100; Samme længde Forskellig længde

18 NOEA2009Java-kursus – Datatyper Opsummering I Java er der de simple datatyper man kan forvente Simple data typer er value typer Mens Objekter er referencer Objekter bør sammenlignes med equals metoden, som evt. kan overskrives