Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: jga en 11 de Septiembre 2014, 17:59
-
Hola , pues aqui como siempre practicando con java , presento mi ejercicio , para ver si esta correcto y puede servir como ejemplo .
Un abrazo y gracias!!.
// clase
public class Motor
{
private int tipo ;
private String fluido ;
private String combustible ;
// constructor
public Motor ()
{
int tipo = 0 ;
String fluido = "" ;
combustible = "" ;
}
// fin del constructor
// procedimientos para insercion de valores
public void setTipo (int valueTipo)
{
tipo = valueTipo ;
}
public void setFluido (String valueFluido)
{
fluido = valueFluido;
}
public void setCombustible ( String valueCombustible)
{
combustible = valueCombustible ;
}
public void tecleeTipoMotor (int tMotor)
{
switch (tMotor)
{
case 0 :
System.out.println ("No hay establecido un valor definido para el tipo de bomba") ;
break;
case 1:
System.out.println ("La bomba es una bomba de agua");
break;
case 2 :
System.out.println ("La bomba es una bomba de gasolina");
break;
case 3 :
System.out.println ("La bomba es una bomba de hormigón");
break;
case 4 :
System.out.println ("La bomba es una bomba de pasta alimenticia");
break;
default:
System.out.println ("No existe ese tipo de bomba en nuestra base de datos");
break;
}
}
//fin de procedimientos
//funciones para obtener los valores ajustados
public int getTipo ()
{
return tipo ;
}
public String getFluido ()
{
return fluido ;
}
public String getCombustible ()
{
return combustible ;
}
//fin de funciones
}
// cierre clase
-
Hola jga
Tu clase Motor está construida con todos sus elementos correctos excepto en un detalle
Tu método
public void tecleeTipoMotor (int tMotor)
Es válido, pero no es lo que se pedía en el ejercicio.
Tu método funciona así:
Con el método
public void setTipo (int valueTipo)
Decides que tipo de motor tienes, un número entero: 0, 1, 2, etc.
Cuando llamas al método
public void tecleeTipoMotor (int tMotor)
Te pide el tipo de motor que tienes. Tienes que recordar que tipo de motor le pusiste, o bien le das un tipo de motor distinto del que realmente tiene.
En el primer caso, nosotros trabajamos para el programa, cuando es el programa el que tiene que trabajar para nosotros.
La clase Motor tiene un atributo 'tipo' que guarda el valor del tipo de motor, es decir, la clase siempre sabe los valores de sus atributos, no hace falta que nosotros se lo recordemos.
En el segundo caso, puede darse el caso que el tipo de motor sea 2 y al invocar el método
public void tecleeTipoMotor (int tMotor)
Le dices que tMotor es 4. El método no funcionaria bien, te dará una respuesta incorrecta para el tipo de motor que tienes.
Lo correcto es que el método 'tecleeTipoMotor' no tenga ningún parámetro, pero tenga en cuenta el valor del atributo 'tipo' para dar su respuesta.
Llegados a este punto tu clase no tendría que llamarse 'tecleeTipoMotor' pues daría lugar a engaño.
El nombre propuesto en el ejercicio 'dimeTipoMotor()' es idóneo.
Si hay algo que no entiendes, aquí estamos para ayudar.
Saludos.
-
Hola y ante todo gracias Tony . Entonces lo que quieres decirme es que ¿ el método esta bien planteado pero el nombre es incorrecto ? y me surge otra duda y no se si la expresaré bien , el método dimeTipoMotor() ¿sirve para indicar el tipo de motor que corresponde al dígito que introduzcamos en cualquier objeto de la clase , o sea , yo obtengo el tipo de motor de un objeto y me devuelve un valor , sea 1 y el método esta para introduciendo ese valor , decirme que tipo de motor es en base a ello invocándolo y introduciendo ese valor ?
perdona las dudas , se que soy un poco torpe , y muchas gracias y un abrazo.
-
Hola jga
No, el método dimeTipoMotor(), hace lo que dice el nombre, decirme de que tipo es el motor.
Supón que tu tienes un amigo que esta al lado de un coche, y tu le dices.
Dime de que tipo es el motor.
Y el mira dentro del coche, y te dice el motor es de tipo... lo que sea.
Te pongo un enlace para que lo veas
https://www.aprenderaprogramar.com/foros/index.php?topic=1206.msg6646#msg6646 (https://www.aprenderaprogramar.com/foros/index.php?topic=1206.msg6646#msg6646)
Saludos