SlideShare una empresa de Scribd logo
9.Clases y Objetos: Herencia
Ramiro Estigarribia Canese
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 término superclase se refiere a la clase que es el
ancestro más directo, así como a todas las clases
ascendentes.
Superclases y Subclases.
Herencia en Java.
➔ Consiste en crear nuevas clases partiendo de clases
existentes, que tendrán todas los atributos y los
métodos de su 'superclase' o 'clase padre' y además
se le podrán añadir otros atributos y métodos propios.
➔ Las relaciones de herencia forman estructuras
jerárquicas en forma de árbol.
➔ Una superclase existe en una relación jerárquica con
sus subclases.
➔ En algunos casos, una clase es tanto superclase
como subclase.
Ejemplo: Figuras.
➔ Esta jerarquía empieza con la superclase Figura.
➔ Se extiende con FiguraBidimensional y Tridimensional.
➔ El tercer nivel contiene tipos más específicos.
Por ejemplo, un Triangulo es FiguraBidimensional.
Public / Private / Protected
1. Los miembros public son accesibles en cualquier
parte en donde el programa tenga una referencia a
un objeto de esa clase, o una de sus subclases.
2. Los miembros private sólo dentro de la misma clase.
Los miembros private de una superclase no son
heredados por sus subclases.
3. Protected ofrece un nivel intermedio entre public y
private.
Los miembros protected de una superclase pueden
ser utilizados por los miembros de esa superclase, de
sus subclases y otras clases en el mismo paquete.
Public / Private / Protected
Modificador Clase Paquete Subclase Todos
public Sí Sí Sí Sí
protected Sí Sí Sí No
No especificado Sí Sí No No
private Sí No No No
1.Ejemplo: Suma y Resta
Implementar dos clases: Suma y Resta.
Cada clase tiene como atributo valor1, valor2 y resultado.
Los métodos a definir son:
➔ cargar: para ingresar valores.
➔ operar: suma o resta los valores.
➔ mostrarResultado: muestra el resultado
La relación de herencia que podemos disponer para este
problema es:
Operacion
SumaResta
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); } }
class Suma extends Operacion{
void operar() {
resultado=valor1+valor2; } }
class Resta extends Operacion {
public void operar(){
resultado=valor1-valor2; } }
public class Prueba {
public static void main(String[] ar) {
Suma suma1=new Suma();
suma1.cargar();
suma1.operar();
System.out.print("Suma:");
suma1.mostrarResultado();
Resta resta1=new Resta();
resta1.cargar();
resta1.operar();
System.out.print("Resta:");
resta1.mostrarResultado(); } }
https://paste.ee/p/H9seB
Ejemplo 2:
Persona - Empleado
➔ Crear una clase Persona que tenga como atributos el
nombre y la edad.
➔ Definir un método que cargue los datos personales y
otro que los imprima.
➔ Plantear una segunda clase Empleado que herede de
la clase Persona.
➔ Añadir sueldo y los métodos de cargar el sueldo e
imprimir.
➔ Definir un objeto de la clase Persona y llamar a sus
métodos.
➔ También crear un objeto de la clase Empleado y
llamar a sus métodos.
package prueba;
import java.util.Scanner;
class Persona {
protected Scanner entrada;
protected String nombre;
protected int edad;
public Persona() {
entrada=new Scanner(System.in); }
public void cargarDatos() {
System.out.print("Ingrese nombre:");
nombre=entrada.next();
System.out.print("Ingrese edad:");
edad=entrada.nextInt(); }
public void imprimirDatos() {
System.out.println("Nombre:"+nombre);
System.out.println("Edad:"+edad); } }
class Empleado extends Persona {
protected int sueldo;
public void cargarSueldo() {
System.out.print("Ingrese sueldo:");
sueldo=entrada.nextInt(); }
public void imprimirSueldo() {
System.out.println("El sueldo es:"+sueldo); } }
public class Prueba {
public static void main(String[] ar) {
Empleado empleado1=new Empleado();
empleado1.cargarDatos();
empleado1.cargarSueldo();
empleado1.imprimirDatos();
empleado1.imprimirSueldo(); } }
https://paste.ee/p/63WKu
Interfaces visuales.
Componentes Swing.
➔ Hasta ahora hemos resuelto todos los algoritmos
haciendo las salidas a través de una consola en
modo texto.
➔ La realidad que es muy común la necesidad de
hacer la entrada y salida de datos mediante una
interfaz más amigables con el usuario.
Ejemplo 3: Hola Mundo
package formulario;
import javax.swing.*;
public class Formulario extends JFrame{
private JLabel label1;
public Formulario() {
setLayout(null);
label1=new JLabel("Hola Mundo.");
label1.setBounds(10,20,200,30);
add(label1); }
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(10,10,400,300);
formulario1.setVisible(true);
} }
https://paste.ee/p/DoG0X
Ejemplo 4:
Programa y Versión.
➔ Confeccionar una ventana que muestre el nombre
de un programa en la parte superior y su número
de versión en la parte inferior.
➔ No permitir modificar el tamaño de la ventana en
tiempo de ejecución.
Ejemplo 4:
Programa y Versión.
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);
}
public static void main(String[ ] ar) {
Formulario formulario1=new
Formulario();
formulario1.setBounds(0,0,300,200);
formulario1.setResizable(false);
formulario1.setVisible(true);
} }
https://paste.ee/p/gz9Lm
Ejemplo 5:
Swing - JButton
Confeccionar una ventana que muestre un botón.
Cuando se presione finalizar la ejecución 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");
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);
} }
https://paste.ee/p/hzRaF
Interface ActionListener
➔ La mecánica para atrapar el clic se hace mediante la
implementación de una interface.
➔ Una interface es un protocolo que permite la
comunicación 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 botón mostrar el
valor ingresado en la barra de títulos 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 múltiples líneas, 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);
}
public static void main(String[] ar) {
Formulario formulario1=new Formulario();
formulario1.setBounds(0,0,540,400);
formulario1.setVisible(true);
} }
http://paste.ee/p/krGAA

Más contenido relacionado

La actualidad más candente

Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
David Del Angel Rodriguez
 
Metodologia oohdm
Metodologia oohdmMetodologia oohdm
Metodologia oohdm
Lucia Zambrano Franco
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
Giancarlo Aguilar
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
Rene Guaman-Quinche
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UML
ramirezjaime
 
Formato ieee830
Formato ieee830Formato ieee830
Formato ieee830
DANIEL GUAQUETA
 
7.2. funciones sql
7.2.  funciones sql7.2.  funciones sql
7.2. funciones sql
renaldy villanueva
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
landeta_p
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
Yaskelly Yedra
 
Modelo en-espiral
Modelo en-espiralModelo en-espiral
Modelo en-espiral
soniaposligua
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
Paola Madrid
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
1da4
 
Tarjetas crc
Tarjetas crcTarjetas crc
Tarjetas crc
Addy Dávila
 
Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon
oswaldoyuneri
 
IEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareIEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de software
Jesús Navarro
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
Alvaro Enrique Ruano
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
Mariela Cabezas
 
Entrega por etapas
Entrega por etapasEntrega por etapas
Entrega por etapas
Jofrahona Rojinegro
 
Diagrama de secuencia UML
Diagrama de secuencia UMLDiagrama de secuencia UML
Diagrama de secuencia UML
Erivan Martinez Ovando
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Sergio Sanchez
 

La actualidad más candente (20)

Jerarquia de chomsky
Jerarquia de chomskyJerarquia de chomsky
Jerarquia de chomsky
 
Metodologia oohdm
Metodologia oohdmMetodologia oohdm
Metodologia oohdm
 
Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.Componentes y Librerías - Tópicos avanzados de programación.
Componentes y Librerías - Tópicos avanzados de programación.
 
Diagramas componentes
Diagramas componentesDiagramas componentes
Diagramas componentes
 
Modelo requisitos UML
Modelo requisitos UMLModelo requisitos UML
Modelo requisitos UML
 
Formato ieee830
Formato ieee830Formato ieee830
Formato ieee830
 
7.2. funciones sql
7.2.  funciones sql7.2.  funciones sql
7.2. funciones sql
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Modelo de desarrollo de software
Modelo de desarrollo de softwareModelo de desarrollo de software
Modelo de desarrollo de software
 
Modelo en-espiral
Modelo en-espiralModelo en-espiral
Modelo en-espiral
 
Polimorfismo
PolimorfismoPolimorfismo
Polimorfismo
 
Diagramas UML
Diagramas UMLDiagramas UML
Diagramas UML
 
Tarjetas crc
Tarjetas crcTarjetas crc
Tarjetas crc
 
Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon Tabla comparativa de herramientas case oswaldo mauleon
Tabla comparativa de herramientas case oswaldo mauleon
 
IEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de softwareIEEE 1471-2000: Documento de arquitectura de software
IEEE 1471-2000: Documento de arquitectura de software
 
Programación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodosProgramación Orientada a Objetos - atributos y métodos
Programación Orientada a Objetos - atributos y métodos
 
Presentacion arbol-binario
Presentacion arbol-binarioPresentacion arbol-binario
Presentacion arbol-binario
 
Entrega por etapas
Entrega por etapasEntrega por etapas
Entrega por etapas
 
Diagrama de secuencia UML
Diagrama de secuencia UMLDiagrama de secuencia UML
Diagrama de secuencia UML
 
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos TradicionalesUnidad 1.2 A IntroduccióN A Los Proceso De Software   Modelos Tradicionales
Unidad 1.2 A IntroduccióN A Los Proceso De Software Modelos Tradicionales
 

Similar a 9.herencia en java

Lp2docclases
Lp2docclasesLp2docclases
Lp2docclases
juan perez luna
 
10.herencia en c++
10.herencia en c++10.herencia en c++
10.herencia en c++
Ramiro Estigarribia Canese
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
ecodereck
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
ssuser2e6b96
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
Uniminuto - San Francisco
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
Renny Batista
 
Tema2
Tema2Tema2
Java
JavaJava
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
Fer Nando
 
Clase 2 poo java
Clase 2 poo javaClase 2 poo java
Clase 2 poo java
Andres Garcia
 
Clase viii
Clase viiiClase viii
Herencia lenguaje de programacion
Herencia lenguaje de programacionHerencia lenguaje de programacion
Herencia lenguaje de programacion
Hiden Jaome Machaca Huancollo
 
Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2
K Manuel TN
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
Richard Eliseo Mendoza Gafaro
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
JCarlosCrespo
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
Antonio Palomares Sender
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
Luiggi Inga Barboza
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
Margarita Romero
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
Krizztiina Pacheko
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
Karla Estefania Villanueva Epigmenio
 

Similar a 9.herencia en java (20)

Lp2docclases
Lp2docclasesLp2docclases
Lp2docclases
 
10.herencia en c++
10.herencia en c++10.herencia en c++
10.herencia en c++
 
Sesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clasesSesion 07 nivel_acceso_miembros_clases
Sesion 07 nivel_acceso_miembros_clases
 
Ejercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docxEjercicio de automatizacion IntelliJ+reporte.docx
Ejercicio de automatizacion IntelliJ+reporte.docx
 
Conceptos basicos POO
Conceptos basicos POOConceptos basicos POO
Conceptos basicos POO
 
03 java poo_parte_2
03 java poo_parte_203 java poo_parte_2
03 java poo_parte_2
 
Tema2
Tema2Tema2
Tema2
 
Java
JavaJava
Java
 
Intro aplicaciones web con php
Intro aplicaciones web con phpIntro aplicaciones web con php
Intro aplicaciones web con php
 
Clase 2 poo java
Clase 2 poo javaClase 2 poo java
Clase 2 poo java
 
Clase viii
Clase viiiClase viii
Clase viii
 
Herencia lenguaje de programacion
Herencia lenguaje de programacionHerencia lenguaje de programacion
Herencia lenguaje de programacion
 
Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2Herencia y polimorfismo unidad 5 semestre 2
Herencia y polimorfismo unidad 5 semestre 2
 
Semana 3 Herencia en Java
Semana 3   Herencia en JavaSemana 3   Herencia en Java
Semana 3 Herencia en Java
 
U8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdfU8.- Programacion Orientada a objetos II (2).pdf
U8.- Programacion Orientada a objetos II (2).pdf
 
Framework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetosFramework .NET 3.5 07 Programación orientada a objetos
Framework .NET 3.5 07 Programación orientada a objetos
 
Datos Previos
Datos PreviosDatos Previos
Datos Previos
 
2) introduccion al lenguaje java
2) introduccion al lenguaje java2) introduccion al lenguaje java
2) introduccion al lenguaje java
 
2introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate022introduccionallenguajejava 141109171757-conversion-gate02
2introduccionallenguajejava 141109171757-conversion-gate02
 
INTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVAINTRODUCCION LENGUAJE JAVA
INTRODUCCION LENGUAJE JAVA
 

Más de Ramiro Estigarribia Canese

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
Ramiro Estigarribia Canese
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
Ramiro Estigarribia Canese
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
Ramiro Estigarribia Canese
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
Ramiro Estigarribia Canese
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
Ramiro Estigarribia Canese
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
Ramiro Estigarribia Canese
 
Servicios web
Servicios webServicios web
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
Ramiro Estigarribia Canese
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
Ramiro Estigarribia Canese
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
Ramiro Estigarribia Canese
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
Ramiro Estigarribia Canese
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
Ramiro Estigarribia Canese
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
Ramiro Estigarribia Canese
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
Ramiro Estigarribia Canese
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
Ramiro Estigarribia Canese
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
Ramiro Estigarribia Canese
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
Ramiro Estigarribia Canese
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
Ramiro Estigarribia Canese
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
Ramiro Estigarribia Canese
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
Ramiro Estigarribia Canese
 

Más de Ramiro Estigarribia Canese (20)

8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf8.Flujo, Comportamiento, Patrones y WebApps.pdf
8.Flujo, Comportamiento, Patrones y WebApps.pdf
 
Principios que Guían la Práctica
Principios que Guían la PrácticaPrincipios que Guían la Práctica
Principios que Guían la Práctica
 
CSS - Hojas de Estilo en Cascada.pdf
CSS -  Hojas de Estilo en Cascada.pdfCSS -  Hojas de Estilo en Cascada.pdf
CSS - Hojas de Estilo en Cascada.pdf
 
Python conceptos básicos
Python   conceptos básicosPython   conceptos básicos
Python conceptos básicos
 
Diseño de WebApps
Diseño de WebAppsDiseño de WebApps
Diseño de WebApps
 
Diseño basado en patrones
Diseño basado en patronesDiseño basado en patrones
Diseño basado en patrones
 
Servicios web
Servicios webServicios web
Servicios web
 
Especificaciones de los procesadores
Especificaciones de los procesadoresEspecificaciones de los procesadores
Especificaciones de los procesadores
 
Lenguaje de programación awk
Lenguaje de programación awkLenguaje de programación awk
Lenguaje de programación awk
 
Bases de datos con PHP y PDO
Bases de datos con PHP y PDOBases de datos con PHP y PDO
Bases de datos con PHP y PDO
 
Bases de datos con PHP y Mysqli
Bases de datos con PHP y MysqliBases de datos con PHP y Mysqli
Bases de datos con PHP y Mysqli
 
Interfaz de usuario
Interfaz de usuarioInterfaz de usuario
Interfaz de usuario
 
Variables del sistema en php
Variables del sistema en phpVariables del sistema en php
Variables del sistema en php
 
Funciones en php
Funciones en phpFunciones en php
Funciones en php
 
Bootstrap menues, contenedores y formularios
Bootstrap   menues, contenedores y formulariosBootstrap   menues, contenedores y formularios
Bootstrap menues, contenedores y formularios
 
Estructuras de control en bash
Estructuras de control en bashEstructuras de control en bash
Estructuras de control en bash
 
Visual studio code
Visual studio codeVisual studio code
Visual studio code
 
Diseño de software
Diseño de softwareDiseño de software
Diseño de software
 
Herramienta cacti
Herramienta cactiHerramienta cacti
Herramienta cacti
 
Monitoreo de datacenter
Monitoreo de datacenterMonitoreo de datacenter
Monitoreo de datacenter
 

Último

Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
sofiahuarancabellido
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
larapalaciosmonzon28
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
larapalaciosmonzon28
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
YaniEscobar2
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
AMADO SALVADOR
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
cecypozos703
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Festibity
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
70244530
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
MiguelAtencio10
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
JuanaNT7
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
giampierdiaz5
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
Festibity
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
doctorsoluciones34
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
mantenimientocarbra6
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
paulroyal74
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
KukiiSanchez
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
maralache30
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Festibity
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
AMADO SALVADOR
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
YashiraPaye
 

Último (20)

Computacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajasComputacion cuántica y sus ventajas y desventajas
Computacion cuántica y sus ventajas y desventajas
 
Nuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsadNuevos tiempos, nuevos espacios.docxdsdsad
Nuevos tiempos, nuevos espacios.docxdsdsad
 
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfqedublogs info.docx asdasfasfsawqrdqwfqwfqwfq
edublogs info.docx asdasfasfsawqrdqwfqwfqwfq
 
computacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADOcomputacion global 3.pdf pARA TERCER GRADO
computacion global 3.pdf pARA TERCER GRADO
 
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
Catalogo general tarifas 2024 Vaillant. Amado Salvador Distribuidor Oficial e...
 
El uso de las TIC por Cecilia Pozos S..pptx
El uso de las TIC  por Cecilia Pozos S..pptxEl uso de las TIC  por Cecilia Pozos S..pptx
El uso de las TIC por Cecilia Pozos S..pptx
 
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdfProjecte Iniciativa TIC 2024 HPE. inCV.pdf
Projecte Iniciativa TIC 2024 HPE. inCV.pdf
 
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdfPLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
PLAN DE MANTENMIENTO preventivo de un equipo de computo.pdf
 
mantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptxmantenimiento de chasis y carroceria1.pptx
mantenimiento de chasis y carroceria1.pptx
 
Gabinete, puertos y dispositivos que se conectan al case
Gabinete,  puertos y  dispositivos que se conectan al caseGabinete,  puertos y  dispositivos que se conectan al case
Gabinete, puertos y dispositivos que se conectan al case
 
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdfPresentación Seguridad Digital Profesional Azul Oscuro (1).pdf
Presentación Seguridad Digital Profesional Azul Oscuro (1).pdf
 
Informació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdfInformació Projecte Iniciativa TIC HPE.pdf
Informació Projecte Iniciativa TIC HPE.pdf
 
Manual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputoManual de soporte y mantenimiento de equipo de cómputo
Manual de soporte y mantenimiento de equipo de cómputo
 
Manual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computoManual Web soporte y mantenimiento de equipo de computo
Manual Web soporte y mantenimiento de equipo de computo
 
Sitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajasSitios web 3.0 funciones ventajas y desventajas
Sitios web 3.0 funciones ventajas y desventajas
 
TIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololoTIC en educacion.rtf.docxlolololololololo
TIC en educacion.rtf.docxlolololololololo
 
HERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptxHERRAMIENTAS WEB--------------------.pptx
HERRAMIENTAS WEB--------------------.pptx
 
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdfProjecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
Projecte Iniciativa TIC 2024 SOPRA STERIA. inCV.pdf
 
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador ValenciaCatalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
Catalogo Refrigeracion Miele Distribuidor Oficial Amado Salvador Valencia
 
Inteligencia Artificial
Inteligencia ArtificialInteligencia Artificial
Inteligencia Artificial
 

9.herencia en java

  • 1. 9.Clases y Objetos: Herencia Ramiro Estigarribia Canese
  • 2. 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.
  • 3. 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 término superclase se refiere a la clase que es el ancestro más directo, así como a todas las clases ascendentes.
  • 5. Herencia en Java. ➔ Consiste en crear nuevas clases partiendo de clases existentes, que tendrán todas los atributos y los métodos de su 'superclase' o 'clase padre' y además se le podrán añadir otros atributos y métodos propios. ➔ Las relaciones de herencia forman estructuras jerárquicas en forma de árbol. ➔ Una superclase existe en una relación jerárquica con sus subclases. ➔ En algunos casos, una clase es tanto superclase como subclase.
  • 6. Ejemplo: Figuras. ➔ Esta jerarquía empieza con la superclase Figura. ➔ Se extiende con FiguraBidimensional y Tridimensional. ➔ El tercer nivel contiene tipos más específicos. Por ejemplo, un Triangulo es FiguraBidimensional.
  • 7. Public / Private / Protected 1. Los miembros public son accesibles en cualquier parte en donde el programa tenga una referencia a un objeto de esa clase, o una de sus subclases. 2. Los miembros private sólo dentro de la misma clase. Los miembros private de una superclase no son heredados por sus subclases. 3. Protected ofrece un nivel intermedio entre public y private. Los miembros protected de una superclase pueden ser utilizados por los miembros de esa superclase, de sus subclases y otras clases en el mismo paquete.
  • 8. Public / Private / Protected Modificador Clase Paquete Subclase Todos public Sí Sí Sí Sí protected Sí Sí Sí No No especificado Sí Sí No No private Sí No No No
  • 9. 1.Ejemplo: Suma y Resta Implementar dos clases: Suma y Resta. Cada clase tiene como atributo valor1, valor2 y resultado. Los métodos a definir son: ➔ cargar: para ingresar valores. ➔ operar: suma o resta los valores. ➔ mostrarResultado: muestra el resultado La relación de herencia que podemos disponer para este problema es: Operacion SumaResta
  • 10. 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); } } class Suma extends Operacion{ void operar() { resultado=valor1+valor2; } } class Resta extends Operacion { public void operar(){ resultado=valor1-valor2; } } public class Prueba { public static void main(String[] ar) { Suma suma1=new Suma(); suma1.cargar(); suma1.operar(); System.out.print("Suma:"); suma1.mostrarResultado(); Resta resta1=new Resta(); resta1.cargar(); resta1.operar(); System.out.print("Resta:"); resta1.mostrarResultado(); } } https://paste.ee/p/H9seB
  • 11. Ejemplo 2: Persona - Empleado ➔ Crear una clase Persona que tenga como atributos el nombre y la edad. ➔ Definir un método que cargue los datos personales y otro que los imprima. ➔ Plantear una segunda clase Empleado que herede de la clase Persona. ➔ Añadir sueldo y los métodos de cargar el sueldo e imprimir. ➔ Definir un objeto de la clase Persona y llamar a sus métodos. ➔ También crear un objeto de la clase Empleado y llamar a sus métodos.
  • 12. package prueba; import java.util.Scanner; class Persona { protected Scanner entrada; protected String nombre; protected int edad; public Persona() { entrada=new Scanner(System.in); } public void cargarDatos() { System.out.print("Ingrese nombre:"); nombre=entrada.next(); System.out.print("Ingrese edad:"); edad=entrada.nextInt(); } public void imprimirDatos() { System.out.println("Nombre:"+nombre); System.out.println("Edad:"+edad); } } class Empleado extends Persona { protected int sueldo; public void cargarSueldo() { System.out.print("Ingrese sueldo:"); sueldo=entrada.nextInt(); } public void imprimirSueldo() { System.out.println("El sueldo es:"+sueldo); } } public class Prueba { public static void main(String[] ar) { Empleado empleado1=new Empleado(); empleado1.cargarDatos(); empleado1.cargarSueldo(); empleado1.imprimirDatos(); empleado1.imprimirSueldo(); } } https://paste.ee/p/63WKu
  • 13. Interfaces visuales. Componentes Swing. ➔ Hasta ahora hemos resuelto todos los algoritmos haciendo las salidas a través de una consola en modo texto. ➔ La realidad que es muy común la necesidad de hacer la entrada y salida de datos mediante una interfaz más amigables con el usuario.
  • 14. Ejemplo 3: Hola Mundo package formulario; import javax.swing.*; public class Formulario extends JFrame{ private JLabel label1; public Formulario() { setLayout(null); label1=new JLabel("Hola Mundo."); label1.setBounds(10,20,200,30); add(label1); } public static void main(String[] ar) { Formulario formulario1=new Formulario(); formulario1.setBounds(10,10,400,300); formulario1.setVisible(true); } } https://paste.ee/p/DoG0X
  • 15. Ejemplo 4: Programa y Versión. ➔ Confeccionar una ventana que muestre el nombre de un programa en la parte superior y su número de versión en la parte inferior. ➔ No permitir modificar el tamaño de la ventana en tiempo de ejecución.
  • 16. Ejemplo 4: Programa y Versión. 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); } public static void main(String[ ] ar) { Formulario formulario1=new Formulario(); formulario1.setBounds(0,0,300,200); formulario1.setResizable(false); formulario1.setVisible(true); } } https://paste.ee/p/gz9Lm
  • 17. Ejemplo 5: Swing - JButton Confeccionar una ventana que muestre un botón. Cuando se presione finalizar la ejecución del programa Java.
  • 18. 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"); 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); } } https://paste.ee/p/hzRaF
  • 19. Interface ActionListener ➔ La mecánica para atrapar el clic se hace mediante la implementación de una interface. ➔ Una interface es un protocolo que permite la comunicación entre dos clases. ➔ Por ejemplo la interface ActionListener tiene la siguiente estructura: interface ActionListener { public void actionPerformed(ActionEvent e) { }
  • 20. Ejemplo 6: Swing - JTextField ➔ Confeccionar un programa que permita ingresar el nombre y cuando se presione un botón mostrar el valor ingresado en la barra de títulos del JFrame.
  • 21. 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
  • 22. Ejemplo 7: Swing - JTextArea ➔ JTextArea permite ingresar múltiples líneas, 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.
  • 23. 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); } public static void main(String[] ar) { Formulario formulario1=new Formulario(); formulario1.setBounds(0,0,540,400); formulario1.setVisible(true); } } http://paste.ee/p/krGAA