PDF de programación - Curso de Programación en Java - Programación orientada a objetos

Imágen de pdf Curso de Programación en Java - Programación orientada a objetos

Curso de Programación en Java - Programación orientada a objetosgráfica de visualizaciones

Publicado el 9 de Mayo del 2017
951 visualizaciones desde el 9 de Mayo del 2017
1,9 MB
5 paginas
Creado hace 12a (02/02/2012)
Programación orientada a

objetos

Curso INEM. Programación en Java

Santiago Muelas Pascual

[email protected]



Repaso

! Clase
! Objeto
! Atributo o variable de instancia
! Método
!
!   Constructor

Instanciar/crear un objeto

! Operador .
!   this
! Referencias
! Sobrecarga

Cohesión y acoplamiento

Ocultación de la información

!   Cohesión: Grado de relación entre las diferentes características de

un objeto
!   Objeto con una función muy bien definida: muy cohesionado
!   Objeto con muchas funciones no relacionadas: poco cohesionado
!   Acoplamiento: Grado de dependencia entre los diferentes objetos

!   Programa en el que todas las clases tienen funciones distintas y

definidas: Poco acoplado

!   Programa en el que todas las clases participan en todas las tareas

Muy acoplado

!   Se debe maximizar la cohesión de cada objeto y minimizar el

acoplamiento entre clases distintas

!   El acceso directo a tributos no es recomendable porque revela

la estructura interna del objeto
!   Los métodos definen cómo se debe usar un objeto
!   Permitir el acceso a los atributos es dar “vía libre” a manipular

su estado sin control

!   Nos limita la posibilidad de modificar la implementación

!   En su lugar se deben definir métodos que, de forma genérica,

modifiquen el estado de acuerdo a consideraciones
semánticas

!   Se debe prohibir el acceso a los atributos

!   Modificadores de la visibilidad

Visibilidad/Control de acceso

Visibilidad/Control de acceso

!   Puede (y suele) haber distintos niveles de visibilidad para los

miembros (atributos y métodos) de una clase.

!   Existen cuatro tipos de modificadores:

! public: se puede acceder desde cualquier lugar
! private: sólo se puede acceder desde la propia clase
! protected: sólo se puede acceder desde la propia clase o desde

una clase que herede de ella
!   Se verá más en detalle en el tema de herencia

!   Por defecto (package): Se puede acceder desde las clases

pertenecientes al mismo paquete
!   Se verá más adelante

public class Coche {
private String color;
public void ponColor(color) {
this.color = color;
}
public static void main(String[] args) {
Coche c = new Coche();
c.ponColor(“ROJO”);
c.color = “VERDE”;
}
}

2/2/12
 

1
 

Visibilidad/Control de acceso

Métodos get y set

public class Coche {
private String color;
public void ponColor(color) {
this.color = color;
}
public static void main(String[] args) {
Coche c = new Coche();
c.ponColor(“ROJO”);
c.color = “VERDE”; // ERROR!!!
}
}

! Convenio para acceder a atributos con visibilidad privada
! Método Get

! Devuelve el valor de una variable

! Método Set

! Modifica el valor de una variable

!   El uso indiscriminado elimina las ventajas de la ocultación

de la información.

Métodos get y set

Métodos get y set

public class Coche {
private String color;
public void setColor(color) {
this.color = color;
}
public String getColor() {
return color;
}
}

! Convenio para acceder a atributos con visibilidad privada
! Método Get

! Devuelve el valor de una variable

! Método Set

! Modifica el valor de una variable

!   El uso indiscriminado elimina las ventajas de la ocultación

de la información.

Métodos estáticos o de clase

!   Muchas veces nos hacen faltan métodos que no necesiten de

un objeto para ser llamados. Ej: Math.sqrt()
!   Métodos estáticos

!   Tienen el modificador static delante de la declaración
!   Se invocan dentro de un método o por medio del

identificador de la clase
! Ej: MiClase.miMetodo(1,2,3); Math.sqrt(4.0);

static tipo nombreMetodo(parametros) {
}

Atributos estáticos o variables de

clase
!   Variables comunes a todos los objetos
!   Una sóla instancia/copia por clase
! Ej: Clase Coche Toyota Corolla

!   Nº ventanas, dimensiones, …

!   Tienen el modificador static delante de la declaración de la variable
!   Se acceden por medio de su nombre dentro de un método de la
propia clase o por medio del Nombre de la clase y el operador
punto (Ej: Clase.nombrevariable = 44);

!   Se pueden inicializar con un valor

class Perro {
static int perros = 0;
};

2/2/12
 

2
 

Ejemplo

Ejercicio

!   Utilizando la clase Perro, crea una variable para contabilizar

el número de objetos Perro que se han creado.

!   Crea el método estático getNPerros para visualizar el valor

de esta variable

!   Prueba el método con el siguiente ejemplo del método main:



public static void main(String[] args) {
Perro miperro = new Perro(“Pancho”,1);
Perro otro = new Perro(“Friki”,2);
System.out.println(“Se han creado “ + Perro.getNPerros() + “ perros”);
}

Recolector de basura

!   Cada objeto que se crea consume una cantidad de memoria
!   Hay que evitar que se produzcan pérdidas de memoria
!   La máquina virtual tiene un mecanismo llamado recolector
de basura que se activa cada cierto tiempo para recuperar la
memoria de los objetos que no se estén utilizando

!   Cuando no hay ninguna referencia hacia un objeto, este se

marca para ser recogido por el recolector
!   Puede detectar islas de referencias

¿Por qué el método main es

estático?

!   Cuando se ejecuta la máquina virtual con el mandato java se
intenta ejecutar al método main de la clase que se especifique

!   Declarando el método como static permite que la máquina

virtual lo llame sin tener que crear un objeto

Modificador final

Ejemplo

!   Para definir constantes

! Sólo puede ser inicializadas una vez

! Pueden ser inicializadas al ser declaradas o en el constructor
!   Si la constante es común para todos los objetos, se utiliza una

variable de clase

!   Se suelen utilizan mayúsculas para definir el nombre

Ej: static public final double PI = 3.1416;

public class Incremento {
private int total = 0;
private final int INCREMENTO;
public Incremento(int valor){
INCREMENTO = valor;
INCREMENTO = 3;
}
public void anyadirIncremento() {
total += INCREMENTO;
}
}

2/2/12
 

3
 

2/2/12
 

Ficheros

!   El código de una clase pública se encuentra en un

fichero .java

!   El nombre del fichero coincidirá con el nombre de la clase
! Excepción:

!   En un fichero podría haber varias clases, si sólo una de ellas es

public y el resto clases auxiliares

Ejemplo

public class Incremento {
private int total = 0;
private final int INCREMENTO;
public Incremento(int valor){
INCREMENTO = valor;
INCREMENTO = 3; // ERROR
}
public void anyadirIncremento() {
total += INCREMENTO;
}
}

Paquetes

Módulos

!   Los paquetes contienen a un conjunto de clases relacionadas
!   Los paquetes ayudan a manejar la complejidad de las

aplicaciones

! Facilitan la reutilización del SW permitiendo a los

programas el importar clases de otros paquetes

!   En Java hay tres tipos de módulos:

!   Métodos
!   Clases
!   Paquetes

!   El API (Application Programming Interface) de Java ofrece

varios módulos

Paquetes

Paquetes

! Puede haber más de una clase en el mismo fichero fuente
!   … pero sólo una puede ser pública y debe coincidir en

nombre con el fichero

!   Lo habitual suele ser tener una clase por cada fichero fuente

!   El paquete al que pertenece una clase se indica al comienzo

del fichero

! Una clase sólo puede pertenecer a un paquete

package ejemplo;

public class {…

4
 

Paquetes

Importar clases

!   Se pueden organizar los paquetes de forma jerárquica

package ejemplo.objetos;

!   Para usar una clase que está en distinto paquete:

!   Se puede importar la clase entera
!   Se pueden realizar llamadas utiliando nombrepaquete.loquesea

!   Se puede importar un conjunto de clases
!   O una clase concreta

import ejemplo.*;

import ejemplo.Concreto;

Ejemplo NetBeans

Visibilidad/Control de acceso

! Creación de paquetes
! Refactorización de paquetes

!   Puede (y suele) haber distintos niveles de visibilidad para los

miembros (atributos y métodos) de una clase.

!   Existen cuatro tipos de modificadores:

! public: se puede acceder desde cualquier lugar
! private: sólo se puede acceder desde la propia clase
! protected: sólo se puede acceder desde la propia clase o desde

una clase que herede de ella
!   Se verá más en detalle en el tema de herencia

!   Por defecto (package): Se puede acceder desde las clases

pertenecientes al mismo paquete

2/2/12
 

5
  • Links de descarga
http://lwp-l.com/pdf3442

Comentarios de: Curso de Programación en Java - Programación orientada a objetos (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad