Descargar la presentación
La descarga está en progreso. Por favor, espere
1
¿Por qué orientación al objeto ?
Una estrategia para poder desarrollar programas más grandes, más libres de errores y en menos tiempo: Software engineering
2
Podemos pensar en otros objetos no existentes: tiempo
Las variables son las posiciones de los punteros: segundero, minutero y horario Los métodos son para poner los valores y preguntar “¿qué hora es?” Establecer valores de los punteros Preguntar la hora
3
Clases y objetos Todo objeto es de una cierta clase
La clase define el tipo de objeto, esto es: Qué variables contiene Qué métodos pueden ser aplicados a un objeto de esta clase Objecto A de clase clock Objecto B de clase clock Clase Clock Objecto C de clase clock
4
Diseño de los métodos (1)
Clock A = new Clock( ); Clock A; A = new Clock(); A.setTime(15,35,45); int i = A.getHour( ); String s = A.getTime() Crea un nuevo objeto Clock Pone los valores en 15, 35 y 45 recupera el valor del puntero horario recupera un String con hh:mm:ss
5
Escribamos el archivo Clock
Escribamos el archivo Clock.java, compilémolos y usémolos en un programa Clock A = new Clock( ); A.setTime(15,30,20); int h = A.getHour( ); int m = A.getMinutes(); int s = A.getMinutes(); String s = getTime(); hours minutes seconds 15 30 20 Por convención, los nombres de variables y metodos empiezan minúscuas Clock.java ProgramClock1
6
Cómo se define una clase nueva
Definir una nueva clase básicamente significa Definición de las variables que contendrá un objeto Definición de los métodos que se le podrán aplicar a un objeto de esta clase La definición de una clase debe ir en un archivo llamado Classname.java Por convención, el nombre de las clases debe empezar con mayúscula Console String Clock Student Después de compilar el archivo con la clase podemos usarla al igual que hemos usado la clase Consola
7
El registro de un estudiante
Las variables son los datos relevantes del estudiante (nombre, edad, dirección, etc..) Los métodos son para establecer valores y recuperar estos datos Poner valores Name: Sakano Tepe Address: Musashino-shi. Year Born: 1977 Recuperar valores
8
El registro de un estudiante
Las variables: name, address, yearBorn Los métodos setX(parámetro), getX(), Con X = Name, Address, Year Set data Name: Sakano Tepe Address: Musashino-shi. Year Born: 1977 retrieve data Student.java Program9
9
Dado un nombre preguntar el teléfono
El libro telefónico Las variables son listas de números y nombres Los métodos son para registrar un nuevo par (nombre,número), preguntar el teléfono dado un nombre, cambiar un teléfono o borrar un par Poner nuevo par (nombre, número) Cambiar el número dado un nombre Borrar un par (nombre, número) Dado un nombre preguntar el teléfono
10
Diseño de los métodos (2)
Phonebook B = new Phonebook( ); B.addEntry(“Simón Vera”, ); long l = B.getNumber(“Simón Vera” ); Crea un libro de teléfonos vacío Dados nombre y número como parámetros crea un entry Simón Vera Simón Vera Dado un nombre como parámetro recupera el número
11
Como usar clases definidas por el usuario
La manera más simple es usar el archivo class en el mismo dirctorio donde se encuantra el programa que usa la clase (también se pueden usar paquetes o definir la variable CLASSPATH Java MyClass MyClass AnotherClass main(... new AnotherClass()
12
The Phone Book Name Number Matsumoto 11122233 Vera 3456789 Wakahara
..... .... Set(name,number) Retrieve(name)
13
The Phone Book: Implementation 1
int[] numbers String[] names 1 2 3 4 5 6 Jun Kenichiro Kamugisha 45678 12345 55443 int next Maximum ProgramPhonebook Phonebook
14
El Phone Book: Implementation 2
(Un vector de Objetos) Vector entries Jun 123456 Sakano 223344 Juinichi 889997 Cada elemento del vector es un objeto de la clase Entry Un Objeto de la clase Entry tiene un String (name) y un int (para el numero)
15
El Objeto Vector Está definido en el paquete java.util, por lo cual hay que importarlo Se pueden guardar objetos de cualquier clase Sólo ocupa el espacio que necesita para los objetos que realmente tiene Los objetos tienen una posición y se pueden “rescatar” Los métodos más importantes son: add(objeto) agrega el objeto al final add(i,objeto) agrega el objeto en la posición dada elementAt(i) retorna un puntero al elemento en la posicion removeElementAt(i) elimina el elemento en la posición dada clear() elimina todos los elementos Phonebook2
16
La clase Hashtable Esta definida en el package java.util,
Acepta pares de objetos de cualquier clase El primero es usado como indice, el segundo como informacion Los metodos mas importantes son: put(objet1, objet2) adds a pair of objects (object1 is the index, object2 the information get(objeto1) returns the object for which object1 is the index remove(objet1) deletes the object for which object 1 is index Hash
17
Otra class: el Vektor (o Punto)
Crear un Vektor Retornar em módulo de un Vektor Retornar parte-x o parte-y Sumar 2 Vektores Restar 2 Vektores y x ProgramVektor.java Vektor.java
18
La variable “this” en la definición de la clase
public class MyClass { var a1, a2, a3; method1() { this this.a, this.b, this.c } public static void main(....) { MyClass mc = new MyClass() mc.method1(); }
19
La variable a un object es un puntero
Console c, b; Tenemos dos punteros apuntando a nada todavía. Tienen el valor null y causará Invocar un método sobre esta variable c = new Console(); b = c; Ahora tenemos dos variables apuntando Al mismo objeto objecto. Si invocamos Cualquier método sobre cualquiera de las Variables, ambas notarán el cambio c b
20
Resumamos: Escritura de clases
Esto implica que esta clase será conocida fuera del archivo también. Nombre de clases empiezan Por convención con mayúsculas public class Classname { declaration of variables write contructor method(s) write other methods } Se pueden definir más clases en un mismo archivo pero una de ellas Puede ser pública solamente ! (y es la que le da el nombre al archivo)
21
Cómo escribir métodos dinámicos
Type of value the method will return (void in case it does not return any value) Name of the method (given by the programmer) public int getHours( ) { return hours; } Public, private, protected or static Parameters of the method (none in this case) The instructions should be written within the brackets {}
22
Escritura de constructores
Nombre del método es El de la clase Parámetros que recibirá el Constructor para crear el nuevo Objeto (inicialización) Clock2 ( int h, int m, int s, int D, int M ) { . . . } No se necesita escribir nada aqui Se puede escribir más de un constructor Clock2 ( ) { . . . } Este constructor pondrá valores default en el objeto
23
Extendiendo un clase: Herencia
Una de las características más poderosas que tiene la orientación a objeto es la posibilidad de extender una clase, incluso si la implemnetación de esta no se conoce Original Class Class1 Super-clase de la clase extendida Un objeto de Clase Class2 es También de Clase Class1 Original Class Class2 Extended Class Definición de nuevas variables y métodos
24
Extendamos la clase Clock
Vamos a ponerle más información a un objeto de clase Clok Le pondremos las variables day y month y los métodos Para manejarlas. public class Clock2 extends Clock { declare otras variables (day y month) declare otros metodos } Clock2.java dos
25
La clase Object Existe una clase minimal llamada “Object”
Todas las clases en java son extensiones de ella Incluso si no se escribe explícitamente, las clases definidas por el usuario también son extensiones de ella Esto implica que cualquier objeto en un programa java será de la clase Object Object Clock String Console Clock2 Others Console2
26
Extendiendo la clase Student
Vamos a incorporar las notas Como cada alumno puede recibir un n úmero variable de notas, vamos a usar un arreglo de largo variable Vectores no son parte del core del lenguaje java, por lo que hay que importar el paquete java.utility The instruction for doing this is import java.util.Vector; or import java.util.*; Some of the methods of this class are void add(Object) Object elementAt() int size() WasedaStudent Program10
27
Public, private, protected
Los métodos y las variables en una clase se pueden clasificar como public, private, y protected Un método o variable public puede ser accesada desde cualquier programa que tenga acceso a la clase. Esto significa que en el caso de lariable declaradas public, un programa externo puede modificar el valor de estas variables public class Student { public String name; public String address; public int yearBorn; ...... Student s1 = new Student(); s1.name = “Nelson Baloian”;
28
Private & protected Un método o variable clasificada como private puede ser usada sólo por métodos escritos dentro de la clase. Una variable o método protected puede ser accesada desde desntro de la clase y desde una clase extendida Cuando no hay ningún clasificador significa que el método o variable son accesibles desde dentro del paquete (package, serán vistos más adelante con detalle)
29
Private, protected, public
Public: conocido por cialquiera que conozca la clase Protected: conocido también por la extendida Private: sólo conocido por la clase
30
Variables Estáticas (static)
Una variable declarada como static significa que habrá una sola para toda la clase (contrariamente a las dinámicas, de las cuales tiene cada objeto una copia) Ejemplo: queremos llevar la cuanta de cuántos estudiantes han sido creados public class WasedaStudent2 extends WasedaStudent { public static int nstudents = 0; WasedaStudent2(String x, String y, int z, int n) { super(x,y,z); marks = new int[n]; nmarks = 0; nstudents = nstudents +1; }
31
Polimorfismo Muchas veces es necesario que un Objeto de una cierta clase sea considerado como también perteneciente a otra al mismo tiempo Un objeto puede verse como perteneciente a la clase final definida para él y además como perteneciente a todas las superclases de la jerarquía hasta Object Este es el primer mecanismo de polimorfismo Pero las clases en Java solo pueden extender una superclase. Muchas veces sucede que objetos de clases que ya han extendido una clase puedan ser vistos como pertenecientes a otra clase también Esto puede lograrse usando interfaces Veamos ejemplos de ambos casos
32
Ejemplo con Herencia Object GraphicObject RectangleObject CircleObject
GraphicTest.java
33
Métodos para dibujar en la consola
x1,y1 x2,y2 drawLine(x1,y1,x2,y2) drawRect(x,y,w,h) fillRect(x,y,w,h) drawOval(x,y,w,h) fillOval(x,y,w,h) w x,y h w x,y h
34
Métodos para dibujar en la Consola
x[0],y[0] drawPolygon(x[],y[],n) fillPolygon(x[],y[],n) setColor(color.colorname) colorname = black, blue, cyan, darkGray, gray, orange, white, red, pink, yellow setColor(new color(red,green,blue)) x[1],y[1] x[4],y[4] x[2],y[2] n = 5 x[3],y[3]
35
Dibujando Strings y cambiando el tamaño y el Font
drawString(str, x,y) We can change the standard Font by creating a new one Font afont = new font(“Arial”,font.Bold,20) c.setFont(afont); x This is the string y Estos métodos son los mismos que usa Java para dibujar componentes nativas (JFrame, Jcanvas, etc...)
36
Interfaces Vektor Clock VisualVektor VisualClock VisualVektor
INTERFACE: GraphicObjectInterface GraphicTestInterface.java
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.