La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Repaso/resumen: Introducción a la Programación orientada a objetos

Presentaciones similares


Presentación del tema: "Repaso/resumen: Introducción a la Programación orientada a objetos"— Transcripción de la presentación:

1 Repaso/resumen: Introducción a la Programación orientada a objetos
Clase 17: Repaso/Resumen Repaso/resumen: Introducción a la Programación orientada a objetos Strings Archivos Uso de objetos Definición de clases Herencia Ventanas Dibujos Gráficos 3-Mayo (N.Baloian)

2

3 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(); return r.equals(“si”)||r.equals(“no”)) ? r : siNo(x); } //reemplazar todos los x por y en z static public String reemplazar( String x,String y,String z){ int i=z.indexOf(x); if(i<0)return z; //caso base return z.substring(0,i) + y + reemplazar(x,y,z.substring(i+x.length()));

4 Archivos //copiar archivos contando caracteres y líneas
BufferedReader I=new BufferedReader( new FileReader(U.readLine(“input?”))); PrintWriter O=new PrintWriter( new FileWriter(U.readLine(“output?”)); int nc=0,int nl=0; String linea; while((linea=I.readLine())!= null){ O.println(linea); ++nl; nc+=linea.length(); } O.close(); I.close(); U.println(nl+“ líneas “+nc+” caracteres”);

5

6 Uso de objetos de una clase
//Fracción más lejana (del promedio) F f=new F(U.readLine(“nº/nº?”)), s=new F(0), min=new F(f), max=new F(f), cero=new F(); int n=0; while(!f.equals(cero)){ s.sumar(f); ++n; if(f.compareTo(max)>0) max.asignar(f); if(f.compareTo(min)<0) min.asignar(f); f.asignar(U.readLine(“nº/nº?”)); } s.dividir(new F(n)); //promedio U.println(“más lejana=“+ (max.resta(s).compareTo(s.resta(min))>0 ? max : min).toString() );

7 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 f(…) resultado consulta

8 Clase Fraccion (F) class F{ //en archivo F.java
//representacion: datos de un objeto private int a,b;//visibles en clase, no fuera //constructores: inicializan objeto public F(int x,int y){//”canónico” a=x; b=y; validar(); } public F(){a=0; b=1;}//default ctor public F(F x){a=x.a; b=x.b;}//copy ctor public F(int x){a=x; b=1;}//conversión public F(String x){asignar(x);} public F(double x){...}//si x=4.5,a=45 y b=10

9 Funciones: devuelven un resultado (no modifican objeto)
//selectores public int numerador(){return a;} ublic int denominador(){return b;} //conversores public String toString(){return a+”/”+b;} public int toInt(){return a/b;} public double toDouble(){return (double)a/b;} //comparadores public boolean equals(F x){ return a*x.b==b*x.a; } public int compareTo(F x){ return a*x.b-b*x.a;

10 //funciones que devuelven un objeto de la clase
//operadores binarios public F suma(F x){ return new F(a*x.b+b*x.a,b*x.b); } public F resta(F x){ return new F(a*x.b-b*x.a,b*x.b); public F mult(F x){ return new F(a*x.a,b*x.b); public F div(F x){ return new F(a*x.b,b*x.a); //operadores unarios public F inverso(){return new F(b,a);} public F simple(){ int m=U.mcd(a,b); return new F(a/m,b/m);}

11 Procedimientos (public void): modifican objeto
//modificadores numerador(int x){a=x;} denominador(int x){b=x; validar();} //operadores unarios simplificar(){int m=U.mcd(a,b);a/=m;b/=m);} invertir(){int t=a; a=b; b=t; validar();} //operadores binarios sumar(F x){a=a*x.b+b*x.a; b*=x.b;} restar(F x){a=a*x.b-b*x.a; b*=x.b);} multiplicar(F x){a*=x.a; b*=x.b;} dividir(F x){a*=x.b; b*=x.a; validar();}

12 Cont... //asignación public void asignar(F x){a=x.a; b=x.b;}
public void asignar(String x){ int i=x.indexOf(“/”); if(i<0){a=Integer.parseInt(x);b=1;return;} a=Integer.parseInt(x.substring(0,i)); b=Integer.parseInt(x.substring(i+1)); validar(); } //métodos internos (de servicio) private void validar(){ if(b==0) U.abortar(“denominador cero”); }}//fin class F

13

14

15

16

17

18 Clase 17: Repaso/Resumen
3-Mayo (N.Baloian)

19

20

21

22

23

24

25

26

27

28

29 Clase 17: Repaso/Resumen
3-Mayo (N.Baloian)

30


Descargar ppt "Repaso/resumen: Introducción a la Programación orientada a objetos"

Presentaciones similares


Anuncios Google