[ Foro de Java ]

Novato total ayuda basica

19-Jan-2016 13:54
Invitado (Sitoriu)
1 Respuestas

Hola y gracias de antemano.

Estoy empezando a programa en java y quiero realizar un supuesto donde tengo UN solo archivo Java (ordenador.Java), que adjunto.

Desde la clase Ordenador, llamo a otras 4 clases que representan los componentes del mismo: Pantalla, Discoduro, memoria y Procesador

Al final de esas 4 clases llamo al método main para que lo ponga todo en marcha.

Sin embargo, desilusion tremenda, me dice que: "no se ha encontrado el método principal en la clase ordenador.Ordenador, defina el método principal del siguiente modo:\n   public static void main(String[] args)", sin embargo está al final del fichero. ¿es una cuestión de posición en el fichero?, ¿hay que almacenarlo de forma independiente??

Os pego el código :

 
package ordenador;
 
public class Ordenador {
 
    private Pantalla Screen;
    private Procesador Cpu;
    private Memoria Memoria;
    private DiscoDuro Disco;
 
    public Ordenador(Pantalla pantalla, Procesador cpu, Memoria memoria, DiscoDuro disco) {
 
        Screen = pantalla;
        Cpu = cpu;
        Memoria = memoria;
        Disco = disco;
 
    }
 
    public void setScreen(Pantalla screen) {
 
        Screen = screen;
    }
 
    public Procesador getCpu() {
 
        return Cpu;
    }
 
    public void setCpu(Procesador cpu) {
 
        Cpu = cpu;
    }
 
    public Memoria getMemoria() {
 
        return Memoria;
    }
 
    public void setMemoria(Memoria memoria) {
 
        Memoria = memoria;
    }
 
    public DiscoDuro getDisco() {
 
        return Disco;
    }
 
    public void setDisco(DiscoDuro disco) {
 
        Disco = disco;
    }
 
    public void mostrar() {
 
        System.out.println("CARACTERISTICAS DEL ORDENADOR");
        Screen.mostrar();
        Cpu.mostrar();
        Disco.mostrar();
        Memoria.mostrar();
    }
}
 
/*Los 4 atributos que existen que son objetos de las clases, pueden tener sus 
metodos de acceso y modificación, cada una de estas clases tienen sus propios 
metodo mostrar de tal manera que el mostrar de la clase ordenador sea un 
agregado (Suma o resultado total) de los equivalentes de los atributos.
 
/*
 
Para las cuatro clases restantes no se implementaran los métodos de acceso y 
y modificación pero si mantendran el constructor y el método mostrar.
 
Los atributos tendran el tipo de datos más lógico dad la información a almacenar
definiendose privados para evitar el acceso desde el exterior de la clase.
 
Para almacenar los valores emplamos float en lugar de double que ocupa menos 
espacio en memoria, pero dado que double es el valor por defecto, convertimos a
float el valor asignado.
 
 */
public class Pantalla {
 
    private float Pulgadas;
    private String Resolucion;
 
    public Pantalla(float pulgadas, String resolucion) {
 
        Pulgadas = pulgadas;
        Resolucion = resolucion;
 
    }
 
    public void mostrar(){
 
        System.out.println();
        System.out.println("PANTALLA");
        System.out.println("Pulgadas :: " + Pulgadas);
        System.out.println("Resolución :: " + Resolucion);
 
    }
 
}
 
public class DiscoDuro {
 
    private int Velocidad;
    private int Capacidad;
    private float TiempoAcceso;
 
    public DiscoDuro(int velocidad, int capacidad, float tiempoAcceso) {
 
        Velocidad = velocidad;
        Capacidad = capacidad;
        TiempoAcceso = tiempoAcceso;
 
    }
 
    public void mostrar() {
 
        System.out.println();
        System.out.println("DISCO DURO");
        System.out.println("Velocidad :: " + Velocidad + " rpm");
        System.out.println("Capacidad :: " + Capacidad + " Gb");
        System.out.println("Tiempo de Acceso :: " + TiempoAcceso + " ms");
 
    }
 
}
public class Procesador {
 
    private int Nucleos;
    private float Velocidad;
    private int Bits;
 
    public Procesador(int nucleos, float velocidad, int bits) {
 
        Nucleos = nucleos;
        Velocidad = velocidad;
        Bits = bits;
 
    }
 
    public void mostrar() {
 
        System.out.println();
        System.out.println("PROCESADOR");
        System.out.println("Nucleos :: " + Nucleos);
        System.out.println("Velocidad :: " + Velocidad + " GHz");
        System.out.println("Bits :: " + Bits);
    }
}
 
public class Memoria {
 
    private int Tamanyo;
    private String Tecnologia;
    private int Velocidad;
 
    public Memoria(int tamanyo, String tecnologia, int velocidad) {
 
        super();
        Tamanyo = tamanyo;
        Tecnologia = tecnologia;
        Velocidad = velocidad;
 
    }
 
    public void mostrar() {
 
        System.out.println();
        System.out.println("MEMORIA");
        System.out.println("Tamaño :: " + Tamanyo + "Gb");
        System.out.println("Tecnología :: " + Tecnologia);
        System.out.println("Velocidad :: " + Velocidad + "Mhz.");
 
    }
 
}
 
/*
 
Ahora vamos a definir una clase Lanzadera que ponga en marcha las 5 clases anteriores
 
Esta clase será el punto de entrada al programa por lo que dispondrá del método main.
 
 */
 
public class Lanzadera{
 
    public static void main(String[] args) {
 
        Pantalla pantalla = new Pantalla(21, "1920x1080");
 
        DiscoDuro disco = new DiscoDuro(5400, 2000, (float) 5.55);
 
        Procesador cpu = new Procesador(4, (float) 2.4, 64);
 
        Memoria memoria = new Memoria(8, "DDR3", 800);
 
        Ordenador ordenador = new Ordenador(pantalla, cpu, memoria, disco);
 
        ordenador.mostrar();
    }
 
}
 


 


25-Jan-2016 23:36
Nacho Cabanes (+31)

Si están en un mismo fichero, las clases no deben ser "public", salvo la que contiene "main" (en tu caso, "Lanzadera").

Además, el programa se debe llamar igual que esa clase (Lanzadera.java).






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)