Clase

Clase El elemento básico de la programación orientada a objetos en Java es la clase. Una clase define la forma y comport

Views 134 Downloads 5 File size 493KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Clase El elemento básico de la programación orientada a objetos en Java es la clase. Una clase define la forma y comportamiento de un objeto.

classNombre_De_Clase{ //Atributos tipo_de_variablenombre_de_atributo1; tipo_de_variable nombre_de_atributo2; // Método tipo_devuelto nombre_de_método1(lista_de_parámetros ) { cuerpo_del_método1; }

Métodos

Los métodos realizan procesos, puedes realizar cualquier operación con ellos, sin embargo el propósito es manipular variables existentes. El segundo tipo de métodos son los que realizan un proceso o cálculo, y calculan una variable específica. Un ejemplo podría ser un método para obtener el valor de una suma. calcularPromedio( int nota1, int nota2, int nota3) { double promedio = (nota1 + nota2 + nota3)/3; return promedio

}

Atributos

Los datos se encapsulan dentro de una clase declarando variables dentro de las llaves de apertura y cierre de la declaración de la clase, variables que se conocen como atributos. Se declaran igual que las variables locales de un método en concreto. Ejemplo1 Este es un programa que declara una clase MiPunto, con dos atributos enteros llamados x e y. class MiPunto { //Atributos int x, y;

}

Esta etiqueta es un objeto. A través de los métodos se puede cambiar el tamaño y posición de la etiqueta usando el método setBounds: etiTexto.setBounds(10, 20, 100,20);

Objeto

Un objeto se define como un elemento que tiene unas propiedades y métodos. Un objeto posee unas características (ancho, alto, color, etc…) A las características de un objeto se les llama propiedades.

También podríamos usar el conocido método getText para recoger el texto que contenga la etiqueta y almacenarlo en una variable: String texto; texto = etiTexto.getText(); Ordenar a la etiqueta etiTexto que se vuelva a pintar en la ventana usando el método repaint: etiTexto.repaint();

Herencia El concepto de Herencia consiste en crear una nueva Clase a partir de otra. La nueva Clase es una mejora de la anterior. O dicho de otra manera, es una especialización de la primera Clase.

Concretamente, la Herencia consiste en tomar una Clase inicial, y, a partir de ella, crear otra Clase que posee las mismas propiedades y métodos que la Clase inicial, además de unas nuevas propiedades y métodos que la Clase inicial no poseía. La nueva Clase creada puede incluso redefinir métodos de la Clase inicial.

CLASE BASE Herencia

CLASE DERIVADA

Ejercicio Multicines Este código se va poner en la clase que hemos creado que se llama

SalaCine.Java /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package paqueteprincipal; /** * * @author Luisa */ public class SalaCine { //propiedades int Aforo; int Ocupadas; String Pelicula; double Entrada; /** creates a new instance of SalaCine */ //Constructor public SalaCine(){ Aforo = 100; Ocupadas = 0; Pelicula = ""; Entrada = 5.0; } //Métodos set //Método setAforo public void setAforo(int afo) { Aforo = afo; } //Método setOcupadas public void setOcupadas(int ocu) { Ocupadas = ocu; } //Método setPelicula public void setPelicula(String peli) { Pelicula = peli; }

//Método setEntrada public void setEntrada(double entra) { Entrada = entra; } //Método setLibres public void setLibres(int lib) { int ocu; ocu = Aforo - lib; Ocupadas = ocu; } //Métodos get //Método getAforo public int getAforo() { return Aforo; } //Método getOcupadas public int getOcupadas() { return Ocupadas; } //Método getPelicula public String getPelicula() { return Pelicula; } //Método getEntrada public double getEntrada() { return Entrada; } //Método getLibres public int getLibres() { int lib; lib= Aforo - Ocupadas; return lib; } //Método getPorcentaje public double getPorcentaje() { double por; por = (double) Ocupadas / (double) Aforo * 100.0; return por; }

//Método getIngresos public double getIngresos() { double ingre; ingre = Ocupadas * Entrada; return ingre; } //Métodos de orden //Método Vaciar public void Vaciar() { Ocupadas = 0; Pelicula = ""; } //Método entraUno public void entraUno() { Ocupadas++; } }

Diseñar la ventana principal de forma que quede parecida a la siguiente. Usa la ventana de diseño para hacer el diseño del formulario. Los nombres de los componentes se indican a continuación. Botones: btnCentralNueva btnCentralOcupacion btnCentralVaciar btnCentralIngresos btnCentralCambiar

Etiqueta: etiCentralPelicula

Panel: panelCentral

Panel: panelVOriginal

Etiqueta:

Botones:

btnOriginalNueva btnOriginalOcupacion

Botón

btnOriginalVaciar btnOriginalIngresos btnOriginalCambiar

btnIngresosTotales

Acude a la ventana de código de la ventana principal y codificamos lo siguiente: package paqueteprincipal; import javax.swing.JOptionPane; /** * * @author Luisa */ public class Ventanaprincipal extends javax.swing.JFrame { SalaCine central; SalaCine vo; private Object info; /** * Creates new form Ventanaprincipal */ public Ventanaprincipal() { initComponents(); central=new SalaCine(); vo=new SalaCine(); central.setAforo(500); central.setEntrada(8.0); vo.setAforo(80); vo.setEntrada(6.0); } private void btnCentralNuevaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: central.entraUno(); } private void btnCentralOcupacionActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: info="Sala Central\n"; info=info+ "Pelicula:" + central.getPelicula()+ "\n"; info=info+ "Aforo:" + central.getAforo()+ "\n"; info=info+ "Ocupadas:" + central.getOcupadas()+ "\n"; info=info+ "Libres:" + central.getLibres()+ "\n"; info=info+ "Porcentajes Ocupación:" + central.getPorcentaje()+ "\n"; JOptionPane.showMessageDialog(null,info); }

private void btnCentralVaciarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: central.Vaciar(); etiCentralPelicula.setText(""); } private void btnCentralIngresosActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: info="Ingresos de la sala:" + central.getIngresos() + " euros"; JOptionPane.showMessageDialog(null,info); } private void btnCentralCambiarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String titulo; titulo=JOptionPane.showInputDialog(null,"Introduce el titulo de la pelicula:"); central.setPelicula(titulo); etiCentralPelicula.setText(titulo); } private void btnOriginalNuevaActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: vo.entraUno(); } private void btnOriginalOcupacionActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: info="Sala Central\n"; info=info+ "Pelicula:" + central.getPelicula()+ "\n"; info=info+ "Aforo:" + central.getAforo()+ "\n"; info=info+ "Ocupadas:" + central.getOcupadas()+ "\n"; info=info+ "Libres:" + central.getLibres()+ "\n"; info=info+ "Porcentajes Ocupación:" + central.getPorcentaje()+ "\n"; JOptionPane.showMessageDialog(null,info); }

private void btnOriginalVaciarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: vo.Vaciar(); etiOriginalPelicula.setText(""); } private void btnOriginalIngresosActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: info="Ingresos de la sala:" + vo.getIngresos() + " euros"; JOptionPane.showMessageDialog(null,info); } private void btnOriginalCambiarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String titulo; titulo=JOptionPane.showInputDialog(null,"Introduce el titulo de la pelicula:"); vo.setPelicula(titulo); etiOriginalPelicula.setText(titulo); } private void btnIngresosTotalesActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: double ingre1,ingre2,ingret; ingre1= central.getIngresos(); ingre2= vo.getIngresos(); ingret= ingre1+ingre2; JOptionPane.showMessageDialog(null,ingret); } }

Después de terminar de codificar debemos ejecutar funcionamiento de todos los botones

Asigna una película y vende varias entradas…

…luego comprueba el % de ocupación y los ingresos…

y ver su correcto

…prueba a vaciar la sala y luego vuelve a comprobar la ocupación y los ingresos…

Al pulsar el botón se mostrara el total de los ingresos de la Sala Central más el ingreso de Sala Original

Ejercicio Contadores Este código se va poner en la clase que hemos creado que se llama

BotonContador.JAVA /* * BotonContador.java * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package paqueteprincipal; import javax.swing.JButton; /** * * @author didact */ public class BotonContador extends JButton { //propiedades int pulsaciones; //constructor public BotonContador() { pulsaciones=0; } //asigna una cantidad de pulsaciones public void setPulsaciones(int p) { pulsaciones=p; } //devuelve las pulsaciones del botón public int getPulsaciones() { return pulsaciones; } //incrementa en uno las pulsaciones public void incrementa() { pulsaciones++; } //decrementa en uno las pulsaciones public void decrementa() {

pulsaciones--; } //pone las pulsaciones a cero public void reiniciar() { pulsaciones=0; } //aumenta las pulsaciones en una cantidad c public void aumenta(int c) { pulsaciones=pulsaciones+c; } //disminuye las pulsaciones en una cantidad c public void disminuye(int c) { pulsaciones=pulsaciones-c; } }

En esta parte vamos a ver los códigos que tenemos que realizar el JFrame package paqueteprincipal; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane; public class Ventanaprincipal extends javax.swing.JFrame { BotonContador btnBotonA; BotonContador btnBotonB; BotonContador btnBotonC; /** * Creates new form Ventanaprincipal */ public Ventanaprincipal() { initComponents(); CreacionVentana(); }

public void CreacionVentana(){ this.setTitle("Ejercicio Herencia"); this.setSize(250, 300); //construiremos y situamos los botones contadores btnBotonA = new BotonContador(); btnBotonA.setText("Boton A"); btnBotonA.setBounds(10,10,100,30); this.getContentPane().add(btnBotonA); btnBotonB = new BotonContador(); btnBotonB.setText("Boton B"); btnBotonB.setBounds(130,10,100,30); this.getContentPane().add(btnBotonB); btnBotonC = new BotonContador(); btnBotonC.setText("Boton C"); btnBotonC.setBounds(65,40,100,30); this.getContentPane().add(btnBotonC); btnBotonA.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent evt){ PulsacionBotonA (evt); } }); btnBotonB.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent evt){ PulsacionBotonB (evt); } }); btnBotonC.addActionListener(new ActionListener () { public void actionPerformed(ActionEvent evt){ PulsacionBotonC (evt); } }); }

public void PulsacionBotonA (ActionEvent evt){ btnBotonA.incrementa(); } public void PulsacionBotonB (ActionEvent evt){ btnBotonB.incrementa(); } public void PulsacionBotonC (ActionEvent evt){ btnBotonC.aumenta(2); } private void btnVerPulsacionesActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: String info; info="El boton A se ha pulsado " + btnBotonA.getPulsaciones()+ "\n"; info= info + "El boton B se ha pulsado " + btnBotonB.getPulsaciones()+ "\n"; info= info + "El boton C se ha pulsado " + btnBotonC.getPulsaciones()+ "\n"; JOptionPane.showMessageDialog(null,info); } private void btnReiniciarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: btnBotonA.reiniciar(); btnBotonB.reiniciar(); btnBotonC.reiniciar(); } private void btnIniciarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: int p; p= Integer.parseInt(txtcontador.getText()); btnBotonA.setPulsaciones(p); btnBotonB.setPulsaciones(p); btnBotonC.setPulsaciones(p); }

Puedes comprobar el funcionamiento de este botón ejecutando el programa y pulsando varias veces los botones A , B, C. Luego mira las pulsaciones almacenadas en ambos botones. Pulsa el botón Reiniciar y comprueba las pulsaciones de nuevo. Deberían ser cero con los tres botones botones.

Después de pulsar el Botón A, Botón B, Botón C Damos clic en ver pulsaciones y nos mostrara lo siguiente El botón reiniciar hace q los valores de los botones se vuelvan a 0 El

Se introduce un número Y al pulsar iniciar, los contadores internos de los botones se inicializan al valor introducido

Ejercicio Fecha Este código se va poner en Dialogofecha.JAVA /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package paqueteprincipal; /** * * @author Luisa */ public class dialogoFecha extends javax.swing.JDialog { int Dia; int Mes; int Anio; int BotonPulsado; /** * Creates new form dialogoFecha */ public String getFecha(){ String cadena; cadena=Dia+"/"+Mes+"/"+Anio; return cadena; } public String getFechaCompleta(){ String cadena; cadena = Dia + "de"; if(Mes == 1){ cadena=cadena + "Enero"; } else if (Mes == 2){ cadena=cadena + "Febrero"; } if(Mes == 3){ cadena=cadena + "Marzo"; } else if (Mes == 4){ cadena=cadena + "Abril"; } if(Mes == 5){ cadena=cadena + "Mayo";

} else if (Mes == 6){ cadena=cadena + "Junio"; } if(Mes == 7){ cadena=cadena + "Julio"; } else if (Mes == 8){ cadena=cadena + "Agosto"; } if(Mes == 9){ cadena=cadena + "Setiembre"; } else if (Mes == 10){ cadena=cadena + "Octubre"; } if(Mes == 11){ cadena=cadena + "Noviembre"; } else if (Mes == 12){ cadena=cadena + "Diciembre"; } cadena=cadena + "de" + Anio; return cadena; } public dialogoFecha(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); } public int getBotonPulsado(){ return BotonPulsado; } private void btnCancelarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: BotonPulsado=1; this.dispose(); } private void btnAceptarActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: Dia=Integer.parseInt(txtDia.getText()); Mes=Integer.parseInt(txtMes.getText()); Anio=Integer.parseInt(txtAnio.getText());

BotonPulsado=0; this.dispose(); } Diseña esta ventana en la VentanaPrincipal para que tenga la siguiente forma:

Acude a la ventana de código de la ventana principal y codificamos lo siguiente: package paqueteprincipal; public class ventanaprincipal extends javax.swing.JFrame { dialogoFecha nacimiento; /** * Creates new form ventanaprincipal */ public ventanaprincipal() { initComponents(); nacimiento = new dialogoFecha(null,true); } private void btnFechaNacimientoActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: nacimiento.setVisible(true); if(nacimiento.getBotonPulsado()==0) { etiFechaNacimiento.setText(nacimiento.getFecha()); etiFechaNacimientlargo.setText(nacimiento.getFechaCompleta()); }else { etiFechaNacimiento.setText(" "); etiFechaNacimientlargo.setText(""); etiFechaNacimientlargo.setVisible(false); } }

Ejecuta el programa y observa el funcionamiento btnFechaNacimiento y del cuadro de diálogo nacimiento

del

botón

1) Al pulsar el botón aparece el cuadro de diálogo diseñado por nosotros…

Cuando damos clic en Aceptar se mostrara en las etiquetas las fechas Si pulsamos Cancelar se borrara las fechas y la segunda etiqueta