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
483 visualizaciones desde el 9 de Mayo del 2017
1,9 MB
5 paginas
Creado hace 8a (02/02/2012)
Programación orientada a

objetos

Curso INEM. Programación en Java

Santiago Muelas Pascual

smuelas@fi.upm.es



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
Es necesario revisar y aceptar las políticas de privacidad