Programación orientada a Objetos & JAVA

Introducción a JAVA
-
Partimos de la suposición de que se viene de c++.
-
La sintaxis es parecida.
-
En java TODO son objetos.
-
Declaración de variable: Se irá viendo en los ejemplos.
-
Sentencias de condición (if, else if), al estilo C++, en los ejemplos se muestra.
-
Sentencias de control (while, for, ), al estilo C++, en los ejemplos se muestra.
-
Arrays, se dispone de diferentes objetos que los representan (ArrayList, etc), o se pueden hacer como en C. (se verán ejemplos)
JAVA - Conceptos Clave
-
Package: Un package es una agrupación de clases afines. Equivale al concepto de biblioteca (library) existente en otros lenguajes o sistemas. Físicamente representan una carpeta.
-
Herencia: Se da en OO.
-
Se ejecuta sobre máquina virtual
-
TODO SON OBJETOS!!!!
Orientación a objetos
-
Hasta ahora: encapsulamos código en funciones.
-
OO encapsula conceptos en clases: personas,
trabajadores, vehículos...
-
Una clase define:
-
Variables que describen el concepto: Atributos.
-
Funciones para manipular dicho concepto: Métodos .
-
Orientación a objetos (Ejemplo)

Orientación a objetos(Acceso)
-
Podemos acceder a los atributos públicos de la siguiente manera:
import paquete.Vehiculo;
Vehiculo vi = new Vehiculo();
vi.numRuedas = 2;
System.out.println (vi.numRuedas); -
Podemos acceder a los métodos de igual forma: vi.avanza();
Orientación a objetos (visibilidad de los atributos)

Orientación a objetos (Acceso 2)
public class Vehiculo {
protected int numRuedas;
private String numCarroceria;
public String getNumCarroceria() {
return this.numCarroceria;
}
public void setNumCarroceria(String carr) { this.numCarroceria = carr;
}
}
Vehiculo veh = new Vehiculo(); veh.setNumCarroceria(“13354a-X”); System.out.println(veh.getNumCarroceria());
Mediante métodos públicos (get/set) accedemos a atributos privados:
Orientación a objetos(métodos)
También podemos definir la visibilidad de los métodos
class Vehiculo{
private String numCarroceria;
public String setNumCarroceria (String numCarroceria){
if (this.checkNumCarroceria(numCarroceria)) return false; else {
this.numCarroceria = numCarroceria; return true;
}
}
private function checkNumCarroceria(String numCarroceria){
return numCarroceria.isEmpty(); }
}
Vehiculo veh = new Vehiculo();
veh.checkNumCarroceria(“23213-ax”); // Error
veh.setNumCarroceria(“”); // Devolverá false
Orientación a objetos (constructores)
- Para crear una instancia de la clase y dar valores iniciales a sus atributos
- Existe en todas las clases (aunque no se defina explícitamente)
- Se puede crear una instancia de la clase con valores iniciales.
public Vehiculo(int a, String b) {
numRuedas = a;
numCarroceria = b;
}
Vehiculo veh = new vehiculo(4, “1234-ax”); // Vehículo de 4 ruedas
Orientación a Objetos (Herencia)
- Nos permite reutilizar código
- Especialización de un concepto
- La heredera recibe los atributos y métodos del padre (públicos y protegidos)
class coche extends vehiculo {
protected int numPuertas;
}
Class moto extends vehiculo {
protected String manillar;
}
/* Heredan numRuedas, numCarroceria y la función
avanza() */

Orientación a Objetos (Polimorfismo)

Orientación a objetos (Polimorfismo)

Ejercicio

Java + POO
By Joan Barroso Garrido
Java + POO
- 825