Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] Manejar constantes static final

Estas en el tema de Manejar constantes static final en el foro de Java en Foros del Web. tengo el siguiente ejercicio para resolver: Agregaremos ahora a la clase alumno el siguiente atributo: private Character tipoAlumno; En conjunto con propiedades para obtener y ...
  #1 (permalink)  
Antiguo 09/06/2015, 06:22
Avatar de giuli956  
Fecha de Ingreso: noviembre-2012
Mensajes: 149
Antigüedad: 12 años
Puntos: 1
Manejar constantes static final

tengo el siguiente ejercicio para resolver:

Agregaremos ahora a la clase alumno el siguiente atributo:
private Character tipoAlumno;
En conjunto con propiedades para obtener y establecer dicho valor, este atributo puede tener sólo
los siguientes valores:
Alumno regular: valor 'R'. Este alumno puede inscribirse a cursos y en éste caso ocupa un cupo en
el mismo.
Alumno invitado: valor 'I'. En este caso éste alumno puede inscribirse a los cursos, pero debido a
que es invitado de la casa, no incrementa el cupo o cantidad de alumnos dentro del curso.
Alumno libre: valor 'L'. Este alumno no puede inscribirse a cursos o asignaturas.
Para orden del código es recomendable definir este tipo de atributos como constantes para poder
utilizarlas.
A continuación agregue a la interface Administrable el siguiente método:
boolean agregarAlumno(Alumno alumno);
El objetivo de éste método es que las entidades administrables en nuestro sistema puedan agregar
alumnos. Luego de ésto deberá implementar dicho método en la clase Curso, para ésto deberá
agregar o no el alumno dependiendo de su tipo, según lo explicado anteriormente.

Entonces hice:

Código Java:
Ver original
  1. public class Alumno extends Persona {
  2.     private long nroLegajo;
  3.     private Date fechaIngreso;
  4.     private Character tipoAlumno;
  5.     static final Character regular='R';
  6.     static final Character invitado='I';
  7.     static final Character libre='L';

Y el constructor:

Código Java:
Ver original
  1. public Alumno(String NombreP, String ApellidoP, String tipoDocP,
  2.             Date fechaNacP, Long numDocP,long nroLegajo, Date fechaIngreso,Character tipoAlumno) {
  3.         super(NombreP, ApellidoP, tipoDocP, fechaNacP, numDocP);
  4.    
  5.         this.nroLegajo = nroLegajo;
  6.         this.fechaIngreso = fechaIngreso;
  7.         this.tipoAlumno = tipoAlumno;
  8.     }

Ahora como hago para crear un alumno (esto en la clase principal) asignando a tipoAlumno una de las constantes:

Código Java:
Ver original
  1. A1=new Alumno("Giuliano","Caruso","DNI",new Date(12/02/1991),(long) 35716117, (long)3265, new Date(12/02/1999),'I');
  2.         A2=new Alumno("juan","perez","DNI",new Date(13/03/1992),(long)35629896,(long)32659,new Date(19/04/2013),'R');
  3.         A3=new Alumno("pedro","thompson","DNI",new Date(14/04/1990),(long)3265986,(long)3269,new Date(13/06/1998),'L');

Ahi les pase un char pero la idea no seria pasar la constante?
Saludos
  #2 (permalink)  
Antiguo 09/06/2015, 06:41
Avatar de Profesor_Falken  
Fecha de Ingreso: agosto-2014
Ubicación: Mountain View
Mensajes: 1.323
Antigüedad: 10 años, 3 meses
Puntos: 182
Respuesta: Manejar constantes static final

Buenas,

Efectivamente deberias usar las constantes. Solo tienes que definirlas asi (ojo a la convencion de nomenclatura)

Código Java:
Ver original
  1. public class Alumno extends Persona
  2.     public static final Character REGULAR='R';
  3.     public static final Character INVITADO='I';
  4.     public static final Character LIBRO='L';
  5.     private long nroLegajo;
  6.     private Date fechaIngreso;
  7.     private Character tipoAlumno;

Y posteriormente:
Código Java:
Ver original
  1. A1=new Alumno("Giuliano","Caruso","DNI",new Date(12/02/1991),(long) 35716117, (long)3265, new Date(12/02/1999),Alumno.INVITADO);
  2.         A2=new Alumno("juan","perez","DNI",new Date(13/03/1992),(long)35629896,(long)32659,new Date(19/04/2013),Alumno.REGULAR);
  3.         A3=new Alumno("pedro","thompson","DNI",new Date(14/04/1990),(long)3265986,(long)3269,new Date(13/06/1998),Alumno.LIBRO);

En cualquier caso tu profesor parece un poco desactualizado, ya que exige un uso de las constantes tal y como se utilizaba en Java 1.4.
Actuamente para este tipo de cosas se utilizan las enums. Por ejemplo:

Código Java:
Ver original
  1. public enum TipoAlumno {
  2.     REGULAR, INVITADO, LIBRO;
  3. }

Despues en la clase:
Código Java:
Ver original
  1. public class Alumno extends Persona
  2.     private long nroLegajo;
  3.     private Date fechaIngreso;
  4.     private TipoAlumno tipoAlumno;

En el constructor:
Código Java:
Ver original
  1. public Alumno(String NombreP, String ApellidoP, String tipoDocP,
  2.             Date fechaNacP, Long numDocP,long nroLegajo, Date fechaIngreso,TipoAlumno tipoAlumno) {

Y en la llamada:
Código Java:
Ver original
  1. A1=new Alumno("Giuliano","Caruso","DNI",new Date(12/02/1991),(long) 35716117, (long)3265, new Date(12/02/1999),TipoAlumno .INVITADO);
  2.         A2=new Alumno("juan","perez","DNI",new Date(13/03/1992),(long)35629896,(long)32659,new Date(19/04/2013),TipoAlumno .REGULAR);
  3.         A3=new Alumno("pedro","thompson","DNI",new Date(14/04/1990),(long)3265986,(long)3269,new Date(13/06/1998),TipoAlumno .LIBRO);

Un saludo
__________________
If to err is human, then programmers are the most human of us

Etiquetas: clase, constantes, final, manejar, static, string, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:21.