Вы находитесь на странице: 1из 11

UNIVERSIDAD DE EL SALVADOR

FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE


DEPARTAMENTO DE INGENIERA Y ARQUITECTURA
PROGRAMACIN II
DOCENTE: ING. ROBERTO COLN
INSTRUCTOR: BR. KEVIN MANUEL OSORIO

GUA 1
Objetivo:
- Aplicar conceptos bsicos de Programacin Orientada a Objetos
Ejercicio
Se desea colocar 4 notas de un alumno en especfico, y conocer el promedio de esas
notas. Luego de ingresar todas las notas se debe poder consultar una sola nota que el
usuario desee, adems se pueda consultar todas las notas en un solo mensaje. Por
ltimo se debe poder reestablecer las notas. Debe haber un men de opciones.

Solucin
Se crea un proyecto nuevo, luego una nueva clase la que se llamar Nota. Las clases,
por convencin, su nombre debe iniciar con inicial mayscula.

Iniciamos con la creacin de variables, a las que les colocaremos los modificadores de
acceso private para que solo puedan ser accedidas desde la misma clase y sern de
tipo double.

Estas sern accedidas desde los mtodos dentro de la clase Nota. Se crean los
mtodos getter y seller respectivos, Netbeans tiene esa opcin solo se debe seleccionar
la lnea luego con clic derecho nos vamos a lo siguiente:

Chequeamos todas las opciones y cliqueamos Refactor.

Se puede ver como se crean stos mtodos.


Ahora creamos los constructores, stos se crean pblicos y no deben devolver ningn
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 implcito no
recibe valores:

El constructor explcito recibe los valores de las notas para asignar a los atributos, ste
sirve para asignar valores a las notas desde la creacin del objeto. Puede haber varios
constructores en una clase.

Los parmetros que recibe el constructor son los que estn dentro de los parntesis.
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 mtodo,
en este caso es un constructor. En nota3=not3 no fue necesario usar el this pues las
variables se llaman de distinto manera, aunque podra ser sustituida esa lnea por un
this.nota3=not3, no hay diferencia.
Ahora vamos con la creacin de mtodos. stos usualmente son nombre de acciones,
por convencin deben iniciar con minscula y si hay ms de una palabra, cada palabra
despus de la primera inician con mayscula. Los mtodos pueden retornar valores o
no hacerlo, depende de la necesitad. Un void significa que no retorna ningn valor.

El double en el mtodo 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 mtodo realice sus clculos, 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 mtodo promediar() y est
guardando el valor de la variable promedio multiplicada por el porcentaje a pesar que
en el mtodo haya un clculo que hacer.

Ahora se crea el mtodo para consultar una nota especfica y que se muestre en
pantalla, ste mtodo recibe el parmetro 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 mtodo que llenar las 4 notas segn las ingrese el usuario:

Como la clase Operaciones hereda de Nota se puede acceder a los mtodos pblicos
setter que se tienen en la clase Nota, ocupamos esos mtodos mandando el parmetro
ya convertido a double y al final llamamos al mtodo 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 aplicacin. Aqu es donde se mandan a
llamar los mtodos correspondientes a cada accin pedida por el usuario. Este men
se llama a si mismo despus de realizar una cualquier accin con el fin de volver al
men principal siempre.

Se crea el mtodo para mostrar todas las notas guardadas que accede a los mtodos
get de la clase padre:

Ahora se hace el mtodo que pregunta qu nota quiere consultar el usuario:

Este mtodo 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 cdigo

Se va a crear el objeto de la clase operaciones, para efecto de explicacin se llamar


objeto aunque puede tener el nombre que se crea conveniente. El objeto (igual como
se definira una variable String) debe definirse que sea de la clase Operaciones.

Puede observarse como el objeto se inicializa con el constructor implcito:

En un caso distinto bien pudisemos crear el objeto asignndole las notas iniciales y
quedara as:
Operaciones objeto=new Operaciones(6.0, 7.4, 2.3, 9.0);
Con esa lnea inicializamos los atributos nota1, nota2, nota3, nota4 del objeto con los
valores 6.0, 7.4, 2.3 y 9.0 respectivamente y se evitara pedir que el usuario ingrese las
notas desde un inicio, pero claro que en nuestro caso no sera conveniente.
Para iniciar ya de lleno con la aplicacin se manda a llamar el mtodo agregarNotas()
que ya se ha descrito.
Cabe mencionar que cuando tecleamos el punto (.) despus del objeto podemos ver
los mtodos y atributos que contiene:

Propuesta
-

Crear una opcin para que se pueda cambiar una sola nota y no se tenga
que reestablecer todas al mismo tiempo.
Crear un mtodo que determine si el alumno tiene un promedio mayor a 6 y
que apruebe la materia.

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,
break;
case 2:
JOptionPane.showMessageDialog(null,
break;
case 3:
JOptionPane.showMessageDialog(null,
break;
case 4:
JOptionPane.showMessageDialog(null,
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() {

"Nota 1: " + getNota1());


"Nota 2: " + getNota2());
"Nota 3: " + getNota3());

"Nota 4: " + getNota4());

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);
}
}

Вам также может понравиться