¿Qué es programar?
Decisión
Entrada
Salida
Cálculo
Repetición
Cálculo
Algoritmo particular
Input
Output
Conceptos
- Pseudocódigo (language-agnostic)
- Bug
- Depurar (Debugging)
Programador
(escribe)
Computador
(ejecuta)
Código fuente
(en un lenguaje)
Código máquina
Compilador
(compila)
Conceptos
- Bytecode
- JVM
Programador
Computador
Código fuente
(Java)
Código máquina
interpreta
Bytecode
(*.class)
Compilador "javac"
(compila *.java)
JVM
ejecuta
Instalación del Entorno de Desarrollo (IDE)
- Eclipse -
Pasos
- Descargar la distribución de la web de Eclipse
- Elegir la arquitectura adecuada a nuestro JRE
- 32 o 64 bits: comprobar con java -version
- Si no informa de 64 bits es 32
- 32 o 64 bits: comprobar con java -version
- "Instalarla": Descomprimir en lugar adecuado
- Configuraciones iniciales
- Asistente de contenido
- Idioma
- ¿Tema oscuro?
¡Hola Mundo!
public class Hola {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("!Hola Mundo!");
}
}
Elementos
- Clases (Hola) y Métodos (main)
- Sentencia: Una línea que hace algo (System.out...;)
- Bloques: encapsulan una o varias sentencias entre {}
- Comentarios (empieza por // o encerrado entre /*... */)
- Indentación: sangría que ayuda a leer el código
Métodos
Partes del método
- Modificadores: public static
- Cabecera:
- Resultado: void
- Declarador:
- Identificador (nombre): main
- Parámetros: (String[] args)
- Cuerpo: { bloque entre llaves }
public static void main(String[] args){
System.out.println("Hola Mundo");
}
Firma del método
La firma del método es su nombre y parámetros. No está permitido tener duplicados de firma en un mismo bloque/ámbito.
Si un método difiere de la firma de otro en los parámetros, se dice que está sobrecargado.
Métodos con retorno
- Hay que declarar el tipo del valor que se devolverá.
- Hay que usar la palabra reservada return para finalizar la ejecución y devolver el valor.
- Facilita la programación funcional.
public static double suma(double a, double b) {
double suma = a + b;
return suma;
}
public static double suma(double a, double b) {
return a + b;
}
Práctica
Dadas las coordenadas x e y del centro de una circunferencia (xc, yc) y de uno de sus puntos (xp, yp), debe implementar el cálculo del área de dicha circunferencia.
(xc, yc)
(xp, yp)
radio
Pitágoras
Clases
Clases
¿Qué ganamos con ellas?
- valores (atributos) agrupados
- que tienen relación entre ellos
- con un comportamiento (métodos) y
- con una protección adecuada (acceso)
MiClase
Otras
SubClase
hereda
Mundo
private
(no mod)
protected
public
package
Objetos
toString()
- Nos sirve para obtener un texto (String) que podemos entender y representa el objeto
- No tiene parámetros
- Todos los objetos tienen este método (miembro de la clase Object)
Object
Coche
Vehiculo
tiene toString()
implementado toString()
Pariente más cercano
Mínimo existirá éste método
"Abuelo"
"Padre"
"Hijo"
Operador ==
Las dos variables apuntan al mismo objeto.
equals(obj)
Las variables pueden apuntar a objetos distintos pero los trataremos como si fueran iguales.
miVariable1
miVariable2
(valor)
miVariable1
miVariable2
Igualdad
Interfaces
Ejemplo jerarquía
Producto
id: String
nombre: String
descripción: String
Comerciable
getPrecio(): float
Identificable<T>
getId(): T
Nombrable
getNombre(): String
Coche
modelo: String
...
public List<Productos> catalogoVehiculos() { ... }
public boolean venderCoche(Coche coche, Cliente cliente) { ... }
// Para eliminar?
public List<VehiculoConRuedas> vehiculosDisponibles() { ... }
public String compararProducto(Coche coche1, Coche coche2) { ... }
Créditos
- Imagen Ojo.png: https://commons.wikimedia.org/wiki/File:Election-Sign-Of-Naya-Shakti-Nepal.jpg