Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Lezione02

380 views

Published on

  • Be the first to comment

  • Be the first to like this

Lezione02

  1. 1. Programmazione 2 (PR2)Maurizio ATZORIDipartimento di Matematica e InformaticaUniversità di Cagliariemail: atzori@unica.ithttp:/riemann.unica.it/~atzori/Lezione 2: Classi, oggetti, variabili
  2. 2. Etiquette Telefoni spenti No portatili, salvo diversa indicazione No Facebook, email, chat ecc. No bibite, cibo ecc. Per qualsiasi dubbio chiedere alzando la mano Interazione gradita Materiale sul sito
  3. 3. Orario lezioni Martedì 14:30-16:10 Giovedì 14:30-16:10 Venerdì 16:30-19:10 In laboratorio; TA: Francesco Usai Sarete divisi in 2 gruppi: 16:30-17:45 Gruppo A 17:55-19:10 Gruppo B Ricevimento Martedì dopo la lezione in aula Obbligo di frequenza: firmare!
  4. 4. Pagina PR2 su Moodle http://moodle.unica.it Facoltà di Scienze MM.FF.NN Programmazione 2
  5. 5. Pagina PR2 su Moodle
  6. 6. Pagina PR2 su Moodle Chiave daccesso: ******* Da non confondersi con *
  7. 7. OggettoLight lt;lt = new Light();lt.on();
  8. 8. OggettoLight lt;lt = new Light();lt.on();Light lt = new Light();String testo = new String();
  9. 9. Composizione (Composition) Composition: One class has another as a part (indicated by the diamond “aggregation” symbol)
  10. 10. Ereditarietà (Inheritance) Gerarchia a radice unica (Object)
  11. 11. Polimorfismo
  12. 12. Overriding
  13. 13. Codice Java polimorficoShape p1 = new Shape();Shape p2 = new Circle();Shape p3 = new Square();Shape p4 = new Triangle(); ... migliaia di righe di codice...Tutte le variabili sono di tipo (appartengono alla classe) Shape,ma a runtime: p2 contiene un oggetto di tipo Circle p3 conterrà un oggetto di tipo Squarep2.draw() // disegna un cerchio?p3.draw() // disegna un quadrato?
  14. 14. Upcasting Downcasting?
  15. 15. Upcasting / DowncastingShape p1 = new Shape();Shape p2 = new Circle();Shape p3 = new Square();Shape p4 = new Triangle();Downcasting (Cast)Square quadrato = p3;
  16. 16. Upcasting / DowncastingShape p1 = new Shape();Shape p2 = new Circle();Shape p3 = new Square();Shape p4 = new Triangle();Downcasting (Cast)Square quadrato = p3; // errore di tipo (downcasting!)Square quadrato = (Square) p3; //ok
  17. 17. Classi Astratte abstract
  18. 18. Creating New Typesclass MyNewType { // definition here} Dora in poi potremmo creare variabili di tipo MyNewTypeMyNewType x = new MyNewType();
  19. 19. Creating New Typesclass MyNewType { // attributi (o campi, o var membro) // metodi (o funzioni membro)} Fields (a.k.a. member variables, data members) Methods (a.k.a. member functions)
  20. 20. Creating New Typesclass MyNewType { // attributi (o campi, o var membro) // metodi (o funzioni membro)}class Car { Engine motore = new Engine(); void accendi() { return; }}
  21. 21. Class Members Fields (a.k.a. member variables, data members) Methods (a.k.a. member functions) class Car { Engine motore = new Engine(); void accendi() { motore.turnOn(); return; } }
  22. 22. Modificatori daccesso public private protected “default” access, o anche: package access friendly access static final syncronized
  23. 23. Class Memberspublic class Car { private Engine motore = new Engine(); public void accendi() { motore.turnOn(); return; }}// somewhereCar fiatPunto = new Car();fiatPunto.accendi();
  24. 24. Java’s Primitive Types Type Size Wrapper type boolean - Boolean char 16-bit Character byte 8-bit Byte short 16-bit Short int 32-bit Integer long 64-bit Long float 32-bit Float double 64-bit Double void - Void
  25. 25. Let’s Write Something// Our first program. File: HelloDate.java// Note that the file name is exactly the same// as the class name, including capitalization.public class HelloDate { public static void main(String[] args) { String s = “world”; int anno = 2011; System.out.print(“Hello ”); System.out.println(s); System.out.println(anno); }}
  26. 26. Compilazione/Interpretazione Editing  Use any text editor you like (not a word processor!); save as HelloDate.java Compiling  From a DOS or UNIX command line, type > javac HelloDate.java  This should produce the file HelloDate.class Running  Again from the command prompt, type > java HelloDate

×