0% encontró este documento útil (0 votos)
25 vistas39 páginas

Clase12 - Clase Final

Cargado por

rbenavides76
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
25 vistas39 páginas

Clase12 - Clase Final

Cargado por

rbenavides76
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PPTX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 39

Clase final

Técnicas de programación 1

1
POO

2
Java: Clases y Objetos

Estructura de una clase

as e
el C
Cam
c ión Datos
ota
N Comportamiento
• Nombre clase: UpperCamelCase, las iniciales de cada palabra
que compone el nombre van en mayúscula.
• Nombre atributos: lowerCamelCase, la primera palabra va toda
en minúscula y la inicial de las demás palabras va en mayúscula.
• Nombre métodos: lowerCamelCase, la primera palabra va toda
en minúscula y la inicial de las demás palabras va en mayúscula.
3
Java: Clases y Objetos

Estructura de una clase


Acceso
- private
+ public
# protected
Modificadores de acceso
Encapsulamiento: Se recomienda que los ATRIBUTOS estén como
privados y acceder a ellos para evitar que puedan ser modificados
directamente desde otras clases.

4
Java: Clases y Objetos

Nomenclatura

Modelo Código
- edad : int private int edad;

5
Java: Clases y Objetos

Nomenclatura

Modelo Código
- edad : int private int edad;

public int sumar(int num){


+ sumar(num : int):int int suma = num + 5;
return suma;
}

6
Java: UML

UML

UML (Unified Modeling Language) es el lenguaje de


modelado unificado que permite la representación gráfica de
elementos o componentes de un software. En POO suele
utilizarse para representar las clases de un proyecto y las
relaciones entre las mismas.

7
Constructor y objetos

8
Java: POO - Constructor

Constructor
• Lleva el mismo nombre de la clase
Mé • NO retorna
tod
o
• Todas las clases de Java tienen un constructor
Clas • El constructor por defecto no recibe parámetros
es • Se pueden definir constructores propios que reciban
Jav parámetros
a
• Función principal: permite crear objetos/instancias de una
clase (instanciar una clase)
Obj • Al crear un objeto se copian los atributos de la clase
eto plantilla y se puede acceder a los métodos públicos
s
9
Java: POO - Objeto

Objeto
Se tiene una clase Persona con los atributos nombre y edad.
Además la clase tiene el método saludar.

Un objeto/instancia de la clase Persona se definiría así:

Persona persona1 = new Persona();

Tipo de dato Nombre de la variable Asignación Inicialización Constructor


Clase Objeto/instancia Reserva espacio en En este ejemplo se
memoria usa el constructor
por defecto

10
Java: POO

Ejemplo

11
Java: POO

Ejemplo

Public class GestionPersonas{ Public class Persona{


private Persona objPersona1; private String nombre;
private Persona objPersona1; private int edad;

public static void main(String public Persona(String


args[]){ nombre, int edad){
objPersona1 = new Persona("Ana", 20); this.nombre = nombre;
objPersona1 = new Persona("Luis", 20); this.edad = edad;
} }
} }

12
Java: POO

THIS
Cuando se utiliza this, se está haciendo referencia al contexto
donde se encuentra.

Por ejemplo, si se crea un objeto de la clase Persona y en la clase


Persona se utiliza el this, este hará referencia a la copia de la clase
que representa a ese objeto.

En el ejercicio anterior, al crear objPersona1 y utilizar el


constructor de la clase, el this que se usa en el constructor
permite hacer referencia a los atributos propios del objeto
creado, diferenciándolos de los parámetros que se reciben por el
constructor.
13
Getters y setters

14
Java: POO

Getters y Setters

Para poder implementar el encapsulamiento, en JAVA existen


unos métodos que permiten acceder de forma segura a los
atributos privados de una clase. Esos métodos se conocen
como Getters y Setters.

Los Getters recuperan o dan información.


Los Setters modifican información.

15
Acceder a un objeto usando
ArrayList

16
Java: POO y ArrayList

import java.util.ArrayList; Public class Persona{


Public class GestionPersonas{ private String nombre;
private ArrayList <Persona> personas = private int edad;
new ArrayList();
public Persona(String
public static void main(String args[]) nombre, int edad){
{ this.nombre = nombre;
Persona obj1 = new Persona ("Ana", 18); this.edad = edad;
personas.add(obj1); }
//personas.get(0) -> trae el objeto
personas.get(0).getEdad(); public int getEdad(){
} return edad;
} }
}

17
Pilares de la programación

18
Java: Pilares POO

Pilares de POO

protected
• Protección de los componentes de una clase

private
Encapsulamiento
• Proteger la visibilidad de los atributos y métodos

• Una clase permite heredar sus atributos y métodos

extends
Herencia • Superclase (clase padre) y clase hija (la que
hereda).

• Enviar mensajes iguales a objetos de distintos tipos.

extends
Polimorfismo
• Responder de distinto modo a un mismo mensaje.

• Extraer métodos y atributos comunes.


Abstracción
• No se pueden crear objetos de estas clases.
Métodos abstractos: abstract void método();
Se declaran en una clase abstracta pero no se implementan.
19
Java: Pilares POO

Pilares de POO

protected
• Protección de los componentes de una clase

private
Encapsulamiento
• Proteger la visibilidad de los atributos y métodos

• Una clase permite heredar sus atributos y métodos

extends
Herencia • Superclase (clase padre) y clase hija (la que
hereda).

• Enviar mensajes iguales a objetos de distintos tipos.

extends
Polimorfismo
• Responder de distinto modo a un mismo mensaje.

• Extraer métodos y atributos comunes.


Abstracción
• No se pueden crear objetos de estas clases.
Métodos abstractos: abstract void método();
Se declaran en una clase abstracta pero no se implementan.
20
Herencia

21
Java: Herencia

Concepto de herencia

Dos clases puede relacionarse por la colaboración o asociación


simple (tiene un, es parte de), como se ha trabajado hasta el
momento. Pero existen otros tipos de relaciones entre clases y
una de estas es la herencia.

La relación de herencia (es un/una) o herencia consiste en


poder crear clases a partir de clases que ya existen.
• Clases hijas: Nuevas clases que se crean a partir de las clases
ya existentes. También son conocidas como clases hija.
• Superclases: Clases de las que se hereda. También conocidas
como clases padre.
22
Java: Herencia

Asociación Vs Herencia

Asociación simple o directa Herencia

Clase A Clase A

tiene un /
es un/a
es parte de

Clase B Clase B
Clase B es un/a Clase A
Clase A tiene un objeto de Clase B /
Un objeto de Clase B es parte de Clase A Cirulo es una Figura
Circulo hereda de Figura 23
Java: Herencia

Asociación Vs Herencia

Asociación simple o directa Herencia


Superclase/
Clase A Clase A Padre

tiene un /
es un/a
es parte de

Clase B Clase B Hija

Clase B es un/a Clase A


Clase A tiene un objeto de Clase B /
Un objeto de Clase B es parte de Clase A Cirulo es una Figura
Circulo hereda de Figura 24
Java: Herencia

¿Qué se hereda?

• Se heredan los atributos y métodos públicos de la


superclase.
• Se continúa aplicando el pilar del Encapsulamiento
(public, private, protected).

25
Java: Herencia

¿Cómo se hereda?

• Añadiendo, en la declaración de la clase hija, la palabra


reservada extends junto con el nombre de la superclase.

Ejemplo:
public class Felino extends Animal{
//contenido de la clase
}

26
Java: Herencia

¿Cómo se hereda?

• Añadiendo, en la declaración de la clase hija, la palabra


reservada extends junto con el nombre de la superclase.

Ejemplo:
public class Felino extends Animal{
//contenido de la clase
}
Esto significa que la clase Felino hereda (extends) de la
superclase Animal.

También se puede decir que: Felino es un Animal


27
Java: Herencia

Ejemplo
Diagrama de clases UML

28
Java: Herencia

Ejemplo
Diagrama de clases UML

extends extends

29
Java: Herencia

Clase Persona
package ejemploherencia;

public class Persona {

private String nombre;


private int edad;

public String getNombre() {


return nombre;
}

public int getEdad() {


return edad;
}

public void setNombre(String nombre) {


this.nombre = nombre;
}

public void setEdad(int edad) {


this.edad = edad;
}

@Override
public String toString() {
return "Persona{" + "nombre=" + nombre + ", edad=" + edad + '}';
}
}
30
Java: Herencia

Clase Profesor
package ejemploherencia;

public class Profesor extends Persona{

private String profesion;

public String getProfesion() {


return profesion;
}

public void setProfesion(String profesion) {


this.profesion = profesion;
}

31
Java: Herencia

Clase Estudiante
package ejemploherencia;

public class Estudiante extends Persona{

private String nombreCarrera;

public String getNombreCarrera() {


return nombreCarrera;
}

public void setNombreCarrera(String nombreCarrera) {


this.nombreCarrera = nombreCarrera;
}

@Override
public String toString() {
return "Estudiante{" + "nombreCarrera=" + nombreCarrera + '}';
}

32
Java: Herencia

Clase Ejemplo Herencia


package ejemploherencia;

public class EjemploHerencia {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {

Estudiante estudiante1 = new Estudiante();


estudiante1.setNombre("Ana");
estudiante1.setEdad(12);
System.out.println("Estudiante: ");
System.out.println(estudiante1);

Profesor profe1 = new Profesor();


profe1.setNombre("Luis");
profe1.setEdad(28);
System.out.println("\nProfesor: ");
System.out.println(profe1);
}

33
Interfaces gráficas Java
GUI – Grafical User Interface
Usando el paquete swing

34
Java: GUI Java

¿Cómo se crea una GUI en Java?

• Una de las formas es utilizando las clases del paquete


swing de Java.
• El nuevo formulario o GUI que se cree debe heredar
(extends) de JFrame.
• Esto hace que la clase hija que hereda de la superclase
JFrame, se comporte como un contenedor de componentes
de GUI.

35
Java: GUI Java

Ejemplo 1
package miprimerformulario;

import javax.swing.JFrame;

public class MiPrimerFormulario extends JFrame{

public MiPrimerFormulario() {
setLayout(null);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
MiPrimerFormulario formulario1=new MiPrimerFormulario();
formulario1.setBounds(10,20,700,400);
formulario1.setVisible(true);
}

• setBounds  Para definir la ubicación inicial de la interfaz


(en el ejemplo 10, 20) y el tamaño de la misma (700,400).
• setVisible(true)  Para abrir el formulario. Si se coloca como
false, no se abriría nada al ejecutar el programa.
36
Java: GUI Java

Ejemplo
Una vez que se ejecuta el anterior ejemplo, aparece una
ventaja con las dimensiones indicadas (700,400) en la parte
superior izquierda así:

700

400

37
Java: GUI Java

package miprimerformulario;
Ejemplo 2
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.border.Border;

public class MiPrimerFormulario extends JFrame implements ActionListener {

//Panels
JPanel panelSuperior = new JPanel();
JPanel panelCentral = new JPanel();
JPanel panelInferior = new JPanel();

//Cajas de texto
JTextField campoTxtAreaIzq = new JTextField();
JTextField campoTxtAreaDer = new JTextField();

//Áreas de texto
JTextArea txtAreaIzquierda = new JTextArea("Texto por defecto area izquierda");
JTextArea txtAreaDerecha = new JTextArea("Texto por defecto area derecha");

//Botones
JButton btnEnviarAreaIzq = new JButton("Enviar");
JButton btnEnviarAreaDer = new JButton("Enviar");

//Etiquetas
JLabel lblNombre = new JLabel("Nombre");
JLabel lblApellido = new JLabel("Apellido");
JLabel lblEdad = new JLabel("Edad");

//Constructor de la clase
public MiPrimerFormulario() {

//En el panel superior se crea un Layout de 1 fila y 2 columnas


panelCentral.setLayout(new GridLayout(0, 2));

//Linea negra para el borde de las areas de texto


Border lineaNegra = BorderFactory.createLineBorder(Color.black);
txtAreaIzquierda.setBorder(lineaNegra);
txtAreaDerecha.setBorder(lineaNegra);

//colocando el color de fondo para las areas de texto


txtAreaIzquierda.setBackground(Color.WHITE);
txtAreaDerecha.setBackground(Color.WHITE);

//se agrega primero el txtAreaIzquierda para que quede a la izquierda


panelCentral.add(txtAreaIzquierda);

//luego se agrega de segundo el txtAreaDerecha para que quede a la derecha


panelCentral.add(txtAreaDerecha);

//En el panel inferior se crea un Layout de 1 fila y 4 columnas


//para agregar un campo de texto para cada area de texto
panelInferior.setLayout(new GridLayout(1, 4));
//Agregando el boton al panelInferior
panelInferior.add(campoTxtAreaIzq);
panelInferior.add(btnEnviarAreaIzq);
panelInferior.add(campoTxtAreaDer);
panelInferior.add(btnEnviarAreaDer);

//Se añaden los dos paneles a la ventana principal


add(panelSuperior, BorderLayout.NORTH);
//el panel superior en la ubacion CENTER
add(panelCentral, BorderLayout.CENTER);
//el panel inferior en la ubicacion SOUTH
add(panelInferior, BorderLayout.SOUTH);

btnEnviarAreaIzq.addActionListener(this);
btnEnviarAreaDer.addActionListener(this);

public static void main(String[] ar) {


MiPrimerFormulario formulario1 = new MiPrimerFormulario();
//Se define la posición y tamaño de la ventana principal
formulario1.setBounds(200, 200, 500, 300);
//En el frame o ventana principal se hace visible
formulario1.setVisible(true);
}

public void actionPerformed(ActionEvent e) {


if (e.getSource() == btnEnviarAreaIzq) {
//En el area de texto de la izquierda se coloca lo que haya en el campo de texto de la izquierda
txtAreaIzquierda.setText(campoTxtAreaIzq.getText());
}
if (e.getSource() == btnEnviarAreaDer) {
//En el area de texto de la derecha se coloca lo que haya en el campo de texto de la derecha
txtAreaDerecha.setText(campoTxtAreaDer.getText());

}
}
}

38
Técnicas de programación 1

¡GRACIAS!

39

También podría gustarte