Qué es orientación a objeto ?

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 13 Ing. Ronald Criollo.
Advertisements

Archivos de Texto. Introducción Los archivos son una secuencia de bits que se guarda en el disco duro. La ventaja de utilizar archivos es que los datos.
Programación, Algoritmos y Estructuras de Datos
Archivos Implementar un método que lea una secuencia de números enteros de un archivo y compute la cantidad de elementos leídos.
Igor Santos Grueiro. Ahora tenemos datos y datos …
Archivos Programación.
Repaso/resumen 1.lectura/escritura y asignación 2.funciones 3.selección de instrucciones (if-else) 4.repetición de instrucciones (while) 5.recursión 6.operadores/instrucciones.
Archivos.
Las clases FileReader y BufferedReader brindan servicios para manejar archivos. Las instrucciones: Archivos FileReader fr = new FileReader (ruta); BufferedReader.
Primeros pasos en java. Definición de las librerías import java.applet.Applet; //cuando se crea un applet import java.awt.*; //importa todos los paquetes.
2. Strings, Archivos y Arreglos
Visual Basic Prof.: Carol Briones García. Uso de Archivos  Definición  Es un conjunto de información que se almacena en algún medio de escritura que.
Manejo de archivos de texto.  Unidad fundamental de almacenamiento dentro del ámbito de la informática. Alberga un conjunto de datos que es posible leer,
1 Métodos. 2 Un método es un conjunto de instrucciones definidas dentro de una clase, que realizan una determinada tarea y a las que podemos invocar mediante.
Introducción al Lenguaje C (II) Cadenas de caracteres, archivos de cabecera, lectura y escritura Fundamentos de Programación Departamento de Lenguajes.
UNIVERSIDAD TECNOLÓGICA DE PANAMÁ Facultad de Ingeniería de Sistemas Computacionales Programa de Lic. en Informática Educativa Computación.
RubyNote ARCHIVOS EN RUBY HECHO POR: FRANCISCO ALVAREZ AGUILA.
BUSQUEDAS BINARIAS Y SECUENCIALES Hernández Salazar Alma Pérez González Luis Alberto Villa Méndez Edgar Adrián Villegas Titla Jorge Ramsés Ríos Álvarez.
Flujos de datos Un flujo es un canal por donde fluyen los datos.
Archivos en Java Unidad III – Programación Orientada a Objetos en Java Programación I
Introducción a la programación en JAVA
Programación en C - manejo de Archivos
Clase1: lectura/escritura/asignación
2.  Diagramas de Estado.
Clase 8: Strings Valeria Herskovic –
Programación en C - manejo de Archivos
ECLIPSE.
Métodos y parámetros.
Repaso/resumen lectura/escritura y asignación funciones
26-abril(J.Alvarez).
Métodos en Java.
Estructuras de Datos Recursividad.
Repaso/resumen: Introducción a la Programación orientada a objetos
IPOO 2 cuatrimestre 2017 Departamento de Ciencias e Ingeniería
Clase 8: Repaso/Resumen
Objeto de clase Fracción métodos públicos representación privada constructor Fraccion(…) asigna a procedimiento void m(…) modifica b función tipo/clase.
Clase 7: Abreviaturas Valeria Herskovic –
UNIVERSIDAD AUTONOMA METROPOLITANA Programación Estructurada
Objeto de clase Fracción métodos públicos representación privada constructor Fraccion(…) asigna a procedimiento void m(…) modifica b función tipo/clase.
Teclado y Pantalla (Java estándar)
Tema 3. Fundamentos para la construcción de código a partir del algoritmo Objetivo: El alumno construirá programas utilizando el lenguaje de programación.
26-abril(J.Alvarez).
Clase 7: Repaso/Resumen
Aplicaciones de RECURSIVIDAD
M.C Alejandro Castellanos Lopez
Algunas ideas básicas de C++
MC Beatriz Beltrán Martínez Verano 2018
Repaso/resumen: Introducción a la Programación orientada a objetos
Lenguaje Java: características técnicas
Clase 7 Strings 28 de Marzo (N.Baloian).
2.  Diagramas de Estado.
Qué es orientación a objeto ?
Repaso/resumen: Introducción a la Programación orientada a objetos
Clase1: lectura/escritura/asignación
Introducción a la Computación Numérica
//Leer desde (posición del cursor de) archivo //un máximo de N líneas. //Entregar también nº de líneas leídas. static public int leerLineas (BufferedReader.
String, random y stream en java
Clase 10 (Repaso/Resumen)
Leyendo strings de la línea de comandos
Ejemplos de uso //obtener una respuesta “si” o “no” static public String siNo(String x) throws IOException{ String r=U.readLine(x+” si o no?”) .trim().toLowerCase();
Estructuras de control
Clase1: lectura/escritura/asignación
IPOO 2 cuatrimestre 2018 Departamento de Ciencias e Ingeniería
Problemas de Strings boolean palindrome(String x) Ej: palindrome(“reconocer”)=true boolean alfabetico(String x) Ej: alfabetico(“hola”)=true,
Lenguaje Java: características técnicas
Prof. Marcos Heredia.  Primitivos y No Primitivos.
Problema Un programa debe leer 2 números desde un objeto Console. El primero es el monto que un cliente debe pagar por una compra y el segundo la cantidad.
Qué es orientación a objeto ?
Conceptos básicos para la progamción
Transcripción de la presentación:

Qué es orientación a objeto ? Es solo una manera de organizar el código. 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)

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) Para aplicar un método a un objeto: variable_objeto.metodo(parametros) Cons.java

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 Constructores String myName; //el objeto aun no existe myName = new String(“Nelson Baloian”); String myName = “Nelson Baloian”; El operador de concatenación (unir 2 strings): String nobre = readLine(); saludo = “hola “+nombre+”, como estas”; Se puede usar para unir strings con cualquier otra cosa que será convertida forzadamente a string

Programa

Explicaciones

Explicaciones

Obtener una respuesta “si” o “no” Solución 1 String r; //respuesta while(true){ C.print(“si o no ? “); r = C.readLine(); //leer respuesta r = r.trim(); //eliminar espacios r = r.toLowerCase(); //a minusculas if(r.equals(“si”)||r.equals(“no”))break; } if( r.equals(“si”) ) ... else ... Solución 2 r = C.readLine().trim().toLowerCase(); //ver solución con switch en apuntes

Prob 3: String repetir(String x,int y){...} Ejs: repetir(“ja”,3) = “jajaja” y repetir(“a”,0) =“” Solución 1 (con iteración) String aux = “”; for(int i=1; i<=y; ++i)//repetir y veces aux = aux + x; // o aux+=x; return aux; Solución 2 (con recursión al final: tail recursion) if( y <= 0 ) return “”; else return x + repetir(x,y-1); Solución 3 (con recursión al comienzo: head recursion) return repetir(x,y-1) + x;

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

Public static int valorInt(String x){ Public static int valorInt(String x){...} devuelve valor entero contenido en x Solución 1 (“a mano”) x = x.trim(); //eliminar espacios if(x.equals(“”)) return 0; int i = 0; int signo = 1; if (x.charAt(0) == ‘-’) { signo = -1; i++; } else if (x.charAt(0) == ‘+’) i++; // signo ya es positivo int s=0, p=1; for(; i>=0; --i){ s += p*(x.charAt(i)-'0'); //’7’-‘0’= 7 (int) p *= 10; } return s; Solución 2: return Integer.parseInt(x); //para enteros retunrn Double.parseDouble(x); // para reales

Problema Programar el método public static String inverso(String x) en el que inverso(“roma”) = “amor” inverso(“a”) = “a” inverso(“”) = “”

Soluciones Iterativas Solución 1 (iteración para recorrer caracteres de izq a der) String aux = “”; for(int i=0; i<x.length(); ++i) aux = x.charAt(i) + aux; return aux; Solución 2 (iteración para recorrer caracteres de der a izq) for(int i=x.length()-1; i>=0; --i) aux = aux + x.charAt(i)

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

Soluciones Recursivas Solución 3 (recursión al final) int n = x.length(); if( n == 0 ) return “”; else return x.charAt(n-1) //ultimo caracter + inverso(x.substring(0,n-1)); } Solución 4 (recursión al comienzo) if( x.equals(“”) ) return inverso(x.substring(1)) + x.charAt(0); //primer caracter

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

Problema: public static int apariciones(String x, String y) { Problema: public static int apariciones(String x, String y) {...} retorna las veces en que el string y aparece en x si a = “hola, hola, que tal raton con cola” b = “ola” apariciones(a,b) debe entregar 3

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 Xcxcxcxcxcxc dfdfdfdfd xxxxxxxxxxxxxx ssssssssss ssssssss

Escribiendo archivos de texto Leer de Console una cantidad indeterminada de líneas terminada con el string “fin” y grabarlas en un archivo de nombre “archivo.txt” import java.io.*; class CrearArchivo{ static public void main(String[]args) throws IOException { Console C=new Console(); PrintWriter a=new PrintWriter(new FileWriter(“archivo.txt”)); while(true){ C.print(“linea (o fin) ? “); String linea = C.readLine(); if( linea.equals(“fin”) ) break; a.println(linea); } a.close();

Explicaciones 1 1 .import java.io.*; Inserta (deja disponibles) clases predefinidas para leer y escribir archivos 2. throws IOException si se produce una excepción (“error”) de lectura/escritura, se muestra un mensaje y se aborta (termina) el programa 3. PrintWriter a=new PrintWriter(...); “abre” (prepara, inicializa) archivo para escritura si archivo no existe, se crea, y si ya existe, se regraba ubica el cursor del archivo al comienzo del espacio asignado “archivo.txt”: nombre externo del archivo (en el disco) a: objeto de clase PrintWriter que representa al archivo .

POR FAVOR, NO ENTRAR NI SALIR DESPUES DE PASADOS 15 MINUTOS DEL INICIO DE LA CLASE DESCONCENTRAN AL PROFESOR Y A LOS DEMÁS ALUMNOS Atte. Nelson Baloian

Explicaciones 2 a.println(linea) Escribe (graba) una línea en el archivo Graba caracteres del string graba una marca de fin de línea (carácter especial newline o \n) ubica cursor después de newline print: método que sólo graba caracteres (y no newline) .a.close() “cierra” el archivo y graba marca de fin de archivo (eof) .

Leyendo archivos de texto Mostrar en un objeto Console el contenido de cada línea del archivo “archivo.txt” import java.io.*; class LeerArchivo{ static public void main(String[]args) throws IOException{ Console C=new Console(); BufferedReader a = new BufferedReader( new FileReader(“archivo.txt”)); while(true){ String linea = a.readLine(); if( linea==null ) break; C.println(linea); } a.close();

Explicaciones 1 .BufferedReader a=new BufferedReader(...); “abre” (prepara, inicializa) archivo para lectura si archivo no existe, aborta si archivo existe, ubica el cursor al comienzo a: objeto de clase BufferedReader que representa al archivo 2 .a.readLine() lee una línea del archivo entrega un string con los caracteres de la línea avanza cursor al comienzo de la línea siguiente si detecta fin del archivo, entrega valor null (no “”) String linea; while((linea=a.readLine()) !=null){...} 3. a.close() “cierra” el archivo si se omite, se cierra al terminar programa . Explicaciones

Problema (15 minutos) 1 .Escriba un programa que lea de un objeto consola un nombre de archivo 2. Cada línea del archivo que contenga el string entregado debe escribirse en un archivo llamado esta<String>.txt y las otras en un archivo llamado noEsta<String>.txt <String> es el string que se dio para buscar .

import java.io.*; class DividirArchivo{ static public void main(String[]args)throws IOException{ Console c = new Console(); String archivo = c.readString(); String buscar = c.readString(); BufferedReader a=new BufferedReader( new FileReader(archivo)); //dividir en dos mitades PrintWriter si=new PrintWriter( new FileWriter(“esta”+string+”.txt”)); PrintWriter no=new PrintWriter( new FileWriter (“noEsta”+string+”.txt”)); String linea; for(int i=1; (linea=a.readLine())!=null; ++i) if( (linea.indexOf(string)) != -1 ) si.println(linea); else no.println(linea); si.close(); no.close(); a.close(); }

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

Entrada y Salida sin Console Leer de una cantidad indeterminada de líneas terminada con el string “fin” y grabarlas en un archivo de nombre “archivo.txt” import java.util.*; class CrearArchivo{ static public void main(String[]args)throws IOException{ Scanner teclado = new Scanner(System.in)); PrintWriter a=new PrintWriter( new FileWriter(“archivo.txt”)); while(true){ System.out.print(“linea ? “); String linea = teclado.nextLine(); if( linea==null ) break; a.println(linea); } a.close();

Jalisco sin Console import java.util.*; public class UsoScanner { public static void main(String ars[]) { Scanner sc = new Scanner(System.in); System.out.print("hola, como te llamas "); String nombre = sc.nextLine(); System.out.println(nombre+ ", ingresa un numero"); int i = sc.nextInt(); System.out.println(“El mio es "+(i+1)+", yo gano "); }