SlideShare una empresa de Scribd logo
1 de 49
Programación Orientada a
Objetos
Clases y Objetos
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
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
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
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
Paradigma Orientado a
Objetos
Clase




        Objetos



                        6
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
Clase

 Una clase es la definición de un tipo de objeto
   Es el plano para construir ese tipo de objeto
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
Objetos, Instancias
Objetos, Instancias
       Nombre Objeto: CarroJuan

   cantidad de combustible: 10 galones
      velocidad: 55 millas por hora
             placa: “135 XJK”
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”
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”
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
UML

                                            Nombre Clase
           Automobile
               - fuel: double
             - speed: double                Atributos
             - license: String

 + accelerate(double pedalPressure): void   Métodos
 + decelerate(double pedalPressure): void
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
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
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
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
Atributos en Java

                                              Nombre Atributo
    Visibilidad         tipo atributo
                                                         punto y coma



 public           int                   mes                     ;
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
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
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

   }
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);
    }
}
Usar la clase
Usar la clase
 Fecha miFecha = new Fecha();
Usar la clase
 Fecha miFecha = new Fecha();
Usar la clase
 Fecha miFecha = new Fecha();
Usar la clase
 Fecha miFecha = new Fecha();
Usar la clase
 Fecha miFecha = new Fecha();
Usar la clase
 Fecha miFecha = new Fecha();
Usar la clase
 Fecha miFecha = new Fecha();




 Scanner keyboard = new Scanner(System.in);
Usar la clase
 Fecha miFecha = new Fecha();



                                        Crear el objeto




 Scanner keyboard = new Scanner(System.in);
Usar la clase
 Fecha miFecha = new Fecha();


                         Retornar la dirección
                           de memoria del        Crear el objeto
                               objeto




 Scanner keyboard = new Scanner(System.in);
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);
Demostración en Eclipse
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( );
    }
}
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”.
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;
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.
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
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 “????”;
      }
 }
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.
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;
  }
Tipos de Métodos

Constructores
Destructores
Modificadores
Selectores
Iteradores



                   30
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.
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
Demo en Eclipse
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.

Más contenido relacionado

La actualidad más candente

Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
joshell
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
lindacajaperuiz
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
LuiS YmAY
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
Nestor Traña
 
Analisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de usoAnalisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de uso
Yovana Connie Roca Avila
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
martin
 

La actualidad más candente (20)

Programación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objetoProgramación estructurada, modular y orientada a objeto
Programación estructurada, modular y orientada a objeto
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
Programacion Orientada a Objetos en python
Programacion Orientada a Objetos en pythonProgramacion Orientada a Objetos en python
Programacion Orientada a Objetos en python
 
Vista lógica
Vista lógicaVista lógica
Vista lógica
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)Conceptos de POO (Programacion Orientada a Objetos)
Conceptos de POO (Programacion Orientada a Objetos)
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Diagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegueDiagramas UML: Componentes y despliegue
Diagramas UML: Componentes y despliegue
 
Programación orientada a objetos
Programación orientada a objetosProgramación orientada a objetos
Programación orientada a objetos
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
Conceptos Basicos de POO
Conceptos Basicos de POOConceptos Basicos de POO
Conceptos Basicos de POO
 
UML Básico - Casos de uso y Clases
UML Básico - Casos de uso y ClasesUML Básico - Casos de uso y Clases
UML Básico - Casos de uso y Clases
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Unidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacionUnidad 2. modelo entidad relacion
Unidad 2. modelo entidad relacion
 
Paradigma Orientado a Objetos
Paradigma Orientado a ObjetosParadigma Orientado a Objetos
Paradigma Orientado a Objetos
 
Analisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de usoAnalisis y diseño diagrama de caso de uso
Analisis y diseño diagrama de caso de uso
 
Qué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOSQué es uml, PARA QUE SIRVE, PASOS
Qué es uml, PARA QUE SIRVE, PASOS
 
Modelo componentes
Modelo componentesModelo componentes
Modelo componentes
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 

Destacado (13)

11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()11 Curso de POO en java - métodos constructores y toString()
11 Curso de POO en java - métodos constructores y toString()
 
DIAGRAMA DE CLASES
DIAGRAMA DE CLASESDIAGRAMA DE CLASES
DIAGRAMA DE CLASES
 
Diagrama UML de Clases
Diagrama UML de ClasesDiagrama UML de Clases
Diagrama UML de Clases
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Ejercicios base de_datos
Ejercicios base de_datosEjercicios base de_datos
Ejercicios base de_datos
 
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
Diagramas de clases y aplicaciones  JAVA en NetBeans 6.9.1Diagramas de clases y aplicaciones  JAVA en NetBeans 6.9.1
Diagramas de clases y aplicaciones JAVA en NetBeans 6.9.1
 
Diagramas de clases
Diagramas de clasesDiagramas de clases
Diagramas de clases
 
7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases7 Curso de POO en java - diagrama de clases
7 Curso de POO en java - diagrama de clases
 
8b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 18b Curso de POO en java - paso de diagrama clases a java 1
8b Curso de POO en java - paso de diagrama clases a java 1
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad II
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 
Ejercicios uml
Ejercicios umlEjercicios uml
Ejercicios uml
 
Diagrama de clases
Diagrama de clasesDiagrama de clases
Diagrama de clases
 

Similar a Clases y Objetos

Similar a Clases y Objetos (20)

Programación Orientada a Objetos
Programación Orientada a ObjetosProgramación Orientada a Objetos
Programación Orientada a Objetos
 
ProgramacionOrientadaAObjetos.pdf
ProgramacionOrientadaAObjetos.pdfProgramacionOrientadaAObjetos.pdf
ProgramacionOrientadaAObjetos.pdf
 
Investigacion
InvestigacionInvestigacion
Investigacion
 
PROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETOPROGRAMACION ORIENTADA A OBJETO
PROGRAMACION ORIENTADA A OBJETO
 
Unidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a ObjetosUnidad 1_Programacion Orientada a Objetos
Unidad 1_Programacion Orientada a Objetos
 
Introducción a la progrogramación orientada a objetos
Introducción a la progrogramación orientada a objetosIntroducción a la progrogramación orientada a objetos
Introducción a la progrogramación orientada a objetos
 
Poo java v fin
Poo java v finPoo java v fin
Poo java v fin
 
Clase y Objeto de la POO
Clase y Objeto de la POOClase y Objeto de la POO
Clase y Objeto de la POO
 
clase 01-Programacion Oientada a Objetos.pptx
clase 01-Programacion Oientada a Objetos.pptxclase 01-Programacion Oientada a Objetos.pptx
clase 01-Programacion Oientada a Objetos.pptx
 
2clasesdeprogramacion
2clasesdeprogramacion2clasesdeprogramacion
2clasesdeprogramacion
 
Trabajo sistemas digitales
Trabajo sistemas digitalesTrabajo sistemas digitales
Trabajo sistemas digitales
 
Clase3 Programación Orientada a Objetos
Clase3 Programación Orientada a ObjetosClase3 Programación Orientada a Objetos
Clase3 Programación Orientada a Objetos
 
Unidad III epoo
Unidad III epooUnidad III epoo
Unidad III epoo
 
Java
JavaJava
Java
 
Principios poo
Principios pooPrincipios poo
Principios poo
 
Poo Java
Poo JavaPoo Java
Poo Java
 
Prog.orientada a objeto
Prog.orientada a objetoProg.orientada a objeto
Prog.orientada a objeto
 
3_Orientación a objeto
3_Orientación a objeto3_Orientación a objeto
3_Orientación a objeto
 
Primeraclaseobjetos clases
Primeraclaseobjetos clasesPrimeraclaseobjetos clases
Primeraclaseobjetos clases
 
Poo
PooPoo
Poo
 

Más de Xavier Ochoa

Más de Xavier Ochoa (20)

Multimodal Learning Analytics
Multimodal Learning AnalyticsMultimodal Learning Analytics
Multimodal Learning Analytics
 
Supporting the Acquisition of 21st Century Skills through Multimodal Learning...
Supporting the Acquisition of 21st Century Skills through Multimodal Learning...Supporting the Acquisition of 21st Century Skills through Multimodal Learning...
Supporting the Acquisition of 21st Century Skills through Multimodal Learning...
 
Educational Technologies
Educational TechnologiesEducational Technologies
Educational Technologies
 
Developing 21st-Century Skills with  Multimodal Learning Analytics
Developing 21st-Century Skills with Multimodal Learning AnalyticsDeveloping 21st-Century Skills with Multimodal Learning Analytics
Developing 21st-Century Skills with  Multimodal Learning Analytics
 
Educational Technologies: Learning Analytics and Artificial Intelligence
Educational Technologies: Learning Analytics and Artificial IntelligenceEducational Technologies: Learning Analytics and Artificial Intelligence
Educational Technologies: Learning Analytics and Artificial Intelligence
 
Analiticas de Aprendizaje: Nuevo paradigma en la investigación educativa
Analiticas de Aprendizaje: Nuevo paradigma en la investigación educativaAnaliticas de Aprendizaje: Nuevo paradigma en la investigación educativa
Analiticas de Aprendizaje: Nuevo paradigma en la investigación educativa
 
Analítica del Aprendizaje como Nuevo Paradigma de la Investigación Educativa
Analítica del Aprendizaje como Nuevo Paradigma de la Investigación EducativaAnalítica del Aprendizaje como Nuevo Paradigma de la Investigación Educativa
Analítica del Aprendizaje como Nuevo Paradigma de la Investigación Educativa
 
Automatic Feedback for Oral Presentations
Automatic Feedback for Oral PresentationsAutomatic Feedback for Oral Presentations
Automatic Feedback for Oral Presentations
 
LAK-18 Program in Numbers
LAK-18 Program in NumbersLAK-18 Program in Numbers
LAK-18 Program in Numbers
 
Multimodal Learning Analytics
Multimodal Learning AnalyticsMultimodal Learning Analytics
Multimodal Learning Analytics
 
Education as the meta-problem: Opportunities for Technology R&D
Education as the meta-problem: Opportunities for Technology R&DEducation as the meta-problem: Opportunities for Technology R&D
Education as the meta-problem: Opportunities for Technology R&D
 
Medir para Entender y Mejorar: la Analítica del Aprendizaje como nuevo paradi...
Medir para Entender y Mejorar: la Analítica del Aprendizaje como nuevo paradi...Medir para Entender y Mejorar: la Analítica del Aprendizaje como nuevo paradi...
Medir para Entender y Mejorar: la Analítica del Aprendizaje como nuevo paradi...
 
Adaptive Multilevel Clustering Model for the Prediction of Academic Risk
Adaptive Multilevel Clustering Model for the Prediction of Academic RiskAdaptive Multilevel Clustering Model for the Prediction of Academic Risk
Adaptive Multilevel Clustering Model for the Prediction of Academic Risk
 
Simple metrics for Curricular Analytics
Simple metrics for Curricular AnalyticsSimple metrics for Curricular Analytics
Simple metrics for Curricular Analytics
 
Multimodal Learning Analytics
Multimodal Learning AnalyticsMultimodal Learning Analytics
Multimodal Learning Analytics
 
Multimodal Learning Analytics
Multimodal Learning AnalyticsMultimodal Learning Analytics
Multimodal Learning Analytics
 
Introduccion Algoritmos Multihilo
Introduccion Algoritmos MultihiloIntroduccion Algoritmos Multihilo
Introduccion Algoritmos Multihilo
 
Analisis de Algoritmos Multihilo
Analisis de Algoritmos MultihiloAnalisis de Algoritmos Multihilo
Analisis de Algoritmos Multihilo
 
Analitica aprendizaje
Analitica aprendizajeAnalitica aprendizaje
Analitica aprendizaje
 
Visualizing Uncertainty in the Prediction of Academic Risk
Visualizing Uncertainty in the Prediction of Academic RiskVisualizing Uncertainty in the Prediction of Academic Risk
Visualizing Uncertainty in the Prediction of Academic Risk
 

Último

Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
AnnimoUno1
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
FagnerLisboa3
 

Último (15)

Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
Modulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdfModulo-Mini Cargador.................pdf
Modulo-Mini Cargador.................pdf
 
presentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptxpresentacion de PowerPoint de la fuente de poder.pptx
presentacion de PowerPoint de la fuente de poder.pptx
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
Presentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmerilPresentación de elementos de afilado con esmeril
Presentación de elementos de afilado con esmeril
 
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdfRefrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
Refrigerador_Inverter_Samsung_Curso_y_Manual_de_Servicio_Español.pdf
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 

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
  • 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
  • 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); } }
  • 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);
  • 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; }
  • 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
  • 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.

Notas del editor

  1. 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.