La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Uso de objetos de una clase

Presentaciones similares


Presentación del tema: "Uso de objetos de una clase"— Transcripción de la presentación:

1

2 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() );

3 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

4 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

5 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;

6 //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);}

7 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();}

8 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

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32


Descargar ppt "Uso de objetos de una clase"

Presentaciones similares


Anuncios Google