Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Unidad I.IV –
Clases
Clase
+ Es un TAD (tipo de dato abstracto) definido por el programador
que agrupa datos (campos o variables) y métodos
(operaciones) que manipulan dichos datos.
+ Los miembros de la clase son: los datos que definen las
características comunes a todos los objetos de esa clase, los
métodos que manipulan dichos datos.
+ Una clase es simplemente un modelo o plantilla que se utiliza
para describir uno o más objetos del mundo real con similares
atributos y comportamiento.
Ejemplo de clase
CLASE O DATOS O CARACTERÍSTIC OPERACIONES
TIPO DE VARIABLES AS O ATRIBUTOS O MÉTODOS
OBJETO
- Descripción Televisor Smart crear_nuevo( )
PRODUCTO TV 2015 Tizen editar_datos( )
ver_datos( )
- Tamaño 32 pulgas dar_de_baja( )
encender( )
- Marca Samsung
- Color Gris apagar( )
almacenar( )
- Modelo UE40JU7500
- Costo $800
- Cantidad 5
Clase en UML
7
10
Tipos de Constructores
+ Constructor vacío o por defecto: Este constructor no recibe
parámetros. Se debe proporcionar en el código valores iniciales
según los tipos de datos de la clase.
//Constructor vacío
public Persona(){ }
//constructor por defecto que inicializa los datos
public Persona(){
this.cedula = ".....";
this.nombre=".....";
this.apellido=".....";
this.sexo=' ';
this.edad=0;
}
11
Tipos de Constructores
+ Constructor común u ordinario: Es el constructor que recibe
como parámetros datos primitivos y/o referencias de clase.
//Parametros
public Persona(String ced,String nom,String ape, char
sex,int eda)
{
this.cedula = ced;
this.nombre=nom;
this.apellido=ape;
this.sexo=sex;
this.edad=eda;
}
12
Tipos de Constructores
+ Constructor copia: Es el constructor que recibe como
parámetros un objeto de la misma clase del cual se realiza una
copia exacta de sus datos.
//constructor copia
public Persona(Persona p){
this.cedula =
p.cedula; this.nombre=
p.nombre;
this.apellido=
p.apellido; this.sexo=
p.sexo;
this.edad= p.edad;
}
13
14
Objeto
+ Es una entidad que contiene unos atributos o características
particulares (datos) y un comportamiento que representa la
forma de operar sobre dichos datos (métodos).
+ Es una instancia de una clase.
+ Un objeto además de un estado interno, presenta una interfaz
(métodos públicos) para poder interactuar con el exterior.
16
Objeto
+ Los elementos de un objeto son:
+ Identidad: identificador o nombre del objeto.
+ Tiempo de vida: los objetos son creados mediante la
instanciación, y cuando dejan de existir son destruidos.
+ Estado: Todo objeto posee un estado, definido por sus atributos
y los valores que almacenan.
+ Comportamiento: Todo objeto presenta una interfaz, definida
por sus métodos, para que el resto de objetos pueden
interactuar con él.
17
Objeto
18
Objeto
19
Instanciación de Objetos
+ Declaración de una referencia a un objeto de la clase Persona:
Persona p;
Instanciación de un objeto de la clase Persona, el operador
new asigna memoria al objeto y retorna una referencia a
dicho objeto y lo asigna a p.
p=new Persona("0603100533","Juan","Perez",’M’,20);
20
21
22
23
25
Ejercicio Practico #2 Numero
26
Unidad I.V
Encapsulamiento
Joffre Cartuche Calva
Encapsulamiento
+ Es la propiedad de ocultar los datos abstraídos y aislarlos o
protegerlos de quién no se desee que tenga acceso a ellos;
asegura que los aspectos externos de un objeto se
diferencien de sus detalles internos.
+ Para poder encapsular los datos es necesario utilizar los
miembros de visibilidad de una clase protected y private y
sus respectivos métodos get y set.
28
Encapsulamiento
29
Encapsulamiento
protected String cedula;
private String nombre;
public String getCedula() {
return cedula;
}
public void setCedula(String ced) {
this.cedula = ced;
}
30
Unidad I.VI
Herencia, clases abstractas e interfaces
Joffre Cartuche Calva
Objetivos
32
Herencia
+ La herencia permite definir nuevas clases denominadas
“derivadas, hijas o subclases”, a partir de clases ya existentes,
llamadas “base, padre o superclase”. De esta manera los objetos
pueden construirse en base a otros objetos ya creados.
+ La “herencia” o “derivación de clases” es el mecanismo para
compartir automáticamente los métodos y datos de la "clase
base", añadiendo otros nuevos a las “clases derivadas”. Es decir,
la herencia impone una organización jerárquica entre clases,
permitiendo que los datos y métodos de una clase sean
heredados por sus descendientes.
33
Herencia
+ La herencia o derivación de clases se expresa en Java utilizando
el término reservado extends, como se muestra en el siguiente
ejemplo.
34
Herencia
+ Si una clase se deriva de una sola clase, la herencia se denomina
“herencia simple” y, si la clase se deriva de más de una clase, la
herencia se denomina “herencia múltiple”.
35
Ventaja de la herencia
+ Reutilización de código, las clases debidamente creadas y
verificadas, pueden reutilizarse en otros programas, ahorrando
tiempo y esfuerzo en el nuevo desarrollo. Las clases pueden
agruparse en paquetes, librerías o bibliotecas para facilitar su
distribución.
+ Creación de programas extensibles, Un programa diseñado
en torno al “polimorfismo” es fácil de mantener y ampliar
36
37
Polimorfismo
+ Se refiere al hecho de que un método de una clase padre (normal
o abstracta) o interface posea definiciones diferentes en clases
derivadas que las hereden o implementen.
+ Es el mecanismo de definir un mismo método en varios objetos de
diferentes clases pero con distintas formas de implementación.
+ Posibilidad de construir varios métodos con el mismo nombre,
pero con relación a la clase a la que pertenece cada uno, con
comportamientos diferentes.
38
Polimorfismo
39
Polimorfismo
//método Imprimir de la clase Persona
public String Imprimir(){
return this.Cedula + "\t" + this.Nombres + "\
t" + this.Apellido + "\t" + this.Edad + "\t" +
this.Sexo;}
//redefinición del método Imprimir Trabajador debe estar
con Override
@Override
public String Imprimir(){
return this.getCedula()+ "\t"+ this.getNombres()+ "\
t"+ this.getApellido() + "\t" + CalcularSueldo() ; }
40
Clases Abstracta
+ Una clase abstracta permite declarar prototipos de métodos
comunes en una sola clase sin tener que implementar su código.
Características:
+ Los métodos abstractos contienen sólo su declaración o prototipo
(nombre y parámetros). La responsabilidad de implementar su
código se delega a las clases derivadas.
+ Una clase que declare al menos un método abstracto es
considerada como clase abstracta.
+ No es posible crear instancias (objetos) de una clase abstracta.
Sin embargo, es posible crear referencias.
41
Clases Abstracta
+ Cualquier subclase que extienda a la clase abstracta debe
implementar el código de los métodos abstractos.
Clases Abstracta
public abstract class Figuras {
private doubleX;
private doubleY;
public Figuras()
{
}
public Figuras(doublea, doubleb) {
this.X=a;
this.Y=b;
}
public double getX(){
returnX;
}
public void setX(doubleX){ this.X=X;
}
public double getY(){
returnY;
}
public void setY(doubleY){ this.Y=Y;
}
public abstract double Area(); }
43
Clases Abstracta
public class Cuadrado extends Figuras {
private double Lado;
public Cuadrado()
{}
public double getLado() {
return Lado;
}
44
Clases Abstracta
public class Circulo extends Figuras{ private double Radio;
public Circulo()
{}
45
Interfaces
+ Una interface comprende un grupo de prototipos de métodos
públicos sin implementar código, de similar forma que los
prototipos de métodos de las clases abstractas. Además, se
puede declarar constantes con visibilidad public, static y final
con su respectiva inicialización de datos.
+ Los métodos de una interfaz representan un comportamiento
común de un grupo de objetos de varios tipos de clases y que no
necesariamente forman parte de una misma jerarquía.
46
Interfaces
public interface
Figuras {
public double
Area(); }
47
Interfaces
public class Cuadrado
implements Figuras{
private double Lado;
public Cuadrado()
{}
public double getLado(){
return Lado;
}
public void setLado(double Lado){
this.Lado= Lado;
}
public Cuadrado(doublec)
{
this.Lado=c;
}
@Override
public double Area(){
return Lado * Lado;
}
}
48
49
50
51