La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Qué es orientación a objeto ?

Presentaciones similares


Presentación del tema: "Qué es orientación a objeto ?"— Transcripción de la presentación:

1 Qué es orientación a objeto ?
Es solo una manera de organizar el código. No es que se puedan hacer cosas que antes no se podían !!! Los datos que usa un programa se organizan en objetos Los objeos son una colección de variables asociadas a métodos Métodos que modifican las variables o “estado” de un objeto Métodos que retornan valores que reflejan el “estado” del objeto (valor de sus variables)

2 Por qué orientación al objeto ?
Una estrategia para poder desarrollar programas más grandes, más libres de errrores y en menos tiempo: Software engineering

3 Una clase que ya conocemos: Console
Constructores: Console c = new Console(); Console c = new Console(30,15); Console c = new Console(“Hola Gente”); Métodos que retornan un valor: int a = c.readInt(); double d = c.readDouble(); String s = c.readLine(); Métodos que modifican el estado del objeto (no retornan un valor): C.println(String) C.setSize(int, int) C.setLocation(int, int) Cons.java

4 Otra clase conocida: el String
Una clase está principalemnte definida por los métodos que se le pueden aplicar a un objeto e esta clase Hay un método especial llamdo constructor, el que crea un nuevo objeto de esta clase Ejemplo: String myName; //el objeto aun no existe myName = new String(“Nelson Baloian”); String myName = “Nelson Baloian”; Esta es una llamada al contructor. Para aplicar un método a un objeto: object_variable.method(parameters)

5 Obteniendo los caracteres del String
Largo (en caracteres) de un String : int i = myName.length(); - i tendrá el valor 14 para el String “Nelson Baloian” Obteniendo el i-esimo carácter: char c = myName.charAt(0); - c contendrá el caracter ‘N’ char c = myName.charAt(3); - c tendtrá el carácter ‘s’ Las posiciones parten desde el 0 y llegan hasta length() - 1

6 Ejemplos: Ejemplo 1 : imprimir un string invertido
String linea = c.readLine(); for(int i = linea.length()-1; i >=0 ; i--) print(linea.charAt(i); Ejemplo 2 : imprimir un string invertido int valorEntero(String x) { int valor = 0; for(int i = 0 i < linea.length(); i++) valor = valor*10 + (x.charAt(i)- ‘0’); return valor; } Los caracteres se pueden usar en expresiones numéricas, para lo cual entonces se usa el valor numérico que resulta de su repreentación binaria. Propuesto: double valorReal(String x)

7 Obteniendo Subsecuencias
2 métodos distintos: String substring(int) String substring(int, int) String sub = myName.substring(7); - sub contendrá el string “Baloian” String sub = myName.substring(3, 6); - sub contendrá el string “son” N o e l s n B a l o i a n 4 1 2 3 5 6 7 8 9 10 11 12 13 7 3,6

8 Búsqueda de Subsequencias
int indexOf(String) : entrega la primera aparición del string que viene como parámetro en el string al cual se le aplica el método, o un -1 si no estaba String s = new String(“Hello, Nelson, Hello”); int i = s.indexOf(“ello”); - i tomará el valor 1 int i = s.indexOf(String, int) : busca la primera aparicion del string pasado como parámetro a partir de la posición dada int i = s.lastIndexOf(String) : busca la última aparición del string int i = s.lastIndexOf(String, int) : busca la última aparición del string a partir de la posición dada como parámetro hacia atrás Programm13 Programm13b ReplaceLine Comparaciones

9 Comparación de Strings
boolean equals(String): entrega true si el parámetro es igual al string al cual se le aplica el método boolean esIgual = s1.equals(s2); la variable esIgual valdra true isi el texto contenido en s1 es igual al contenido por el string s2 int compareTo(String): conpara los strings y entrega un int haciendo una “restando” el string pasado como parámetro al string que se le aplica el método int i = s1.compareTo(s2); - i tomará los siguientes valores dependiendo de s1 y s2 0 si s1==s2, >0 si s1>s2, <0 si s1<s2 El valor del string se define de acuerdo a su aparición en un diccionario, primero significa menor

10 Otros métodos para String
Para saber mas acerca de cualquier otra clase que provee el lenguaje java se puede consultar Los más importantes para el curso: length substring (en todas sus variedades) equals compareTo charAt

11 Los Archivos de Texto Se organizan en líneas de texto (Strings)
Cada línea consiste una cadena de caracteres que termina con una marca de fin de línea Después de la marca de fin de línea de la última línea viene una marca de fin de archivo Por convención tienen la extensión .txt Se generan con un editor de texto (sin formato) o por un programa

12 Leyendo archivos de texto en JAVA
Los archivos de texto están organizados en líneas de caracteres Abrir un archivo existente : BufferedReader x = new BufferedReader( new FileReader(filename)) La líneas pueden ser leídas de la siguiente manera: String line = x.readLine() Los archivos de texto son un archivo secuenciales Luego de que ha sido leida la última línea, el método readLine() retornará el valor null. Hay que “importar” las clases BufferedReader y FileReader poniendo al comienzo del programa la instrucción import java.io.*; Copyfile Replace

13 Escribiendo archivos de texto en JAVA
Para abrir el archivo para escribir: PrintWriter x = new PrintWriter ( new FileWriter(filename)) Se pueden escribir líneas con los siguientes métodos: x.print(string) x.println(string) Si existía un archivo con ese nombre se borra y es reemplazado por el que genere el programa Es importante hacer al final x.close() para asegurarse que los datos que aún están en el buffer sean traspasados. Copyfile Replace

14 Archivos de bytes public FileInputStream(String name)
public int read() public int read(byte[] b) public int read(byte[] b, int off, int len) public FileOutputStream(String name) public FileOutputStream(String name, boolean append) public void write(int b) public void write(byte[] b) public void write(byte[] b, int off, int len)

15 Archivos de acceso aleatorio
public RandomAccessFile(String name, String mode) mode “r”= read, “rw”= read/write El archivo se organiza como un arreglo de bytes el método seek(long i) posiciona el file pointer delante del i-esimo byte. Desde ahí se puede escribir o leer con distintos métodos, de acuerdo a lo que se necesite, por ej: readInt() writeInt(int i) readChar() writeChar(char c) readString() writeString(String s) etc....

16 Archivos de objetos Lectura
FileInputStream istream = new FileInputStream("t.tmp"); ObjectInputStream p = new ObjectInputStream(istream); int i = p.readInt(); String today = (String)p.readObject(); Date date = (Date)p.readObject(); istream.close();

17 Archivos de objetos: escritura
FileOutputStream ostream = new FileOutputStream("t.tmp"); ObjectOutputStream p = new ObjectOutputStream(ostream) p.writeInt(12345); p.writeObject("Today"); p.writeObject(new Date()); p.flush(); ostream.close(); EL OBJETO DEBE SER SERIALIZABLE !!!!! (ver clase MyDate)


Descargar ppt "Qué es orientación a objeto ?"

Presentaciones similares


Anuncios Google