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
429 visualizaciones desde el 9 de Mayo del 2017
2,3 MB
7 paginas
Creado hace 8a (31/01/2012)
1/31/12
 

Introducción

!   ¿Qué es la POO?

!   Un paradigma de programación

!   Un paradigma es una forma de afrontar la construcción

código software
!   No hay paradigmas mejores ni peores
!   Todos tienen sus ventajas e inconvenientes

!   Hay distintos paradigmas: POO, Estructurado, Funcional,

Lógico, etc.

Programación orientada a

objetos

Curso INEM. Programación en Java

Santiago Muelas Pascual

smuelas@fi.upm.es



Características de la POO

Elementos de la POO

!   Facilidad de diseño y relación con el mundo real
!   Reusabilidad y facilidad de mantenimiento
!   Del lenguaje máquina hacia el mundo real
!   Sistemas más complejos

!   Abstracción
!   Trabajo en equipo

!   Objetos: Elementos que interactúan entre sí para conseguir

un fin
!   Autónomos
!   Con una funcionalidad concreta definida
!   Instancias de una clase

!   Clases:

!   Especificación de un conjunto de elementos

!   Todo objeto pertenece a una clase

Objetos y clases

Objetos

!   Los objetos tienen propiedades que los distinguen

!   Comunes a todos los de su clase
!   Propias de cada uno

!   Los objetos representan los conceptos fundamentales del

programa
!   y de su interacción surge la funcionalidad

!   Los objetos interactúan entre sí por medio de mensajes



1
 

¿Como funciona un programa

orientado a objetos?

No hay
Buscar el

café
café

Comprar

café

Café

Cocina

Tienda

Resumen de objetos y clases

!   Clases

!   Representan conceptos o entidades significativas de un

problema

!   Se pueden ver como plantillas para definir elementos (objetos)

!   Objetos

!   Elementos con comportamiento definido en la clase y estado

concreto

!   Instancias de clase
!   Interactúan por medio de mensajes

Ejemplo

Otros conceptos importantes

!   Polimorfismo
!   Herencia
!   …



Se verán más adelante

UML

Declaración de clases

!   UML (Unified modeling language): Lenguaje unificado de

!   Una clase en Java debe ser declarada antes de poder ser

modelos

!   “Mapa” del código. No sirve para desarrollar sino para

describir

!   Se utilizan diagramas diferentes.

!   13 en UML 2.0

utilizada

class nombre {!
cuerpo de la clase!
}!

1/31/12
 

2
 

1/31/12
 

Atributos o variables de

instancia

!   Describen el estado interno de cada objeto concreto
!   Pueden ser:

!   Tipos básicos (int, boolean, char, etc.)
! Arrays de elementos
!   Otros objetos

tipo nombre_variable;

Cuerpo de la clase: atributos y

métodos

!   Estado: Describe la situación interna del objeto.
!   Existen varias formas de definir distintos estados
!   El estado distingue a los objetos de la misma clase

!   Cada uno tiene su estado

!   Son los atributos o variables de instancia

!   Comportamiento: Describe los servicios que proporciona

una clase lo que se puede hacer con ella).
!   Son los métodos



Métodos

Métodos

!   Definen el comportamiento de los objetos de una clase
!   Permiten acceder y modificar a los atributos
!   Devuelven (o no) un resultado
!   Pueden necesitar parámetros

tipo_retorno nombre (parámetros) {
código
}

!   Para promocionar la reusabilidad cada método debería estar

limitado a realizar un tarea muy concreta
!   El nombre de esa tarea tiene que expresar claramente la acción

del método

!   Un método que realiza una única tarea es más sencillo de

comprobar y de depurar que uno que realice varias

Métodos

Métodos

!   Permiten modularizar un programa separando sus tareas en

unidades auto contenidas

!   Ventajas:

!   Divide y vencerás
!   Reutilización
!   Evitar duplicidad

!   Facilita la depuración y el mantenimiento

!   En Java todo método tiene que pertenecer a una clase
!   El programa principal main es un método de una clase



!   Los objetos interactúan por medio de mensajes
!   Un objeto le pide a otro que realice una acción (ejecuta el

método X)

!   El objeto llamado realiza la acción pudiendo devolver un

resultado
!   puede no devolver nada

!   El objeto llamante no conoce los detalles de cómo se lleva a

cabo la acción

3
 

1/31/12
 

Esquema general

Uso de un método

Argumentos


a1


...


an


a2


Método


Valor de
retorno


Método(a1, ..., an)


resultado


Puede no
devolver un
resultado

!   Se invoca proporcionando valores a los argumentos de

llamada

!   El valor de retorno se devuelve por medio de un return
!   Se admiten métodos que no devuelvan nada

!   tipo void como tipo de retorno

!   Sólo con este tipo no es obligatorio usar la sentencia return

!   Los métodos admiten recursividad

Métodos y atributos

Ejemplo

•  Atributos

• 
raza: Bulldog
•  edad: 1 año
•  nombre: “Pancho”
•  …
•  Métodos
• 
ladra()
•  come()
•  duerme()
•  …

public class Perro {
// Atributos
String nombre;
int edad;
// Métodos
void ladra() {
System.out.println(“Guau”);
}
void cambiarNombre(String nuevonombre){
nombre = nuevonombre;
}
}

Creación de objetos

Acceso a atributos

! Por medio del operador new

! Por medio del operador .

NombreClase variable = new NombreClase();

!   Se le pueden pasar parámetros

! Método constructor

!  

lo veremos en las siguientes transparencias

variable.atributo;



! Dentro de un método no hace falta utilizar el operador . para

Ej: System.out.println(miPerro.nombre);

acceder a un atributo o variable de instancia

4
 

1/31/12
 

Llamada a métodos

Ejemplo

! Por medio del operador .

Ej: miPerro.ladra();

public class Perro {
String nombre;
public void ladra() {
System.out.println(“GUAU”);
}
public static void main(String[] args) {
Perro miperro = new Perro();
miperro.ladra();
}
}

Ejercicio

!   Utilizando la clase Perro mostrada anteriormente, crea un
objeto de la clase Perro y haz que su nombre (atributo de la
clase String) contenga al valor “Pancho”.

!   Imprime el atributo nombre
!   Crea el método dameNombre en la clase Perro que devuelva

el atributo nombre.

!   Imprime el resultado de llamar a este método.

Tipos primitivos vs tipos

referencia

!   Hasta ahora las variables podían ser del tipo:

! Tipos primitivos: int, double, char, …
! Tipo de una Clase: String, Perro, …
!   (arrays)

! Una variable de un tipo primitivo contiene exáctamente un

único valor del tipo especificado

!   Si no se le asigna un valor al declararla, se le asigna un valor

por defecto

Referencias

Referencias

!   Con la creación de objetos tenemos un nuevo tipo

!   Referencias

!   ¿Qué es una referencia?

!   Una identificador para acceder al objeto

!   Todas ocupan lo mismo

!   Pero identifican a objetos de un

tipo determinado (Perro, String,…)

!   Se utilizan para acceder a los atributos y llamar a los

métodos de un objeto

!   El valor por defecto es null

Perro miPerro = new Perro();!

miPerro.nombre = “Pancho”;!

Perro otroPerro = new Perro();!

otroPerro.nombre = “Friki”;!

!

miPerro = otroPerro;!

Pancho

Friki

5
 

Métodos habituales:

Constructor

!   Sirve para inicializar los atributos de un objeto al crearlo
!   Se utiliza el nombre de la clase
!   No devuelve nada por definición

NombreClase( parámetros ) {

}

Ejercicio

! Crea el constructor para la clase Perro de manera que reciba
un nombre y una edad y asigne esos valores a los atributos
correspondientes.

! Crea un objeto de la clase Perro con el nuevo constructor

Ejemplo

class Coche {
String color;
String modelo;

Coche( String uncolor, String unmodelo ) {
color = uncolor;
modelo = unmodelo;
}

public static void main(String[] args) {
Coche c = new Coche(“rojo”,”Clio”);
}

}

Métodos habituales:

Constructor

!   ¿Qué sucede si no declaramos un constructor?

!   Siempre tiene que existir

!   Se crea uno vacío por defecto
!   ¿Qué sucede en este ejemplo?

class Prueba {
Prueba(int a) {
}
public static void main(String[] args) {
Prueba c = new Prueba();
}
}

Inicialización de atributos o

variables de instancia

!   Para que los atributos de los objetos que se creen siempre

tomen el mismo valor

class Cuenta {
int saldo = 100;
}

La referencia this

!   Dentro de un método, la palabra reservada this representa a

la referencia al objeto actual

!   Lo pasa el compilador como el primer argumento implícito

de cada llamada de un método

!   Se utiliza implícitamente para hacer referencia tanto a los

atributos como a los métodos

!   También se puede utilizar de manera explícita

1/31/12
 

6
 

Ejemplo

Sobrecarga de métodos

public class Perro {
String nombre;
Perro(String nombre) {
this.nombre = nombre;
}
}

! Varias declaraciones de un método con el mismo nombre
! Distintas implementaciones en función de los parámetros

recibidos

!   Se puede aplicar al constructor

Sobrecarga: Ejemplo

Ejercicio

! Crea para la clase Perro mostrada anteriormente un método
ladra que imprima GUAU y otra versión sobrecargada que
imprima el parámetro de tipo String que reciba de entrada.

class Perro {
String nombre;
int edad;

Perro(String nombre, int edad) {
this.nombre = nombre;
this.edad = edad;
}

Perro(String nombre) {
this.nombre = nombre;
this.edad = 0;
}
}

Sobrecarga

!   Métodos con el mismo nombre pero con distinto parámetros

de entrada

!   ¡OJO! El tipo de retorno puede cambiar

!   Pero sólo si los parámetros de entrada son distintos
!   No puede haber dos métodos con el mismo nombre, los mismos

parámetros de entrada pero distinto tipo de salida.

1/31/12
 

7
  • Links de descarga
http://lwp-l.com/pdf3441

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