¿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
  • "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

  1. Clases (Hola) y Métodos (main)
  2. Sentencia: Una línea que hace algo (System.out...;)
  3. Bloques: encapsulan una o varias sentencias entre {}
  4. Comentarios (empieza por // o encerrado entre /*... */)
  5. 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 = \sqrt {\Delta x^2 + \Delta y^2}

radio

area = \pi * radio^2

Pitágoras

\Delta x
\Delta y

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
Made with Slides.com