Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porÁngeles Segura Poblete Modificado hace 10 años
1
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
2
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
3
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
4
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
5
PhoneBook B = new PhoneBook( ); B.addEntry(“Simon”,422596160); B.getNumber(“Eduardo Vera” ); Agrega un par Recupera el telefono Crea un nuevo PhoneBook Eduardo Vera 422596160 Eduardo Vera 422596160
6
¿ 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
7
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)
8
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
9
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”); }
10
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
11
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 15 20 30 Clock.javaProgramClock1
12
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
13
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
14
The Phone Book......... 2345678Clington 3456789Vera 11122233Matsumoto NumberName Set(name,number) Change(name,number) Retrieve(name)
15
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
16
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
17
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; } }
18
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
19
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
20
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 {}
21
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)
22
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”;
23
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)
24
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
25
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; }
26
Variables estáticas nstudents marks [] nmarks name etc marks [] nmarks name etc marks [] nmarks name etc marks [] nmarks name etc
27
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(...) ?
28
Métodos Estáticos nStudents() nstudents putNewMark() showAverage() marks [] nmarks name etc Dynamic methods
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.