Guía de Laboratorio #3 V2
Guía de Laboratorio #3 V2
Guía de Laboratorio #3 V2
OBJETIVOS
• Usar la palabra clave this en un constructor para llamar a otro constructor en la misma clase.
• Utilizar el tipo enum para crear conjuntos de constantes con identificadores únicos.
• Usar BigDecimal para los cálculos monetarios precisos.
• Crear un submenú en el entorno grafico de Netbeans, al cual se pueda acceder desde un
menú principal con un botón.
CONCEPTOS DE JAVA
Un constructor es un método especial de una clase que se invoca siempre que se crea un objeto
de esa clase.
Página 1 de9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA
CÁTEDRA DE PROGRAMACIÓN
1. package constructores;
2. public class Constructores {
3. public Constructores () {
4. System.out.println("Este es el mensaje dentro del constructor");
5. }
6. public static void main(String [] args){
7. Constructores ejemplo = new Constructores(); 8.
}
9. //después de new, es donde se invoca al método
10. //constructores y por esa razón se imprime en pantalla el mensaje
11. }
Se pueden crear más constructores con el mismo nombre y pasarle argumentos como cualquier
método.
1. package constructores2;
2. public class Constructores2 {
3. public Constructores2 (){
4. System.out.println("Este es el mensaje dentro del constructor");
5. }
6. public Constructores2 (int a, int b){ int suma = a + b;
7. System.out.println("La suma es: " + suma); 8.
}
9. public static void main(String [] args){
10. Constructores2 ejemplo = new Constructores2();
11. Constructores2 ejemplo1 = new Constructores2(5, 10);
12. }
13. }
CONSTRUCTORES SOBRECARGADOS
Los constructores sobrecargados son aquellos que tienen el mismo nombre, pero se accede a
cada uno de ellos de diferente manera, es decir que la forma en que se diferencia es a través de
los parámetros. Entonces, la sobrecarga de métodos es la creación de varios métodos con el
Página 2 de9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA
CÁTEDRA DE PROGRAMACIÓN
La forma en que Java sabe que método sobrecargado ejecutará, es por el número y tipo de
parámetros que se le envía.
1. package sobrecargados;
2. public class Sobrecargados {
3. public void sumar(){
4. System.out.println("Este método NO recibe parámetros");
5. }
6. public void sumar(int x, int y){
7. System.out.println("Este método recibe dos números enteros"); 8.
}
9. public void sumar(int x){
10. System.out.println("Este método recibe un número entero");
11. }
12. public void sumar(double x){
13. System.out.println("Este método recibe un número decimal");
14. }
15. public static void main(String [] args){
16. Sobrecargados obj1 = new Sobrecargados();
17. obj1.sumar();
18. obj1.sumar(4, 6);
19. obj1.sumar(3);
20. obj1.sumar(4.5);
21. }
22. }
Página 3 de9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA
CÁTEDRA DE PROGRAMACIÓN
La palabra clave this puede ser usada para invocar a un constructor. Sin embargo, su uso quizás
más frecuente en Java tiene lugar en otro contexto: cuando existe sobrecarga de nombres. La
sobrecarga de nombres se da cuando tenemos una variable local de un método o constructor, o un
parámetro formal de un método o constructor, con un nombre idéntico al de un campo de la clase.
Primero se debe abrir un proyecto con el nombre RectanguloMain y allí se debe colocar el
siguiente código.
1. package rectangulomain;
2. import java.util.Scanner;
3. public class RectanguloMain {
4. public static void main(String[] args){
5. Scanner entrada = new Scanner(System.in);
6. System.out.print("Dame el valor de la base");
7. int base = entrada.nextInt();
8. System.out.print("Dame el valor de la altura");
9. int altura = entrada.nextInt();
10. Rectangulo mensajero = new Rectangulo(base,altura);
11. mensajero.Imprimir();
12. }
13. }
Se debe colocar en el mismo proyecto una clase con el nombre Rectángulo y colocar el siguiente código.
1. package rectangulomain;
2. public class Rectangulo{
3. private int base, altura, area;
4. public Rectangulo(int base, int altura){
5. this.base=base;
6. this.altura=altura;
7. }
8. public void CalculoArea(){
9. area=base*altura;
10. }
11. public void Imprimir (){
12. CalculoArea();
13. System.out.println("El area es: "+area);
14. }
15. }
Página 4 de9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA
CÁTEDRA DE PROGRAMACIÓN
TIPOS ENUM
Un tipo enum en Java es un tipo “especial” que en cierta medida puede usarse como una clase y admite
ciertas posibilidades especiales.
Un tipo enum se declara con una declaración enum , la cual es una lista separada por comas de
constantes enum.
Cada declaración enum declara a una clase enum con las siguientes restricciones:
1. Las constantes enum son implícitamente final.
2. Las constantes enum son implícitamente static.
3. Cualquier intento por crear un objeto de un tipo enum con el operador new produce un
error de compilación.
Primero se debe abrir un proyecto con el nombre Libro y allí se debe colocar el siguiente código.
1. package libro;
2. public enum Libro{
3. JHTP("Java How to Program", "2015"), CHTP("C How to
Program", "2013"),IW3HTP("Internet & World Wide Web How to
Program", "2012"), CPPHTP("C++ How to Program", "2014"),VBHTP("Visual
Basic How to Program", "2014"), CSHARPHTP("Visual C# How to
Program", "2014");
4. private final String title;
5. private final String copyrightYear;
6. Libro(String title, String copyrightYear){
7. this.title = title;
8. this.copyrightYear = copyrightYear; 9.
}
10. public String getTitle(){
11. return title;
12. }
13. public String getCopyrightYear(){
14. return copyrightYear;
15. }
16. }
Se debe colocar en el mismo proyecto una clase con el nombre PruebaEnum y colocar el siguiente
código
1. package libro;
2. import java.util.EnumSet;
3. public class PruebaEnum{
4. public static void main(String[] args){
5. System.out.println("Todos los libros:");
6. for (Libro libro : Libro.values())
7. System.out.printf("%-10s%-45s%s%n", libro, libro.getTitle(),
libro.getCopyrightYear());
8. System.out.printf("%nMostrar un rango de constantes enum:%n");
9. for (Libro libro : EnumSet.range(Libro.JHTP, Libro.CPPHTP))
Página 5 de9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA
CÁTEDRA DE PROGRAMACIÓN
1. package financiero;
2. import java.math.BigDecimal;
3. import java.text.NumberFormat;
4. public class Interes{
5. public static void main(String args[]) {
6. BigDecimal principal = BigDecimal.valueOf(1000.0);
7. BigDecimal tasa = BigDecimal.valueOf(0.05);
8. System.out.printf("%5s%25s%n", "Año", "Monto en deposito");
9. for (int año = 1; año <= 10; ++año){
10. BigDecimal
monto = principal.multiply(tasa.add(BigDecimal.ONE).pow(año));
11.
System.out.printf("%4d%20s%n", año, NumberFormat.getCurrencyInsta
nce().format(monto));
12. NumberFormat.getCurrencyInstance().format(monto);
13. }
14. }
15. }
Página 6 de9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA
CÁTEDRA DE PROGRAMACIÓN
EJEMPLO N°7
Realizar una aplicación que al mover un slider, muestre el número correspondiente entre 0 y 100
como se muestra en las siguientes figuras.
Se debe colocar un slider y una etiqueta, en la interfaz gráfica. El nombre de variable de la etiqueta será
Label y el del Slider será num.
Página 7 de 9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA
CÁTEDRA DE PROGRAMACIÓN
EJERCICIOS EVALUADOS
EJERCICIO N°1
Modifique el ejemplo 4 y utilizando métodos constructores y la palabra this, calcule el área y el
perímetro de un circulo:
EJERCICIO N°2
Utilice el siguiente código y haga los cambios necesarios para que imprima el nombre de una universidad
salvadoreña, así como el nombre completo del estudiante y la carrera que está cursando.
1. package libro;
2. public enum Libro{
3. JHTP("Java How to Program", "2015"),CHTP("C How to
Program", "2013"),IW3HTP("Internet & World Wide Web How to
Program", "2012"),CPPHTP("C++ How to Program", "2014"),VBHTP("Visual Basic How
to Program", "2014"),CSHARPHTP("Visual C# How to Program", "2014");
4. private final String title;
5. private final String copyrightYear;
6. Libro(String title, String copyrightYear){
7. this.title = title;
8. this.copyrightYear = copyrightYear;
9. }
10. public String getTitle(){
11. return title;
12. }
13. public String getCopyrightYear(){
14. return copyrightYear;
15. }
16. }
17. package libro;
18. import java.util.EnumSet;
19. public class PruebaEnum{
20. public static void main(String[] args){
21. System.out.println("Todos los libros:");
22. for (Libro libro : Libro.values())
23. System.out.printf("%-10s%-
45s%s%n", libro, libro.getTitle(), libro.getCopyrightYear());
24. System.out.printf("%nMostrar un rango de constantes enum:%n");
25. for (Libro libro : EnumSet.range(Libro.JHTP, Libro.CPPHTP))
26. System.out.printf("%-10s%-
45s%s%n", libro, libro.getTitle(), libro.getCopyrightYear());
27. }
28. }
Página 8 de 9
UNIVERSIDAD DE EL SALVADOR
FACULTAD DE CIENCIAS NATURALES Y MATEMÁTICA
CÁTEDRA DE PROGRAMACIÓN
EJERCICIO N°3
Realice un menú con un texto que diga “Buen dia” y un botón que lo lleve a una
segunda pestaña (como el que se realizó en el siguiente video)
https://youtu.be/3OuCRpGMScc en la cual esté replicado el contenido de la variación de
colores con Sliders (tal como se realizó en el siguiente video)
https://youtu.be/WvF9uTfpubM
En la pestaña de los Sliders debe colocar un texto que diga “Variación de colores” y un
botón para regresar al menú principal.
Página 9 de 9