Вы находитесь на странице: 1из 8

// Fig. 6.1: Time.

java
// Definicion de la clases Time
public class Time {
private int hour; // 0 - 23
private int minute; // 0 - 59
private int second; // 0 - 59

// El contructor Time inicializa todas las variables de
// ejemplar en cero. Esto asegura bque cada objeto Time
// iniciara en un estado consistente.
public Time() { setTime( 0, 0, 0 ); }

// Fijar un nuevo valor Time usado hora militar
// realizar verificaciones de validez de los estados
// Asignar cero a los valores no validos..
public void setTime( int h, int m, int s )
{
hour = ( ( h >= 0 && h < 24 ) ? h : 0 );
minute = ( ( m >= 0 && m < 60 ) ? m : 0 );
second = ( ( s >= 0 && s < 60 ) ? s : 0 );
}

// Conjvertir Time en un Sting en formato de hora militar
public String toMilitaryString()
{
return ( hour < 10 ? "0" : "" ) + hour +
( minute < 10 ? "0" : "" ) + minute;
}

// Convertir Time en un String en formato de hora estandar
public String toString()
{
return ( ( hour == 12 || hour == 0 ) ? 12 : hour % 12 ) +
":" + ( minute < 10 ? "0" : "" ) + minute +
":" + ( second < 10 ? "0" : "" ) + second +
( hour < 12 ? " AM" : " PM" );
}
}









// Fig. 6.1: TimeTest.java
// Class TimeTest para ejercitar la clase time
import java.awt.Graphics;
import java.applet.Applet;

public class TimeTest extends Applet {
private Time t;

public void init()
{
t = new Time();
}

public void paint( Graphics g )
{
g.drawString( "La hora military inicial es: " +
t.toMilitaryString(), 25, 25 );
g.drawString( "La hora estandar es: " +
t.toString(), 25, 40 );

t.setTime( 13, 27, 6 );
g.drawString( "La hora military despues de setTime es: " +
t.toMilitaryString(), 25, 70 );
g.drawString( "StandLa hora estandar despues de setTime es: " +
t.toString(), 25, 85 );

t.setTime( 99, 99, 99 );
g.drawString( "Despues de intentar valores no validos:",
25, 115 );
g.drawString( "Hora militar : " +
t.toMilitaryString(), 25, 130 );
g.drawString( "Hora estandar: " + t.toString(),
25, 145 );
}
}










// Fig. 6.2: TimeTest.java
// Demostrar los errores que resultan de intentos por
// acceder a miembros privados de una clase.
import java.awt.Graphics;
import java.applet.Applet;

public class TimeTest extends Applet {
private Time t;

public void init()
{
t = new Time();
}

public void paint( Graphics g )
{
t.hour = 7;

g.drawString( "minuto = " + t.minute, 25, 25 );
}
}
















// Fig. 6.3: SalesPerson.java
// Definicion de la clase SalesPerson con un metodo de utilidad
public class SalesPerson {
private double sales[]; // 12 cifras de ventas mensuales

// El metodo contructor asigna memoria al arreglos sales
public SalesPerson()
{
sales = new double[ 12 ];
}

// Metodo para fijar un de las 12 cifras de ventas mensuales
public void setSales( int month, double amount )
{
if ( month >= 1 && month <= 12 && amount > 0 )
sales[ month - 1 ] = amount;
}

// Metodo de utilidad privado para obtener el total annual de ventas
private double totalAnnualSales()
{
double total = 0.0;

for ( int i = 0; i < 12; i++ )
total += sales[ i ];

return total;
}

// Convertir la cifra de total annual de venta en String
public String toString()
{
return "El total de venta del ao es $" +
totalAnnualSales();
}
}










// Fig. 6.3: SalesPersonTest.java
// Demostracion de la clase SalesPerson y un metodo de utilidad
import java.awt.*;
import java.applet.Applet;

public class SalesPersonTest extends Applet {
private SalesPerson s;
private double salesFigure; // cifra de venta
private int month; // mes
private boolean moreInput = true; // mas entradas?
private String months[] = { "Enero", "Febrero",
"Marzo", "Abril", "Mayo", "Junio",
"Julio", "Agosto", "Septiembre",
"Octuber", "Noviember", "Diciembre" };

// Componentes de la GUI
private Label enterLabel;
private TextField currentMonth, enter, total;

public void init()
{
s = new SalesPerson();
month = 1;

enterLabel = new Label( "Teclee ventas de" );
currentMonth = new TextField( "Enero", 10 );
currentMonth.setEditable( false );
enter = new TextField( 10 );
total = new TextField( 30 );
total.setEditable( false );

add( enterLabel ); // rotulo para las entradas
add( currentMonth ); // cuadro de texto para mes actual
add( enter ); // cuadro de texto para introducer la cifra
add( total );
}

public boolean action( Event e, Object o )
{
if ( e.target == enter ) {
if ( moreInput ) {
Double val = Double.valueOf( e.arg.toString() );
s.setSales( month, val.doubleValue() );

if ( month == 12 ) {
total.setText( s.toString() );

// Ocultar componetes de GUI que ya no se nesesitan
enterLabel.hide();
currentMonth.hide();
enter.hide();
moreInput = false;
}
else {
month++;
currentMonth.setText( months[ month - 1 ] );
enter.setText( "" ); // Despejar el campo de texto
}
}
}

return true;
}
}






















// Fig. 6.4: Time.java
// Definicion de la clase Time
public class Time {
private int hour; // 0 - 23
private int minute; // 0 - 59
private int second; // 0 - 59

// El constructor de Time inicializa cada variable de
// ejemplar en cero. Esto asegura que el objeto Time inicia
// en un estado consistente.
public Time() { setTime( 0, 0, 0 ); }

// Constructor de Time: se especifica que hour; minute y
// second son 0 por omision.
public Time( int h ) { setTime( h, 0, 0 ); }

// Constructor de Time: se especifica que hour y minute;
// second son 0 por omision.
public Time( int h, int m ) { setTime( h, m, 0 ); }

// Contructor de Time: se especificam hour, minute y second.
public Time( int h, int m, int s ) { setTime( h, m, s ); }

// Establecer un nuevo valor Time usado hora militar
// validos se fijan en cero
// validos se fijan en cero.
public void setTime( int h, int m, int s )
{
hour = ( ( h >= 0 && h < 24 ) ? h : 0 );
minute = ( ( m >= 0 && m < 60 ) ? m : 0 );
second = ( ( s >= 0 && s < 60 ) ? s : 0 );
}

// Convertir Time en String en format de hora militar
public String toMilitaryString()
{
return ( hour < 10 ? "0" : "" ) + hour +
( minute < 10 ? "0" : "" ) + minute;
}

// Convertir Time en String en format de hora estandar
public String toString()
{
return ( ( hour == 12 || hour == 0 ) ? 12 : hour % 12 ) +
":" + ( minute < 10 ? "0" : "" ) + minute +
":" + ( second < 10 ? "0" : "" ) + second +
( hour < 12 ? " AM" : " PM" );
}
}





// Fig. 6.4: TimeTest.java
// Empleo de contructores sobrecargados
import java.awt.Graphics;
import java.applet.Applet;

public class TimeTest extends Applet {
private Time t1, t2, t3, t4, t5;

public void init()
{
t1 = new Time();
t2 = new Time( 2 );
t3 = new Time( 21, 34 );
t4 = new Time( 12, 25, 42 );
t5 = new Time( 27, 74, 99 );
}

public void paint( Graphics g )
{
g.drawString( "Construido con:", 25, 25 );
g.drawString( "todos los argumentos por omision25, 40 );
g.drawString( " " + t1.toMilitaryString(),
25, 55 );
g.drawString( " " + t1.toString(), 25, 70 );

g.drawString( "hora espefificada, minute " +
"y Segundo por omision 25, 85 );
g.drawString( " " + t2.toMilitaryString(),
25, 100 );
g.drawString( " " + t2.toString(), 25, 115 );

g.drawString( "hora y minuto especificados ; " +
"Segundo por omision:", 25, 130 );
g.drawString( " " + t3.toMilitaryString(),
25, 145 );
g.drawString( " " + t3.toString(), 25, 160 );

g.drawString( "hora, minute y Segundo especificados:",
25, 175 );
g.drawString( " " + t4.toMilitaryString(),
25, 190 );
g.drawString( " " + t4.toString(), 25, 205 );

g.drawString( "alvalores especificados no validos:",
25, 220 );
g.drawString( " " + t5.toMilitaryString(),
25, 235 );
g.drawString( " " + t5.toString(), 25, 250 );
}
}

Вам также может понравиться