11
UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE DEPARTAMENTO DE INGENIERÍA Y ARQUITECTURA PROGRAMACIÓN II DOCENTE: ING. ROBERTO COLÓN INSTRUCTOR: BR. KEVIN MANUEL OSORIO GUÍA 1 Objetivo: - Aplicar conceptos básicos de Programación Orientada a Objetos Ejercicio Se desea colocar 4 notas de un alumno en específico, y conocer el promedio de esas notas. Luego de ingresar todas las notas se debe poder consultar una sola nota que el usuario desee, además se pueda consultar todas las notas en un solo mensaje. Por último se debe poder reestablecer las notas. Debe haber un menú de opciones. Solución Se crea un proyecto nuevo, luego una nueva clase la que se llamará Nota. Las clases, por convención, su nombre debe iniciar con inicial mayúscula.

Programación en java POO básico, guía

Embed Size (px)

DESCRIPTION

Aplicar conceptos básicos de Programación Orientada a Objetos

Citation preview

Page 1: Programación en java POO básico, guía

UNIVERSIDAD DE EL SALVADOR

FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE

DEPARTAMENTO DE INGENIERÍA Y ARQUITECTURA

PROGRAMACIÓN II

DOCENTE: ING. ROBERTO COLÓN

INSTRUCTOR: BR. KEVIN MANUEL OSORIO

GUÍA 1

Objetivo:

- Aplicar conceptos básicos de Programación Orientada a Objetos

Ejercicio

Se desea colocar 4 notas de un alumno en específico, y conocer el promedio de esas

notas. Luego de ingresar todas las notas se debe poder consultar una sola nota que el

usuario desee, además se pueda consultar todas las notas en un solo mensaje. Por

último se debe poder reestablecer las notas. Debe haber un menú de opciones.

Solución

Se crea un proyecto nuevo, luego una nueva clase la que se llamará Nota. Las clases,

por convención, su nombre debe iniciar con inicial mayúscula.

Page 2: Programación en java POO básico, guía

Iniciamos con la creación de variables, a las que les colocaremos los modificadores de

acceso private para que solo puedan ser accedidas desde la misma clase y serán de

tipo double.

Estas serán accedidas desde los métodos dentro de la clase Nota. Se crean los

métodos getter y seller respectivos, Netbeans tiene esa opción solo se debe seleccionar

la línea luego con clic derecho nos vamos a lo siguiente:

Page 3: Programación en java POO básico, guía

Chequeamos todas las opciones y cliqueamos Refactor.

Se puede ver como se crean éstos métodos.

Ahora creamos los constructores, éstos se crean públicos y no deben devolver ningún

valor, tienen el mismo nombre que la clase a la que pertenece. El constructor es usado

para inicializar atributos del objeto con valores por defecto. El constructor implícito no

recibe valores:

El constructor explícito recibe los valores de las notas para asignar a los atributos, éste

sirve para asignar valores a las notas desde la creación del objeto. Puede haber varios

constructores en una clase.

Page 4: Programación en java POO básico, guía

Los parámetros que recibe el constructor son los que están dentro de los paréntesis.

La palabra reservada this se usa para hacer referencia a las variables que se declararon

al principio de la clase. Se usa este ejemplo para ver que aunque tengan el mismo

nombre, son distintas referencias, el this.nota3 es la variable global nota3 que puede

ser usada en toda la case, en cambio not3 solo puede ser accedida dentro del método,

en este caso es un constructor. En nota3=not3 no fue necesario usar el this pues las

variables se llaman de distinto manera, aunque podría ser sustituida esa línea por un

this.nota3=not3, no hay diferencia.

Ahora vamos con la creación de métodos. Éstos usualmente son nombre de acciones,

por convención deben iniciar con minúscula y si hay más de una palabra, cada palabra

después de la primera inician con mayúscula. Los métodos pueden retornar valores o

no hacerlo, depende de la necesitad. Un void significa que no retorna ningún valor.

El double en el método promediar significa que debe retornar un valor de ese tipo, y

this.promedio resuelve ese caso, que es lo que se necesita. ¿Por qué devolver un valor?

A veces no solo es necesario que el método realice sus cálculos, sino que se necesita

saber el resultado de esas acciones sin necesidad de acceder a ese valor de otra forma.

Ejemplo: si el promedio de esas notas valiera el 50% de la materia, se puede hacer

esto desde la clase

private double promedioConPorcentaje=promediar()*0.5;

Esa variable promedioConPorcentaje está llamando al método promediar() y está

guardando el valor de la variable promedio multiplicada por el porcentaje a pesar que

en el método haya un cálculo que hacer.

Page 5: Programación en java POO básico, guía

Ahora se crea el método para consultar una nota específica y que se muestre en

pantalla, éste método recibe el parámetro que indica que nota se quiere consultar:

Creamos una nueva clase que se llame Operaciones que va a heredar de la clase Nota,

esto se hace colocando la palabra extends luego de creada la clase.

Esta clase tiene un método que llenará las 4 notas según las ingrese el usuario:

Page 6: Programación en java POO básico, guía

Como la clase Operaciones hereda de Nota se puede acceder a los métodos públicos

setter que se tienen en la clase Nota, ocupamos esos métodos mandando el parámetro

ya convertido a double y al final llamamos al método verMenu() que es el menú

principal con el que se puede ver una sola nota, ver todas las notas, ver el promedio,

reasignar las notas y por último salir de la aplicación. Aquí es donde se mandan a

llamar los métodos correspondientes a cada acción pedida por el usuario. Este menú

se llama a si mismo después de realizar una cualquier acción con el fin de volver al

menú principal siempre.

Se crea el método para mostrar todas las notas guardadas que accede a los métodos

get de la clase padre:

Page 7: Programación en java POO básico, guía

Ahora se hace el método que pregunta qué nota quiere consultar el usuario:

Este método manda a llamar a conocerNota(int numeroDeNota) de la clase padre que

muestra en pantalla la nota requerida.

Para ir finalizando se debe abrir la clase donde está el main para escribir en su código

Se va a crear el objeto de la clase operaciones, para efecto de explicación se llamará

“objeto” aunque puede tener el nombre que se crea conveniente. El objeto (igual como

se definiría una variable String) debe definirse que sea de la clase Operaciones.

Page 8: Programación en java POO básico, guía

Puede observarse como el objeto se inicializa con el constructor implícito:

En un caso distinto bien pudiésemos crear el objeto asignándole las notas iniciales y

quedaría así:

Operaciones objeto=new Operaciones(6.0, 7.4, 2.3, 9.0);

Con esa línea inicializamos los atributos nota1, nota2, nota3, nota4 del objeto con los

valores 6.0, 7.4, 2.3 y 9.0 respectivamente y se evitaría pedir que el usuario ingrese las

notas desde un inicio, pero claro que en nuestro caso no sería conveniente.

Para iniciar ya de lleno con la aplicación se manda a llamar el método agregarNotas()

que ya se ha descrito.

Cabe mencionar que cuando tecleamos el punto (.) después del objeto podemos ver

los métodos y atributos que contiene:

Page 9: Programación en java POO básico, guía

Propuesta

- Crear una opción para que se pueda cambiar una sola nota y no se tenga

que reestablecer todas al mismo tiempo.

- Crear un método que determine si el alumno tiene un promedio mayor a 6 y

que apruebe la materia.

Page 10: Programación en java POO básico, guía

CLASES

public class Nota{ private double promedio, nota1, nota2, nota3, nota4; public Nota() { this.promedio=0; this.nota1=0; this.nota2=0; this.nota3=0; this.nota4=0; } public Nota(double nota1, double nota2, double not3, double not4) { this.nota1=nota1; this.nota2=nota2; nota3=not3; nota4=not4; } public double promediar(){ promedio = (nota1+nota2+nota3+nota4)/4; return this.promedio; } public void conocerNota(int numeroDeNota) { switch (numeroDeNota){ case 1: JOptionPane.showMessageDialog(null, "Nota 1: " + getNota1()); break; case 2: JOptionPane.showMessageDialog(null, "Nota 2: " + getNota2()); break; case 3: JOptionPane.showMessageDialog(null, "Nota 3: " + getNota3()); break; case 4: JOptionPane.showMessageDialog(null, "Nota 4: " + getNota4()); break; } } public double getPromedio() { return promedio; } public void setPromedio(double promedio) { this.promedio = promedio; } public double getNota1() { return nota1; } public void setNota1(double nota1) { this.nota1 = nota1; } public double getNota2() { return nota2; } public void setNota2(double nota2) { this.nota2 = nota2; } public double getNota3() {

Page 11: Programación en java POO básico, guía

return nota3; } public void setNota3(double nota3) { this.nota3 = nota3; } public double getNota4() { return nota4; } public void setNota4(double nota4) { this.nota4 = nota4; } } public class Operaciones extends Nota{ public void agregarNotas() { JOptionPane.showMessageDialog(null, "BIENVENIDO :D \n \n Por favor ingrese las notas"); setNota1(Double.parseDouble(JOptionPane.showInputDialog(null,"Ingrese nota 1: "))); setNota2(Double.parseDouble(JOptionPane.showInputDialog(null,"Ingrese nota 2: "))); setNota3(Double.parseDouble(JOptionPane.showInputDialog(null,"Ingrese nota 3: "))); setNota4(Double.parseDouble(JOptionPane.showInputDialog(null,"Ingrese nota 4: "))); verMenu(); } public void verNotas() { String cadenaNotas = "\n Nota 1: "+ getNota1()+"\n Nota 2: "+ getNota2()+"\n Nota 3: "+ getNota3()+ "\n Nota 4: "+ getNota4(); JOptionPane.showMessageDialog(null, cadenaNotas); } public void verMenu(){ int opcion= Integer.parseInt(JOptionPane.showInputDialog(null, "MENU::::::::::::::"+ "\n 1-Ver una nota \n 2-Ver todas las notas \n 3-Ver promedio \n 4-Asignar Notas" + "\n \n \n 5-Salir")); switch (opcion){ case 1: preguntarQueNotaQuiere(); break; case 2: verNotas(); break; case 3: JOptionPane.showMessageDialog(null, "El promedio es: "+ promediar()); break; case 4: agregarNotas(); break; case 5: System.exit(0); } verMenu(); } public void preguntarQueNotaQuiere(){ int opcion=Integer.parseInt(JOptionPane.showInputDialog(null, "¿Qué nota desea conocer?" + "\n 1-Primera \n 2-Segunda \n 3-Tercera \n 4-Cuarta")); conocerNota(opcion); } }