Qué es Orientación a Objeto ? Los datos que usan los programas son objetos Los objetos son una colección de variables y métodos para manipularlas Métodos.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 9: DESARROLLO Y USO DE MÉTODOS Ing. Ronald Criollo.
Advertisements

Curso de java básico (scjp)
Curso de java básico (scjp)
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE
Curso de Java Capitulo 7: Conceptos sobre poo Profesor:
Definición de Clases y Variables de referencia.
Herencia en C#.
Fundamentos de la programación orientada a objetos
Lenguaje de programación Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Arquitectura CLARO-TECNOTREE
Orientación a Objetos con Java SE
Inner classes CAPITULO 8.
Genéricos en Java Jaime Ramírez, Ángel Lucas González
Aplicación del paradigma orientado a objetos
Algoritmos y Estructuras de Datos
Objetos y Clases en Java
Programación Orientada a Objetos en Java
Algoritmos y Estructuras de Datos Introducción al C++ Herencia.
PROGRAMACIÓN EN JAVA Curso-taller inicial de programación en JAVA Facultad de Estadística e Informática TEMA II.
HERENCIA.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
Herencia e Interfaces.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
Medio de tele-comunicación
Modificadores.
Herencia y Polimorfismo en JAVA
UNIVERSIDAD TECNOLÓGICA DE HERMOSILLO T.S.U. EN T.I.C., Área: Sistemas Informáticos Ing. José Padilla Duarte y estudiantes de Sistemas Informáticos Hermosillo,
Abstracción de los datos y Orientación a Objeto Clase 13.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Universidad Autónoma del Estado de Hidalgo Instituto de Ciencias Básicas e Ingeniería Área Académica de Computación y Electrónica Licenciatura en Ciencias.
Tema 6: Clases Antonio J. Sierra.
If anidados y Switch Prof. Lillian Bras.
Archivos y Búsqueda Secuencial
Programación orientada a objetos
SCJP Sun Certified Programmer for Java 6
UNIDAD 2 CLASES Y OBJETOS. CLASE Elementos cabecera y cuerpo de la clase. Cabecera: aporta información fundamental sobre la clase en sí y constituye de.
Clase Teórica No. 4 Programación IV
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
Prof. Mayra M. Méndez Anota.  Herramientas  Características  Convenciones  Estructura de una clase  Sintaxis de: métodos, atributos, constructores.
ESTRUCTURA DE DATOS EN JAVA
Programación Orientada a Objetos en Java
Telling Time.
1 Asignación Dinámica de Memoria Agustín J. González Versión original de Kip Irvine ELO 329.
UNIDAD VI Recursos esenciales de Java LSC. Natalia Rodríguez Castellón.
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6
Metodología de Programación Ayudantía 5 lelagos.ublog.cl 2009.
Servlets Servlets son módulos que extienden a servidores orientados a request/response, como por ejemplo Servidores Web “java-enabled”. Un servlet puede.
Clases y Objetos en Java ELO329: Diseño y Programación Orientados a Objetos.
First Grade – High Frequency Word Reading Competition Classroom Competition Created by: Malene Golding School Improvement Officer: Kimberly Fonteno.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
¿Qué haces en la escuela? Question words, objects, yo-go’s.
1 Asignación Dinámica de Memoria Agustín J. González ELO 329.
/** * Write a description of class General here. */ public class General { // instance variables - replace the example below with your own private int.
CONCEPTOS.
Associative, Commutative, and Distributive Properties of Addition and Multiplication August 18th Students only need to copy the writing in purple. Students.
Clases “ Es una Abstracción de un elemento del mundo real ”
Foreign Language Teaching Tips Rich Bradshaw. ¡Classroom Vocabulary Scavenger Hunt! Purpose Introduce new vocabulary words in TL Identify items using.
ALC 13 miércoles el 28 de septiembre. Bienvenida miércoles el 28 de septiembre Find a partner. Stand face to face but one person has to be looking at.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 4 Versión Diseño de tipos Igualdad, representación, código,
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Programación orientada a objetos Capítulo 3 Interacción de objetos.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Programación I Clases. Paradigma POO La programación Orientada a objetos (POO) es una forma programar, más cercana a como expresaríamos las cosas en la.
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
¿Por qué orientación al objeto ?
Podemos pensar en otros objetos no existentes: el reloj
Transcripción de la presentación:

Qué es Orientación a Objeto ? Los datos que usan los programas son objetos Los objetos son una colección de variables y métodos para manipularlas Métodos que modifican variables Método que retorna valores dependiendo del estado de las variables

Ejemplos de “Objetos” Un reloj: las variables representan dónde están los punteros A telephone book: the variables are a list of names and telephone numbers Poner la hora ¿Qué hora es? Set a name with a telephone number change the telephone number delete a pair name-telephone Given a name ask the telephone number

Clases y Objetos Todo objeto es de una clase dada La clase define el tipo de objeto –variables que contiene un objeto de esta clase –qué métodos se pueden aplicar a un objeto de esta clase Clase Clock Objeto A de clase Clock Objeto B de clase Clock Objeto B de clase Clock

Ejemplo de uso de Objetos Clock A = new Clock( ); A.setNewTime(3,35); int i; i = A.getHour( ); Put pointers in 3 and 35 Get the value of the hour-pointer

PhoneBook B = new PhoneBook( ); B.addEntry(“Simon”, ); B.getNumber(“Eduardo Vera” ); Agrega un par Recupera el telefono Crea un nuevo PhoneBook Eduardo Vera Eduardo Vera

¿ Por qué Object Orientation ? Es simplemente una estrategia para desarrollar programas grandes en forma más ordenada de manera de ir construyendo jerárquicamente objetos más complejos

Programar en JAVA Significa escribir clases Qué componente (atributos) tendrá un objeto de esta clase Cómo se crean nuevos objetos (constructor) Qué métodos puedo aplicar sobre un objeto de esta clase Es la nueva clase una extensión de la que había Cómo voy a echar a andar el programa (main)

La Clase String Son parte del lenguaje Se crean: String s = new String(Hola Mundo”); pero esto se puede resumir con String s = “Hola Mundo”; Tamaño de un String: int i = s.length(); k-esimo carácter: char c = s.charAt(k); Subsecuencias: String sub = s.substring(k); String sub = s.substring(inicio, fin); Búsqueda de subsecuencias: int i = s.indexOf(“hola”); Comparacion: boolean iguales s1.equals(s2); int i = s1.compareTo(s2); 0 si s1==s2, >0 si s1>s2, <0 si s1<s2

Búsqueda de Substrings String s = “llego y dijo hola”; int i = s.indexOf(“go”)´; i == 3 (parten de 0) Ej: Contar las apariciones de “hola” en un string s: public class Cuenta { public static void main(String args[]) { int i, apariciones = 0; while ((i = s.indexOf(“hola”)) !0 -1) { ++apariciones; s = s.substring(i+1); } System.out.println(“el string hola aparecio “+ apariciones+ “veces”); }

Un objeto de la clase clock tendrá 3 componentes (atributos, variables) hours minutes seconds Cada vez que un nuevo objeto Clock es creado el valor de los atributos se pone en cero (the hour will be midnight) Existirá un método para poner una hora nueva. Este método “recibe” el valor nuevo para la hora, los minutos y los segundos también habrán 3 métodos que “devoverán” los valores actuales de cada componente Clases definidas por el usuario: La clase Clock

Escribir el archivo Clock.java, compilarlo y usarlo en un programa Clock A = new Clock( ); A.setTime(15,30,20); int h = A.getHour( ); int m = A.getMinutes(); int s = A.getMinutes(); hours minutes seconds Clock.javaProgramClock1

Como se usan las clases definidas por el usuario El archivo con la clase definida debe ser compilado El archivo con la clase (resultado) debe estar en el mismo directorio que contiene el programa También puede ponerse el método main DENTRO de la definición de la clase. Java MyClass MyClass new AnotherClass() main(... AnotherClass

El registro de un estudiante Las variables son los datos del estudiante (name, age, grades, etc..) Métodos para setear y recuperar estos datos Name: Sakano Tepe Address: Musashino-shi. Year Born: 1977 Set data retrieve data Student.javaProgram9

The Phone Book Clington Vera Matsumoto NumberName Set(name,number) Change(name,number) Retrieve(name)

Extendiendo la clase Clock Vamos a añadir más información a la clase Clock. Vamos a poner las variables day y month y añadiremos los métodos necesarios para setear y recuperar estos valores. Si queremos mantener la clase Clock entonces podemos copiar todo el código en otro archivo (Clock2). Una forma más cómoda es hacer la segunda una extesión de la primera. public class Clock2 extends Clock { declare otras variables (day y month) declare otros métodos } Clock2.javaProgramClock2.java

Extendiendo una clase existente: Herencia Una de las características más poderosas de un lenguaje orientado a objeto es la posibilidad de extender una clase existente, incluso cuando no se cuenta con el código fuente. Esto se conoce como Herencia: la nueva clase hereda los atributos y métodos de la antigua Original Class Definition of new variables and methods Extended Class Super-class of the extended class

Extendiendo la clase Student public class WasedaStudent extends Student{ int[] marks; int nmarks; WasedaStudent(String x, String y, int z, int n) { super(x,y,z);// a call to the constructor of the superclass marks = new int[n]; nmarks = 0; } public void putNewMark(int x) { marks[nmarks] = x; nmarks = nmarks +1; } public double showAverage() { double sum = 0.0;int i; for(i=0; i < nmarks; i=i+1) sum = sum + marks[i]; return sum/nmarks; } }

Usando la clase extendida public class Program10 { public static void main(String args[]) { WasedaStudent ws1,ws2; ws1 =new WasedaStudent(“student1”,”Musashino-shi”,1980,5); ws2 =new WasedaStudent(“student2”,”Shinjuku-ku”,1981,7); ws1.putNewMark(10); ws1.putNewMark(5); ws1.putNewMark(4); ws2.putNewMark(5); ws2.putNewMark(8); ws2.putNewMark(7);ws2.putNewMark(4); System.out.println(ws1.showAverage()); System.out.println(ws2.showAverage()); ws1.show(); ws2.show(); } Note that we can use all the methods of the superclass

Resumen: Escribiendo clases public class Classname { declaration of variables write contructor method(s) write other methods } Esto significa que la clase será conocida fuera del archivo Nombres de clases empiezan por convención con mayúsculas

Cómo escribir métodos public int getHours( ) { return hours; } Public, private, protected or static Type of value the method will return (void in case it does not return any value) Parameters of the method (none in this case) Name of the method (given by the programmer) The instructions should be written within the brackets {}

Cómo escribir constructores Clock2 ( int h, int m, int s, int D, int M ) {... } No se necesita escribir nada aquí Parametros que recibirá el constructor para construir el nuevo objeto El nombre del método es el mismo que el de la clase Podemos escribir más de un constructor Clock2 ( ) {... } Este constructor pondría valores por omisión (default)

public, private, protected y static Los métodos y variables en una clase pueden ser clasificados como static private private protected y static Un método o variable public puede ser accesada por cualquier programa que esté usando un objeto de esa clase. Para el caso de variables públicas, se pueden referir y modificar directamente : public class Student { public String name; public String address; public int yearBorn; Student s1 = new Student(); s1.name = “Nelson Baloian”;

Private & protected Un método o variable private puede ser accesada sólo por los métodos que están escritos dentro del archivo. Incluso si una clase es derivada de otra que contiene una variable o método privado estas no pueden ser referidas. Un método o variable protected puede ser accesada por los métodos escritos en una clase extendida. Cuando no se pone nada frente a una variable o método se asume package (casi protected)

Private, protected, public Private: only known inside the file of the class Protected: known also to extended classes Public: known to anyone who knwos the class

Variables estáticas A static variable means that there is only one variable for the whole class (contrary to the dynamic variables, from which each object has an own instance of it) Example: we want to count how many students we have created: public class WasedaStudent extends Student { int[ ] marks; int nmarks; static int nstudents = 0; WasedaStudent(String x, String y, int z, int n) { super(x,y,z); marks = new int[n]; nmarks = 0; nstudents = nstudents +1; }

Variables estáticas nstudents marks [] nmarks name etc marks [] nmarks name etc marks [] nmarks name etc marks [] nmarks name etc

Métodos Estáticos A static method means that the method will be applied to no object. It is applied to the class. public static int nStudents() { return nstudents ; } The program using it shoud write: int = WasedaStudent.nStudents(); The Math class from the language has many static methods implemented: Math.sqr(x), Math.sin(x), Math.max(x,y), Math.pow(x,y) What is the meaning of public static void main(...) ?

Métodos Estáticos nStudents() nstudents putNewMark() showAverage() marks [] nmarks name etc Dynamic methods