Clases y Objetos

  • 4,834 views
Uploaded on

Presentación sobre Clases y Objetos dentro del curso de Programación Orientada a Objetos, ESPOL

Presentación sobre Clases y Objetos dentro del curso de Programación Orientada a Objetos, ESPOL

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
4,834
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
226
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • print is a method of the Date1 class. Its definition and implementation are part of the Date1 class.

    Like functions in C, class methods may be void, return a value, and (optionally) have parameters. Method parameters may be primitive types passed by value or may be objects (which need further discussion later).
    All class methods have access to all class instance variables.

Transcript

  • 1. Programación Orientada a Objetos Clases y Objetos
  • 2. POO: Una nueva manera de ver el mundo “ Juan quiere mandar flores a su amiga Ana que vive en otra ciudad. Debido a la distancia Juan no puede llevar las flores directamente a Ana. Juan acude a Pedro, un florista local, y le da el número y tipo de flores que quiere enviarle a Ana y su dirección. Juan puede estar seguro que las flores serán entregadas a Ana. ” 2
  • 3. Agentes, Responsabilidad, Mensajes y Métodos Juan encuentra un agente apropiado (Pedro) Y le envía un mensaje que contiene una petición. Es la responsabilidad de Pedro el satisfacer esa petición. Existe algún método (conjunto de operaciones) usadas por Pedro para entregar las flores. 3
  • 4. Clases e Instancias A pesar de que Juan no conoce a Pedro muy bien, el tiene una idea aproximada de como tratar y que pedir a Pedro. Juan es capaz de hacer ciertas asunciones basado en su experiencia previa con otros floristas. El espera que Pedro, siendo una instancia de la categoría de floristas, se ajuste a ese patrón. Todos los objetos son instancias de una clase. El método invocado por un objeto para responder a un mensaje es determinado por su clase. 4
  • 5. Paradigma Orientado a Objetos ¿Qué es una clase? Las clases son los planos para construir los objetos Lo que se especificamos no son los objetos, sino las clases de que estos se construyen. Las clases especifican que atributos y métodos tendrá un objeto que se fabrique a partir de dicha clase. 5
  • 6. Paradigma Orientado a Objetos Clase Objetos 6
  • 7. Paradigma Orientado a Objetos Clase Bicicleta Atributos Tamaño de frame Tamaño de llanta Material ... Abstraídos en Operaciones Cambio Mover Reparar Objetos bicicletas 7
  • 8. Clase Una clase es la definición de un tipo de objeto Es el plano para construir ese tipo de objeto
  • 9. Clase Una clase es la definición de un tipo de objeto Es el plano para construir ese tipo de objeto Nombre de la Clase: Automovil Datos: cantidad de combustible velocidad placa Metodos (acciones): acelerar: incrementar velocidad decelerate: disminuir velocidad
  • 10. Objetos, Instancias
  • 11. Objetos, Instancias Nombre Objeto: CarroJuan cantidad de combustible: 10 galones velocidad: 55 millas por hora placa: “135 XJK”
  • 12. Objetos, Instancias Nombre Objeto: CarroJuan Nombre Objeto: CarroLuis cantidad de combustible: 10 galones cantidad de combustible: 10 galones velocidad: 55 millas por hora velocidad: 0 millas por hora placa: “135 XJK” placa: “MBX623”
  • 13. Objetos, Instancias Nombre Objeto: CarroJuan Nombre Objeto: CarroLuis cantidad de combustible: 10 galones cantidad de combustible: 10 galones velocidad: 55 millas por hora velocidad: 0 millas por hora placa: “135 XJK” placa: “MBX623” Nombre Objeto: CarroMaría cantidad de combustible: 2 galones velocidad: 75 millas por hora placa: “351 WLF”
  • 14. Objetos, Instancias Nombre Objeto: CarroJuan Nombre Objeto: CarroLuis cantidad de combustible: 10 galones cantidad de combustible: 10 galones velocidad: 55 millas por hora velocidad: 0 millas por hora placa: “135 XJK” placa: “MBX623” Nombre Objeto: CarroMaría cantidad de combustible: 2 galones velocidad: 75 millas por hora placa: “351 WLF” Instancias de la clase Automovil
  • 15. UML Nombre Clase Automobile - fuel: double - speed: double Atributos - license: String + accelerate(double pedalPressure): void Métodos + decelerate(double pedalPressure): void
  • 16. Anatomía de una Clase en Java Visibilidad Keyword class Nombre de Clase public class Fecha { Cuerpo Clase: atributos, métodos } SIN punto y coma
  • 17. ATRIBUTOS Concepto: Características que definen a la clase, es lo que el usuario (de la clase) puede ver. Es la abstracción. Otro concepto: variables que están dentro de los objetos y que contienen los valores del objeto. También son llamados: propiedades, datos miembro. 12
  • 18. ATRIBUTOS – Ejemplo 1 Una Fracción está definido por un par de números naturales, los cuales se denominan el numerador y denominador. num_ Fraccion den Numerador Denominador 13
  • 19. ATRIBUTOS – Ejemplo 2 Un Fecha está definido por tres datos: día, mes y año. Fecha 15/ 12/ 2005 Día Mes Año 14
  • 20. Atributos en Java Nombre Atributo Visibilidad tipo atributo punto y coma public int mes ;
  • 21. Comportamiento El comportamiento de un objeto es la forma en que actúa y reacciona, en términos de sus cambios de estado e intercambio de mensajes con otros objetos. El comportamiento de un objeto está determinado por las operaciones que pueden ser invocadas sobre el mismo. Los tres tipos de operaciones más comunes son: 16
  • 22. MÉTODOS Concepto: Son las operaciones que se pueden realizar con los objetos de la clase. Otro concepto: Son los procesos (funciones o procedimientos) que permiten trabajar con los datos de los objetos También son llamados: funciones miembro De acuerdo al trabajo que realizan los métodos, estos se clasifican en:Constructores,destructores, ponedores, selectores. 17
  • 23. Métodos en Java Los métodos son como las funciones. Los métodos incluyen la visibilidad, el tipo de la respuesta, el nombre del método y los parámetros. Nombre Método Visibilidad Tipo respuesta Parametros public double imprimir (double fTemp) { Código del método: variables y sentencias }
  • 24. La clase Fecha Esta clase tiene que ir en un archivo llamado Fecha.java public class Fecha { public String mes; public int dia; public int anio; public void print( ) { System.out.println(mes + " " + dia + ", " + anio); } }
  • 25. Usar la clase
  • 26. Usar la clase Fecha miFecha = new Fecha();
  • 27. Usar la clase Fecha miFecha = new Fecha();
  • 28. Usar la clase Fecha miFecha = new Fecha();
  • 29. Usar la clase Fecha miFecha = new Fecha();
  • 30. Usar la clase Fecha miFecha = new Fecha();
  • 31. Usar la clase Fecha miFecha = new Fecha();
  • 32. Usar la clase Fecha miFecha = new Fecha(); Scanner keyboard = new Scanner(System.in);
  • 33. Usar la clase Fecha miFecha = new Fecha(); Crear el objeto Scanner keyboard = new Scanner(System.in);
  • 34. Usar la clase Fecha miFecha = new Fecha(); Retornar la dirección de memoria del Crear el objeto objeto Scanner keyboard = new Scanner(System.in);
  • 35. Usar la clase Fecha miFecha = new Fecha(); Asignar un dirección Retornar la dirección de memoria a la de memoria del Crear el objeto variable objeto Scanner keyboard = new Scanner(System.in);
  • 36. Demostración en Eclipse
  • 37. Usando Fecha Creamos una instancia de Fecha, la modificamos e imprimimos la fecha. Este programa se graba dentro de un archivo llamado DemoFecha.java public class DemoFecha { public static void main( String[ ] args ) { Fecha miFecha; miFecha = new Fecha( ); miFecha.mes = “Julio”; miFecha.dia = 5; miFecha.anio = 2009; miFecha.print( ); } }
  • 38. Creating the Date1 Object La sentencia Fecha miFecha; define la variable del tipo Fecha, pero el objeto miFecha NO existe todavía. La sentencia miFecha = new Fecha( ); instancia un objeto del tipo Fecha y se lo asigna a la variable “miFecha”.
  • 39. Notación Punto Los atributos públicos de un objeto son referenciados usando el operador “punto”. miFecha.mes = “July”; miFecha.dia = 4; miFecha.anio = 2007;
  • 40. Notación Punto myDate.print( ); invoca al método print del objeto myFecha , un objeto del tipo Fecha Estamos enviando el mensaje print al objeto referenciado por miFecha.
  • 41. Otros Métodos • incrementarDia - aumenta un día a la fecha • printDMY - imprime en un diferente formato • setDate - inicializa/cambia el año, mes, y día
  • 42. New Date1 Methods // change the month (using an int), day, and year. public void setDate( int newMonth, int newDay, int newYear ) { month = monthString( newMonth ); day = newDay; year = newYear; } // change month number (int) to string - used by setDate public String monthString( int monthNumber ) { switch ( monthNumber ) { case 1: return "January"; case 2: return "February"; case 3: return "March"; case 4: return "April"; case 5: return "May"; case 6: return "June"; case 7: return "July"; case 8: return "August"; case 9: return "September"; case 10: return "October"; case 11: return "November"; case 12: return "December"; default: return “????”; } }
  • 43. Confusion public void setDate( int month, int day, int year) { month = monthString( month );// which month is which? day = day; // which day is which? year = year; // which year is which? } El problema es que en este código el compilador asume que day, month, y year se refieren a los parámetros del método y no a los atributos del objeto.
  • 44. Usar this Si queremos referirnos a los atributos del objeto o a sus métodos, podemos usar la palabra reservada this public void setDate( int month, int day, int year) { this.month = monthString( month ); this.day = day; this.year = year; }
  • 45. Tipos de Métodos Constructores Destructores Modificadores Selectores Iteradores 30
  • 46. Creación de Objetos Los objetos son creados usando la palabra reservada new Date myDate = new Date( ); La expresión new Date( ) invoca a un método especial al que se denomina constructor. Los constructores son utilizados para crear objetos e inicializar el estado de sus atributos.
  • 47. Constructores Un constructor es un método especial Tiene el mismo nombre que la clase que construye No tiene tipo de retorno (ni siquiera void). Si la clase no define ningún constructor, el compilador de Java automáticamente crea un constructor sin parámetros
  • 48. Demo en Eclipse
  • 49. Tarea Cree la clase Estudiante Sus atributos son: nombre, fechaDeNacimiento, matrícula Sus métodos son: calcularEdad, print El print debe colocar la “matricula - nombre - edad” Debe crear un programa que cree al menos 3 estudiantes, los inicialize e imprima sus datos en pantalla.