1 / 18

02 - Java datatyper

02 - Java datatyper. Grundlæggende om datatyper og variable. En simpel klasse. {…} Er samling af udtryk Kaldes blok eller scope. Definer klassen Book. public class Book { private String title; private String author; public Book(String t, String a) //Constructor { title= t;

albina
Download Presentation

02 - Java datatyper

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. En simpel klasse {…} Er samling af udtryk Kaldes blok eller scope Definer klassen Book public class Book { private String title; private String author; public Book(String t, String a) //Constructor { title= t; author= a; } public @Override String toString(){ return (title+" "+author); } } 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 overskrives @Override bruges fra Java 1.5

  3. Driver program Programmet startes fra main-metodenDen skal have signaturen:public static void main(String[] args) 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); } } Instansering af 2 objekter af klassen Book Kald metode på objekt toString() kaldes implicit Output fra program: C# Troelsen Java Kölling

  4. Coding Guidelines • Java programmer børaltid have.javaextensionen. • Filnavneskalværedetsammesomnavnetpå public class. F.eks hvisnavnetpå public class erHello, bør du gemme den I en filderhedderHello.java. • Du børskrivekommentarerikodenderbeskriverhvadklassenogevt. vissemetodergør. • Deter en konventioni Java at klassenavne starter med stortbogstav, oghvertnytord starter også med stort. F.eks: MinEgenKlasse • Det samme gælder for variabel og metodenavne, bortset fra at de starter med lille bogstav: minVariabel, minMetode()

  5. 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 like: @author Florence Balagtas@version 1.2 */

  6. UdtrykKort • 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++){intx=i*i;System.out.println(i+”: ”+x);}

  7. Datatyper • I Java er der de simple datatyper man forventer: • boolean (for logical) • char (for textual) • byte • short • int 20 svarertil 024 (octal) og x014 (hex) • long (integral) • Double 450.0 svarertil 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. 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; intx; int y = x * 2; ... } Erklæring Erklæring + initialiering Fejl, xerikkeinit.

  9. 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 inti = 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. "calico" Value vs. reference typer • I Java er 2 kategorieraf data typer • Value typer: • variablenrepræsenterer en værdi ("bits") • Reference typer: • variablenrepræsenterer en reference til et objekt • aktuelle data erindeholdtiobjektet int i; i = 10; 10 string s; s = "calico";

  11. Value type eller primitiv type: • Variable med primitive data typersominteller long. • Gemmer data direktepådetstedi memory, hvorvariablenergemt • Reference Variables • Variable, erklæret med abstrakte datatyper. • Variablengemmeradressenpåobjektet • Dvs. den pegerpå et andetsted I memory, de faktiske data er. • Når du erklærer en variable af en klasse, erklærer du I virkeligheden en reference variabeltil et objektafklassen.

  12. int num = 10; // primitiv type String name = "Hello"; // reference type

  13. Boxing og Unboxing • Java konvertererværdi <==> objekt, nårdererbehov • værdi ==> objektkaldes "boxing" • objekt ==> værdikaldes "unboxing" int i, j; object obj; i = 32; obj = i; // boxed copy! i = 19; j = (Integer) obj; // unboxed!

  14. Anvendelse af reference typer (klasser) … • Oprettelse, tildeling, og sammenligning: Customer c1, c2, c3; String s1, s2; c1 = new Customer("joehummel", 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. Definering af “Lig med” • Klasserkanomdefinere equals boolean equals(Object obj) { Book other; if ((obj == null) || (!(objinstanceof Book))) { return false; // definitely not equal } other = (Book) obj; // typecast to access // equal if same author... return this.author == other.author; }

  16. 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 = newint[5]; a[0] = 17; a[1] = 32; int x = a[0] + a[1] + a[4]; int l = a.Length; Opret Tilgå element Antal elementer

  17. Multi-dimensionelle arrays • Java understøtter arrays som array af arrays • nedenstående implementer et 2D array med forskelliglæ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. 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

More Related