Veamos, un amigo y profesional en java me hizo el comentario " ...de que los que venís viciados de otros lenguajes de programación como Basic o Dbase, os cuesta mas..." y me he dado cuenta que tiene toda la razón.
Ha llegado un punto en mis estudios en el que no consigo salir de la clase principal, public static void, y el metodo main. Tengo claro el resto, if, for, while, arrays, excepciones, listas, pilas, variables, etc, etc... pero mi problema es que nada consigue hacerme entender el siguiente caso:
¿Para que sirve una clase heredada?
¿Como se estructura?
¿Y en que situaciones me va a hacer falta utilizarlo?
No le encuentro el sentido a una clase dentro de otra, ¿ no se puede ir saltando de función en función simplemente?, no es cuestión de falta de conocimientos es cuestión de que intentéis metermelo en la cabeza con algún ejemplo gráfico o unas cuantas líneas de código con un simple System.out.println o no se como... pero es imperiosa la necesidad de entenderlo para continuar con mis estudios.
Pasteo un ejercicio que estoy haciendo con el tema de las clases heredadas, por favor no le presteis atención a los this ni a los if ni a las declaraciones de variables, ni nada de eso, lo tengo claro. Que alguien me explique ¿que hace "leches" hace esa clase dentro de otra clase? y que sentido tiene o que parte del libro me he saltado.
Estoy en un punto en el cual no se ni donde empieza la clase principal y solo veo un conglomerado de clases revueltas con funciones sin orden alguno. El ejercicio está sacado de un libro.
Agradecido de antemano
public class Coche {
private final String modelo;
private final String matricula;
private final String color;
private final Cliente cliente;
public Coche(final String modelo, final String matricula, final String color, final String nombre, final String apellidos) {
this.modelo = modelo;
this.matricula = matricula;
this.color = color;
this.cliente = new Cliente(nombre, apellidos);
}
public String getCliente() {
return cliente.datosCliente();
}
public String getDatosCoche() {
return modelo + color + matricula;
}
private static class Cliente {
private final String nombre;
private final String apellidos;
Cliente(final String nombre, final String apellidos) {
this.nombre = nombre;
this.apellidos = apellidos;
}
public String datosCliente() {
return nombre + apellidos;
}
}
public static void main(String[] args) {
Coche coche = new Coche("Renault", "1400BWN", "Blanco", "Perez " Muñoz");
System.out.println(" Datos del coche " + coche.getDatosCoche());
System.out.println(" Datos del cliente " + coche.getCliente());
}
}