Professional Documents
Culture Documents
Superclase y Subclase
Al crear una clase, en vez de declarar miembros
completamente nuevos, el programador puede
designar que la nueva clase herede los miembros
de una clase existente.
Esta clase existente se conoce como superclase, y
la nueva clase se conoce como subclase.
El C++ se refieren a la superclase como la clase
base, y a la subclase como clase derivada.
Cada subclase puede convertirse en la superclase
de futuras subclases.
Superclase y Subclase.
Definiciones.
Una subclase es una clase que desciende de otra
clase. Una subclase hereda el estado y el
comportamiento de todos sus ancestros.
El trmino superclase se refiere a la clase que es el
ancestro ms directo, as como a todas las clases
ascendentes.
Superclases y Subclases.
Herencia en Java.
Consiste en crear nuevas clases partiendo de clases
existentes, que tendrn todas los atributos y los
mtodos de su 'superclase' o 'clase padre' y adems
se le podrn aadir otros atributos y mtodos
propios.
Las relaciones de herencia forman estructuras
jerrquicas en forma de rbol.
Una superclase existe en una relacin jerrquica con
sus subclases.
En algunos casos, una clase es tanto superclase
como subclase.
Ejemplo: Figuras.
Esta jerarqua empieza con la superclase Figura.
Se extiende con FiguraBidimensional y
Tridimensional.
El tercer nivel contiene tipos ms especficos.
Por ejemplo, un Triangulo es FiguraBidimensional.
Clase
Paquete
Subclase
Todos
public
protected
No
No especificado
No
No
private
No
No
No
package prueba;
import java.util.Scanner;
class Operacion {
protected Scanner entrada;
protected int valor1;
protected int valor2;
protected int resultado;
public Operacion() {
entrada=new Scanner(System.in); }
public void cargar() {
System.out.print("Ingrese 2 numeros:");
valor1=entrada.nextInt();
valor2=entrada.nextInt(); }
public void mostrarResultado() {
System.out.println(resultado); } }
https://paste.ee/p/H9seB
Ejemplo 2:
Persona - Empleado
Crear una clase Persona que tenga como atributos el
nombre y la edad.
Definir un mtodo que cargue los datos personales y
otro que los imprima.
Plantear una segunda clase Empleado que herede de
la clase Persona.
Aadir sueldo y los mtodos de cargar el sueldo e
imprimir.
Definir un objeto de la clase Persona y llamar a sus
mtodos.
Tambin crear un objeto de la clase Empleado y
llamar a sus mtodos.
package prueba;
import java.util.Scanner;
class Persona {
protected Scanner entrada;
protected String nombre;
protected int edad;
public Persona() {
entrada=new Scanner(System.in); }
https://paste.ee/p/63WKu
Interfaces visuales.
Componentes Swing.
Hasta ahora hemos resuelto todos los algoritmos
haciendo las salidas a travs de una consola en
modo texto.
La realidad que es muy comn la necesidad de
hacer la entrada y salida de datos mediante una
interfaz ms amigables con el usuario.
https://paste.ee/p/DoG0X
Ejemplo 4:
Programa y Versin.
Confeccionar una ventana que muestre el nombre
de un programa en la parte superior y su nmero
de versin en la parte inferior.
No permitir modificar el tamao de la ventana en
tiempo de ejecucin.
Ejemplo 4:
Programa y Versin.
package formulario;
import javax.swing.*;
public class Formulario extends
JFrame {
private JLabel label1,label2;
public Formulario() {
setLayout(null);
label1=new JLabel("Nuevo Sistema.");
label1.setBounds(10,20,300,30);
add(label1);
label2=new JLabel("Vesion 1.0");
label2.setBounds(10,100,100,30);
add(label2);
}
Ejemplo 5:
Swing - JButton
Confeccionar una ventana que muestre un botn.
Cuando se presione finalizar la ejecucin del
programa Java.
package formulario;
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends JFrame implements ActionListener {
JButton boton1;
public Formulario() {
setLayout(null);
boton1=new JButton("Finalizar");
https://paste.ee/p/hzRaF
boton1.setBounds(300,250,100,30);
add(boton1);
boton1.addActionListener(this); }
public void actionPerformed(ActionEvent e) {
if (e.getSource()==boton1) {
System.exit(0); } }
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,450,350);
formulario1.setVisible(true);
}}
Interface ActionListener
La mecnica para atrapar el clic se hace mediante la
implementacin de una interface.
Una interface es un protocolo que permite la
comunicacin entre dos clases.
Por ejemplo la interface ActionListener tiene la
siguiente estructura:
interface ActionListener {
public void actionPerformed(ActionEvent e) {
}
Ejemplo 6:
Swing - JTextField
Confeccionar un programa que permita ingresar el
nombre y cuando se presione un botn mostrar el
valor ingresado en la barra de ttulos del JFrame.
package formulario;
import javax.swing.*;
import java.awt.event.*;
public class Formulario extends
JFrame implements ActionListener{
private JTextField textfield1;
private JLabel label1;
private JButton boton1;
public Formulario() {
setLayout(null);
label1=new JLabel("Usuario:");
label1.setBounds(10,10,100,30);
add(label1);
textfield1=new JTextField();
textfield1.setBounds(120,10,150,20);
add(textfield1);
boton1=new JButton("Aceptar");
boton1.setBounds(10,80,100,30);
add(boton1);
boton1.addActionListener(this);
}
public void
actionPerformed(ActionEvent e) {
if (e.getSource()==boton1) {
String cad=textfield1.getText();
setTitle(cad);
}}
public static void main(String[] ar) {
Formulario formulario1=new
Formulario();
formulario1.setBounds(0,0,300,150);
formulario1.setVisible(true);
}}
http://paste.ee/p/TDJMr
Ejemplo 7:
Swing - JTextArea
JTextArea permite ingresar mltiples lneas, a
diferencia del control de tipo JTextField.
Confeccionar un programa que permita ingresar un mail
en un control de tipo JTextField y el cuerpo del mail en
un control de tipo JTextArea.
package formulario;
import javax.swing.*;
public class Formulario extends JFrame{
private JTextField textfield1;
private JTextArea textarea1;
public Formulario() {
setLayout(null);
textfield1=new JTextField();
textfield1.setBounds(10,10,200,30);
add(textfield1);
textarea1=new JTextArea();
textarea1.setBounds(10,50,400,300);
add(textarea1);
}
http://paste.ee/p/krGAA