1 / 58

TEMA 4: POO (Java)

TEMA 4: POO (Java). UN POC DE CULTURA GENERAL. Abans de començar: Què és això dels objectes?, un llenguatge?, una metodologia?, una estratègia? És un paradigma de programació. Ens aporta: Poder usar el mateix codi moltes vegades. Reduir molt el percentatge d’errors de programa.

willow
Download Presentation

TEMA 4: POO (Java)

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. TEMA 4: POO (Java)

  2. UN POC DE CULTURA GENERAL

  3. Abans de començar: • Què és això dels objectes?, un llenguatge?, una metodologia?, una estratègia? • És un paradigma de programació. • Ens aporta: • Poder usar el mateix codi moltes vegades. • Reduir molt el percentatge d’errors de programa. • Facilitar la tasca conjunta d’entitats diferents. • Facilitar la creació de llibreries de programació. • Facilitar la comprensió dels programes. • La programació és més intuitïva. • Desavantatges: • Producte final més pesat.

  4. OBJECTES Elements: Les instàncies . . . Llibre Llibre Llibre Fàbrica: La classe

  5. ANEM A COMENÇAR

  6. Esquema: • Què és el llenguatge Java? • Què necessitem per programar en Java? • Com compilar un programa amb Java? • Aplicació • Applet • El llenguatge Java • La Programació Orientada a Objectes • El API de Java • La Interfícia Gràfica d’Usuari (Swing)

  7. Esquema: • IDE: Entorn Integrat de Desenvolupament • Netbeans

  8. La Programació Orientada a Objectes • Què és un objecte (classe  class) Atributs (estat) • Modular • Ocultació Mètodes (comportament)

  9. La programació orientada a objectes • La instància La classe persona Juan Marina missatge Toni Instàncies Objecte: Classe o instància

  10. La programació orientada a objectes • L’herència abstract Cotxe: superclass abstract abstract Ford Focus: subclass Seat Ibiza: subclass Ford Focus vermell: subclass Seat Ibiza groc: subclass Ford Focus negre: subclass

  11. La programació orientada a objectes • Java i l’estructura de link dels arxius class • Multi-plataforma  Estructura de directoris • import paquet.nomjava;

  12. Màquina virtual de Java Windows, UNIX, Mac, ... Compilador de Java javac Codi font 010001001 010001001 010001001 010001001 010001001 010001001 010001001 010001001 Altres class Codi class Què és el llenguatge Java? (aplicació)

  13. Compilador de Java javac Codi font 010001001 010001001 010001001 010001001 010001001 010001001 010001001 010001001 Browser de www Altres class Codi class Què és el llenguatge Java? (applet)

  14. Què necessitem per a programar en Java? • Un entorn de desenvolupament • Recomenat un J2SDK (Java 1.4 o superior) • Un manual de referència (Api interactiu) • Una consola o finestra de control de processos • Un IDE de programació (NetBeans)

  15. Compilar i executar un programa Java • Compilació (aplicació i applet) javac <nombre>.java • Execució (aplicació) java <nombre> • Execució (applet)  Browser

  16. El lenguaje Java • Un inici: “Hola!” (aplicació) • Un inici: “Hola!” (applet)

  17. El lenguaje Java • Els comentaris • De bloc: /* .... */ • De bloc amb documentació: /** .... */ • De línia: // ... • La classe y el mètode principal (class, main) • La classe com a applet

  18. El lenguaje Java • Important: classes i paquets (CLASSPATH) • Subclasses (extends) • Essential Java classes • Maneig d’errors  exceptions • Multitasca  threads • Entrada / Sortida  io class • Atributs de programa  arguments • Atributs de sistema operatiu  system class

  19. Orientació a Objectes • Programes dissenyats amb elements que inter-actuen entre ells • Cada element és un OBJECTE • Tots els objectes que són iguals formen part de la mateixa CLASSE

  20. La programació orientada a objectes • La instància La classe persona Juan Marina missatge Toni Instàncies Objecte: Classe o instància

  21. La Programació Orientada a Objectes • Què és un objecte (classe  class) Atributs (estat) • Modular • Ocultació Mètodes (comportament)

  22. Components d’una classe • Especificació: Què es pot fer amb la classe? • Desenvolupament: Com es fa? (el codi) 1.- Pensar què ha de fer la classe? 2.- Escriure el codi que ho faci

  23. Separació de l’especificació • Part pública: El que es pot usar fora de la classe. La interfícia • Part privada: Sols es pot usar des de la pròpia classe

  24. Creació i destrucció d’objectes • Una instància es crea a partir d’un constructor • Hi pot haver més d’un constructor • L’operador new crea una instància d’un objecto que es pot associar a una referència • Quan un objecto no te referències es destrueix automàticament • El valor null significa cap objecte

  25. Exercici • Construir la classe NomPersona • Interfície • NomPersona() • NomPersona(String nom, • String llinatges) • String llinatges() • String nom () • String nom_i_llinatgess() • String llinatges_i_nom () • String inicial_punt_llinatges()

  26. Herència • És un mecanisme per incorporar a una classe característiques d’una altra Clase derivada subclass Clase base superclass • clase • mètodes • atributs • clase • mètodes • atributs

  27. La programació orientada a objectes • L’herència abstract Cotxe: superclass abstract abstract Ford Focus: subclass Seat Ibiza: subclass Ford Focus vermell: subclass Seat Ibiza groc: subclass Ford Focus negre: subclass

  28. Accés a la classe base • Mode d’accés protected. Es permet l’accés als atributs des de fora de la classe però sols per a les classes derivades i les del mateix paquet.

  29. Comparativa d’accés

  30. Classes abstractes • Les que no poden tenir instàncies abstract classnom { … } han de tenir com a mínim un mètode abstracte abstract tipusnom ( … ){ … } • Les classes derivades implementen TOTS els mètodes abstractes

  31. Accés a la classe • A sí mateixa: this • A la superclase (classe base): super

  32. Nombre de places velocitat màxima Nombre de rodes Nombre d’animals Tipus de motor Exercici • Crear una jerarquia de classes com la següent transport marítim terrestre aeri vela motor altres motor tracció animal motor cotxe carruatge camió bicicleta

  33. Interfícies • Una interfícia ve a ser una classe amb tots els mètodes abstract (abstractes) • Una classe pot implementar interfícies • Tindrà que implementar l’especificació de la interfícia

  34. Els Applet • java.applet Subministra les classes necessàries par a crear un applet i les classes que un applet utilitza par a comunicar-se amb el seu context

  35. Els Objectes • Totes les coses són Object • java.lang.Object és la superclass de tots els objectes

  36. Exercici • Sobrecarregar el mètode finalize()

  37. cap Exercici • Construir una pila d’objectes • Interfícia • pila() • posar(Object) • Object treure() • String toString()

  38. Mètode 1 Mètode 2 Mètode n Mètode i Excepcions • Mecanisme per a permetre que els mètodes facin front a successos inesperats • Es pot trobar el gestor d’excepcions adequat  ? main  ? excepció

  39. Excepcions • Quan un mètode determina que hi ha un problema llança (throw) una excepció • Un mètode pot provar d’executar una part del seu codi (try), i pot agafar l’excepció llançada (catch) si fa falta • Un mètode pot garantir que un bocí de codi s’executarà (finally) passi el que passi • Un mètode ha d’indicar les excepcions que pot llançar (throws) durant la seva execució tipus nom_mètode (arguments) throws llista_excepcions { … }

  40. La classe Exception • Super-classe de totes las excepcions generades • Cada mètode que pot generar excepcions ho ha d’indicar • Es defineixen bloques de gestió de excepcions

  41. Exercici • Modificar la classe NomPersona • Si es demana sense inicialitzar → NombBuitException

  42. Concurrència • La concurrència és la forma de fer que es pugui realitzar més d’una cosa al mateix temps

  43. Especificació de la concurrència • Mitjançant herència: Thread • Mitjançant interfícia: Runnable

  44. Thread A lectura lectura escriptura escriptura Thread B Comunicació entre components • Problema: Regions Crítiques Regió Crítica

  45. Solució • Exclusió Mútua: estableix zones a on en cada instant de temps sols hi pot accedir un thread synchronized (Object) { … }

  46. El que subministra Object • wait(): El thread espera • notify(): Un thread es desperta • notifyAll(): Tots desperten

  47. Application Program Interface • Conjunt de classes, interfícies, … • Permet construir amb rapidesa programes • java.lang: clases bàsiques • java.util: Per manejar informació • javax.swing: components per a poder crear programes Java en múltiples plataformes amb la mateixa funcionalitat • org.xml.sax: accés a documents XML des de Java

  48. La Interfícia Gràfica d’Usuari AWT/Swing • L’API de programació de GUI • Evolució del AWT (JDK 1.0 / 1.1) • Part de les JFC del SDK • Paquet  javax.swing • El primer programa amb swing • La gestió dels esdeveniments

  49. La Interfícia Gràfica d’Usuari AWT/Swing • Un parell d’exemples més • Look and feel • CheckBox • RadioButton

  50. Acció associada Escolta associat Picar un botó, <return> en un camp de text, o triar un menu item. ActionListener Tancar la finestra principal (main window). WindowListener Picar el boto del ratolí quan el cursor està sobre una component. MouseListener Moure el cursor sobre una component. MouseMotionListener Una component es fa visible. ComponentListener Una component agafa el focus de teclat. FocusListener Canvia una taula o llista de selecció. ListSelectionListener La Interfícia Gràfica d’Usuari AWT/Swing • Els esdeveniments

More Related