Foros del Web » Programación para mayores de 30 ;) » Java »

¡Expliquenme porque!

Estas en el tema de ¡Expliquenme porque! en el foro de Java en Foros del Web. public class seresvivos { protected String nombre; protected String apellidos; protected int edad; class humano extends seresvivos { public humano() {} public humano(String nombre,String apellidos,int ...
  #1 (permalink)  
Antiguo 09/03/2003, 13:03
 
Fecha de Ingreso: diciembre-2002
Ubicación: Cornella
Mensajes: 30
Antigüedad: 21 años, 4 meses
Puntos: 0
¡Expliquenme porque!

public class seresvivos
{
protected String nombre;
protected String apellidos;
protected int edad;
class humano extends seresvivos
{
public humano()
{}
public humano(String nombre,String apellidos,int edad)
{
nombre = nombre;
apellidos = apellidos;
edad = edad;
System.out.print(nombre);
System.out.print("\n");
System.out.print(apellidos);
System.out.print("\n");
System.out.print(edad);
System.out.print("\n");
}
}
class animal extends seresvivos
{
String especie;
public animal()
{}
public animal(String nombre,String apellidos,String especie,int edad)
{
nombre = nombre;
apellidos = apellidos;
edad = edad;
especie = especie;
System.out.print(nombre);
System.out.print("\n");
System.out.print(apellidos);
System.out.print("\n");
System.out.print(edad);
System.out.print("\n");
System.out.print(especie);
System.out.print("\n");
}
}
class vegetal extends seresvivos
{
String especie;
public vegetal()
{}
public vegetal(String nombre,String apellidos,String especie,int edad)
{
nombre = nombre;
apellidos = apellidos;
edad = edad;
especie = especie;
System.out.print(nombre);
System.out.print("\n");
System.out.print(apellidos);
System.out.print("\n");
System.out.print(edad);
System.out.print("\n");
}
}
humano sergio = new humano("Sergio","Rodriguez",12);
animal jero = new animal("Jero","Rodriguez","Gato",2);
vegetal alga = new vegetal("Algui","Algatez","Alga",4);
}





Este codigo al compilarlo no da errores y genera sus respectivos archivos.class .
Y bien. ¿por que al ejecutarlo me envia este error?:
Exception in thread "main" java.lang.NoClassDefFoundError: seresvivos/java
__________________
Actua localmente
Piensa globalmente
  #2 (permalink)  
Antiguo 09/03/2003, 13:44
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 21 años, 5 meses
Puntos: 0
el erro lo unico que te dice es que no encuentra el método main. Para ejecutar cualquier aplicacion en java debes implementar un étodo main que será el que lleve ña ejecucion del programa, con las llamadas a los métodos y la creación de los objetos.

Por cierto, si compilas este codigo así todo junto, estas compilando dos clases a la vez, y sería mejor que las separases en archivos diferentes.

un saludo
  #3 (permalink)  
Antiguo 10/03/2003, 14:10
 
Fecha de Ingreso: diciembre-2002
Ubicación: Cornella
Mensajes: 30
Antigüedad: 21 años, 4 meses
Puntos: 0
Explicate mejor, porfavor

No es que ande muy ducho en estos temas, no...
¿Que sugieres?
__________________
Actua localmente
Piensa globalmente
  #4 (permalink)  
Antiguo 10/03/2003, 15:33
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 21 años, 5 meses
Puntos: 0
Bueno, yo lo primero dividiía el codigo en los siguientes archivos haciendo una serie de cambios

SeresVivos.java

public class SeresVivos{
protected String nombre;
protected String apellidos;
protected int edad;
}

Humano.java

class Humano extends SeresVivos{
public Humano(){
}
public Humano(String nombre,String apellidos,int edad){
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad;
System.out.print(nombre);
System.out.print("\n");
System.out.print(apellidos);
System.out.print("\n");
System.out.print(edad);
System.out.print("\n");
}
}


Animal.java

class Animal extends SeresVivos{
String especie;
public Animal(){
}
Animal(String nombre,String apellidos,String especie,int edad){
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad;
this.especie = especie;
System.out.print(nombre);
System.out.print("\n");
System.out.print(apellidos);
System.out.print("\n");
System.out.print(edad);
System.out.print("\n");
System.out.print(especie);
System.out.print("\n");
}
}

Vegetal.java

class Vegetal extends SeresVivos{
String especie;
public Vegetal(){
}
public Vegetal(String nombre,String apellidos,String especie,int edad){
this.nombre = nombre;
this.apellidos = apellidos;
this.edad = edad;
this.especie = especie;
System.out.print(nombre);
System.out.print("\n");
System.out.print(apellidos);
System.out.print("\n");
System.out.print(edad);
System.out.print("\n");
}
}


Después de tener estas clases organizadas, haría el main en otra clase diferente, y por lo tanto en otro archivo

PruebaSeres.java

class PruebaSeres {
public static void main (String args[]){
Humano sergio = new Humano("Sergio","Rodriguez",12);
Animal jero = new Animal("Jero","Rodriguez","Gato",2);
Vegetal alga = new Vegetal("Algui","Algatez","Alga",4);
}
}

Así en la clase PruebaSeres sería la que compilaría y ejecutaría, ya qu tiene la creaación de los diferentes objetos del as otras clases.

Un saludo, espero que te sirva de algo mi aportación
  #5 (permalink)  
Antiguo 15/03/2003, 13:31
 
Fecha de Ingreso: diciembre-2002
Ubicación: Cornella
Mensajes: 30
Antigüedad: 21 años, 4 meses
Puntos: 0
Ah gracias

Y me di cuenta que estos System.out.print(); no valian ya que podia escribir en el metodo main :
System.out.print(sergio.nombre);
¿no?
Gracias, este programa es de los primeros que he hecho en este lenguaje.
__________________
Actua localmente
Piensa globalmente
  #6 (permalink)  
Antiguo 16/03/2003, 05:49
Avatar de mariog  
Fecha de Ingreso: noviembre-2002
Ubicación: Madrid
Mensajes: 195
Antigüedad: 21 años, 5 meses
Puntos: 0
es mejor que no hagas referencia a atributos de ninguna clase como dices sergio.nombre.

es mejor que te crees un método que te devuelva el nombre del objeto
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:04.