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

POO Programación Orientada a Objetos
POO Programación Orientada a ObjetosPOO Programación Orientada a Objetos
POO Programación Orientada a ObjetosLuis Berganza
 
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étodosAlvaro Enrique Ruano
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Pooda4
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismonestor_moren
 
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad  10: Reporte de polimorfismo, herencia & encapsulamientoActividad  10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad 10: Reporte de polimorfismo, herencia & encapsulamientograchika
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosGeovanny Yungán
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLSorey García
 
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 1Clara Patricia Avella Ibañez
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Maria Garcia
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenKarlytoz_36
 
Poo 1 concepto_basico
Poo 1 concepto_basicoPoo 1 concepto_basico
Poo 1 concepto_basicojlmanmons
 
Mapa Mental de Java
Mapa Mental de JavaMapa Mental de Java
Mapa Mental de JavaMario578
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetosstill01
 

La actualidad más candente (20)

POO Programación Orientada a Objetos
POO Programación Orientada a ObjetosPOO Programación Orientada a Objetos
POO Programación 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
 
Propiedades De La Poo
Propiedades De La PooPropiedades De La Poo
Propiedades De La Poo
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
Programacion Orientada a Objetos
Programacion Orientada a ObjetosProgramacion Orientada a Objetos
Programacion Orientada a Objetos
 
P.O.O.
P.O.O.P.O.O.
P.O.O.
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad  10: Reporte de polimorfismo, herencia & encapsulamientoActividad  10: Reporte de polimorfismo, herencia & encapsulamiento
Actividad 10: Reporte de polimorfismo, herencia & encapsulamiento
 
P. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetosP. estructurada vs. programación orientada a objetos
P. estructurada vs. programación orientada a objetos
 
Clases y objetos en Java
Clases y objetos en JavaClases y objetos en Java
Clases y objetos en Java
 
Introducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAMLIntroducción a Xamarin Forms con XAML
Introducción a Xamarin Forms con XAML
 
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
 
Introducción a PHP
Introducción a PHPIntroducción a PHP
Introducción a PHP
 
Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)Conceptos básicos de programación orientada a objetos (poo)
Conceptos básicos de programación orientada a objetos (poo)
 
Programación Orientada a Objetos - Resumen
Programación Orientada a Objetos - ResumenProgramación Orientada a Objetos - Resumen
Programación Orientada a Objetos - Resumen
 
Poo 1 concepto_basico
Poo 1 concepto_basicoPoo 1 concepto_basico
Poo 1 concepto_basico
 
Mapa Mental de Java
Mapa Mental de JavaMapa Mental de Java
Mapa Mental de Java
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Diagramas de objetos
Diagramas de objetosDiagramas de objetos
Diagramas de objetos
 
Procedimientos almacenados en MySQL
Procedimientos almacenados en MySQLProcedimientos almacenados en MySQL
Procedimientos almacenados en MySQL
 

Destacado

Destacado (11)

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
 
Ejercicios en clase Unidad II
Ejercicios en clase Unidad IIEjercicios en clase Unidad II
Ejercicios en clase Unidad II
 
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

Multimodal Learning Analytics
Multimodal Learning AnalyticsMultimodal Learning Analytics
Multimodal Learning AnalyticsXavier Ochoa
 
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...Xavier Ochoa
 
Educational Technologies
Educational TechnologiesEducational Technologies
Educational TechnologiesXavier Ochoa
 
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 AnalyticsXavier Ochoa
 
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 IntelligenceXavier Ochoa
 
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 educativaXavier Ochoa
 
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 EducativaXavier Ochoa
 
Automatic Feedback for Oral Presentations
Automatic Feedback for Oral PresentationsAutomatic Feedback for Oral Presentations
Automatic Feedback for Oral PresentationsXavier Ochoa
 
LAK-18 Program in Numbers
LAK-18 Program in NumbersLAK-18 Program in Numbers
LAK-18 Program in NumbersXavier Ochoa
 
Multimodal Learning Analytics
Multimodal Learning AnalyticsMultimodal Learning Analytics
Multimodal Learning AnalyticsXavier Ochoa
 
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&DXavier Ochoa
 
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...Xavier Ochoa
 
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 RiskXavier Ochoa
 
Simple metrics for Curricular Analytics
Simple metrics for Curricular AnalyticsSimple metrics for Curricular Analytics
Simple metrics for Curricular AnalyticsXavier Ochoa
 
Multimodal Learning Analytics
Multimodal Learning AnalyticsMultimodal Learning Analytics
Multimodal Learning AnalyticsXavier Ochoa
 
Multimodal Learning Analytics
Multimodal Learning AnalyticsMultimodal Learning Analytics
Multimodal Learning AnalyticsXavier Ochoa
 
Introduccion Algoritmos Multihilo
Introduccion Algoritmos MultihiloIntroduccion Algoritmos Multihilo
Introduccion Algoritmos MultihiloXavier Ochoa
 
Analisis de Algoritmos Multihilo
Analisis de Algoritmos MultihiloAnalisis de Algoritmos Multihilo
Analisis de Algoritmos MultihiloXavier Ochoa
 
Analitica aprendizaje
Analitica aprendizajeAnalitica aprendizaje
Analitica aprendizajeXavier Ochoa
 
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 RiskXavier 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

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosJhonJairoRodriguezCe
 
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 eyvanamcerpam
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
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.pptxAlan779941
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
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 estossgonzalezp1
 

Último (11)

investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Guia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos BasicosGuia Basica para bachillerato de Circuitos Basicos
Guia Basica para bachillerato de Circuitos Basicos
 
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
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
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
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
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
 

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.