martes, 26 de febrero de 2008

ejercicios en blue j (2.1 a 2.10)

  • Exercise 2.1

Create a TicketMachine object on the object bench and take a look at its methods. You should see the following: getBalance, getPrice, insertMoney, and printTicket. Try out the getPrice method. You should see a return value containing the price of the tickets that was set when this object was created. Use the insertMoney method to simulate inserting an amount of money into the machine and then use getBalance to check that the machine has a record of the amount inserted.
You can insert several separate amounts of money into the machine, just like you might insert multiple coins or notes into a real machine. Try inserting the exact amount required for a ticket. As this is a simple machine, a ticket will not be issued automatically, so once you have inserted enough money, call the printTicket method. A facsimile ticket should be printed in the BlueJ terminal window.

Ejercicio 2,1
Crear un objeto TicketMachine en el objeto bancada y echar un vistazo En sus métodos. Debería ver lo siguiente: getBalance, getPrice, insertMoney, Y printTicket. Pruebe el método getPrice. Debe aparecer un valor de retorno que contiene El precio de los billetes que se estableció cuando este objeto se ha creado. Utilice el InsertMoney método para simular la inserción de una suma de dinero en la máquina y GetBalance utilizar para comprobar que la máquina tiene un registro de la cantidad inserta.
Puede insertar varios distintas cantidades de dinero en la máquina, al igual que lo puede Insertar múltiples monedas o notas en una verdadera máquina. Trate de insertar la cantidad exacta Necesario para un billete. Como se trata de una simple máquina, un billete no se publicarán automáticamente, Así que una vez que se han insertado suficiente dinero, llame a la printTicket método. A Facsímil billete deben imprimirse en la ventana de Terminal BlueJ.

Primero abrimos el proyecto better-ticket-Machine y precisamente tenia los métodos getBalance, getPrice, insertMoney, Y printTicket.
Creamos un objeto TicketMachine, después probamos los métodos que éste tenia:

Al llamar el método getPrice, nos apareció esta ventana en la cual aparece el precio de los tickets que se estableció cuando este objeto se creo:


Llamamos al metodo InsertMoney el cual sirve para simular la inserción de una suma de dinero en la máquina. Y el metodo GetBalance sirve para comprobar que la máquina tiene un registro de la cantidad insertada.
Así que una vez que se han insertado suficiente ticket, llamamos al metodo printTicket y nos aparecio la siguiente ventana.


  • Exercise 2.2

What value is returned if you check the machine’s balance after it
has printed a ticket?

Ejercicio 2,2 ¿Qué valor se devuelve si checas el balance de la maquina después que ha impreso un ticket? Pues nos devuelve el total que hemos insertado

  • Exercise 2.3

Experiment with inserting different amounts of money before printing
tickets. Do you notice anything strange about the machine’s behavior? What happens
if you insert too much money into the machine – do you receive any refund? What
happens if you do not insert enough and then try to print a ticket?

Ejercicio 2,3 Experimento con la inserción de diferentes cantidades de dinero antes de imprimir tickets. ¿Notado nada extraño en el comportamiento de la máquina? ¿Qué sucede Si inserta demasiado dinero en la máquina - ¿recibirá ningún reembolso? ¿Qué Sucede si no insertar suficiente y luego tratar de imprimir un billete?

Al insertar diferentes cantidades de dinero antes de imprimir no pasa nada, pero cuando se inserta una cantidad muy grande y después lo mandamos a imprimir, solo nos devuelve el valor maximo que nosotros le pusimos a la crearlo. Ejemplo, si le pusimos 100 y le insertamos 245, al mandar a imprimir solo nos devuelve lo siguiente:




si no insertamos suficiente dinero y queremos imprimir, nos muestra una mensaje que dice debemos de insertar la cantidad que falta. Por ejemplo si solo insertamos 89 en el ticket de 100 y le damos imprimir nos parece lo siguiente


  • Exercise 2.4

Try to obtain a good understanding of a ticket machine’s behavior by interacting with it on the object bench before we start looking at how the TicketMachine class is implemented in the next section.


Ejercicio 2,4 Trate de obtener un buen entendimiento de un ticket por el comportamiento de la máquina Interactuando con él sobre el objeto de banco antes de empezar a buscar la forma en que la clase TicketMachine se aplica en la siguiente sección.

  • Exercise 2.5

Create another ticket machine for tickets of a different price. Buy a ticket from that machine. Does the printed ticket look different?

Ejercicio 2,5 Crear otra máquina para tickets de un precio diferente. Compre un ticket de esa máquina. ¿El billete impreso un aspecto distinto?
No

  • Exercise 2.6

Write out what you think the outer wrappers of the Student and
LabClass classes might look like – do not worry about the inner part.


Ejercicio 2,6 Escriba lo que usted cree el exterior de las envolturas de Estudiantes y la clase LabClass podria ver como le guste - No se preocupe por la parte interior.


  • Exercise 2.7

Does it matter whether we write public class TicketMachine or class public TicketMachine in the outer wrapper of a class? Edit the source of the TicketMachine class to make the change and then close the editor window. Do you notice a change in the class diagram?
What error message do you get when you now press the Compile button? Do you think this message clearly explains what is wrong?

Ejercicio 2,7 Importa que escribimos : public class TicketMachine or class public TicketMachine En la envoltura exterior de una clase?
Modificar la fuente de la clase a la TicketMachine Hacer el cambio y, a continuación, cerrar la ventana del editor. ¿Usted nota un cambio en el Diagrama de la clase? ¿Qué mensaje de error que recibe cuando usted presione el botón Compilar? ¿Cree usted que Este mensaje explica claramente lo que está mal?

Al cambiar la fuente de la clase y cerrar el editor nos aparece de la siguiente manera:


y al dar compilar nos aparece in mensaje de error, el cual creo que no es suficientemente claro para detectar el error del codigo.


  • Exercise 2.8

Check whether or not it is possible to leave out the word public from the outer wrapper of the TicketMachine class.


Ejercicio 2,8 Compruebe si es o no posible dejar fuera la palabra public De la envoltura exterior de la clase TicketMachine .

Si es posible no escribir la palabra public al declarar la clase ya que por default lo toma como una clase publica y al compilarlo no marca ningun error

  • Exercise 2.9

From your earlier experimentation with the ticket machine objects within BlueJ you can probably remember the names of some of the methods – printTicket, for instance. Look at the class definition in Code 2.1 and use this knowledge, along with the additional information about ordering we have given you, to try to make a list of the names of the fields, constructors, and methods in the TicketMachine class. Hint: There is only one constructor in the class.



Ejercicio 2,9 De su anterior experimentación con objetos de la máquina de tickets Dentro de BlueJ probablemente pueda recordar los nombres de algunos de los métodos -- PrintTicket, por ejemplo. Vea la definición en el Código de la clase 2,1 y el uso de este Conocimientos, junto con información adicional sobre los pedidos que hemos dado, Para tratar de hacer una lista de los nombres de los campos, constructores, y los métodos en la clase TicketMachine. Sugerencia: Sólo hay un constructor de la clase.

DECLARACION DE LA CLASE
Public class TicketMachine
{
// The price of a ticket from this machine.
private int price;
// The amount of money entered by a customer so far.
private int balance;
// The total amount of money collected by this machine.
private int total;

COMENTARIO
/**
* Create a machine that issues tickets of the given price.
*/

CONSTRUCTOR
public TicketMachine(int ticketCost)
{
price = ticketCost; CAMPOS
balance = 0;
total = 0;
}
COMENTARIO
/**
* @Return The price of a ticket.
*/

METODO
public int getPrice()
{
return price;
}

METODO
public int getBalance()
{
return balance;
}

METODO
public void insertMoney(int amount)
{
if(amount > 0) {
balance = balance + amount;
}
else {
System.out.println("Use a positive amount: " +
amount);
}
}

METODO
public void printTicket()
{
if(balance >= price) {
// Simulate the printing of a ticket.
System.out.println("##################");
System.out.println("# The BlueJ Line");
System.out.println("# Ticket");
System.out.println("# " + price + " cents.");
System.out.println("##################");
System.out.println();

// Update the total collected with the price.
total = total + price;
// Reduce the balance by the prince.
balance = balance - price;
}
else {
System.out.println("You must insert at least: " +
(price - balance) + " more cents.");

}
}

METODO
public int refundBalance()
{
int amountToRefund;
amountToRefund = balance;
balance = 0;
return amountToRefund;
}
}



  • Exercise 2.10

Do you notice any features of the constructor that make it significantly different from the other methods of the class?
Ejercicio 2,10 ¿usted nota cualquiera de las características que hacen que sea constructor significativamente Diferente de los otros métodos de la clase?

SI, ya que el constructor tiene el mismo nombre que la clase.

No hay comentarios: