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

Fallo en crear objeto de una clase.

Estas en el tema de Fallo en crear objeto de una clase. en el foro de Java en Foros del Web. Bueno, Pues no se bien como preguntar esto. Antes de nada perdonar mi ignorancia pero no consigo ver el problema y parece una estupidez. Os ...
  #1 (permalink)  
Antiguo 10/01/2012, 09:08
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Fallo en crear objeto de una clase.

Bueno,

Pues no se bien como preguntar esto. Antes de nada perdonar mi ignorancia pero no consigo ver el problema y parece una estupidez.

Os cuento:

Tengo dos clases creadas: edificio y TipoSkyline.

Pues si las llamo desde el main me dan error.

Crear un objeto de tipo edificio:
edificio ed1 = new edificio(7,6,5);
Me devuelve error de Source not found, desde el paso a paso del debug.

Crear un objeto de tipo TipoSkyline:
s.add(new TipoSkyline((c.get(i).getInicio()), (c.get(i).getAltura())));
Me devuelve error ClassNotFoundException.

Y si lo hago más sencillo aún:
s.add(new TipoSkyline(7,8));
Me devuelve error de Source not found.

Esto es de locos!! Si podéis echarme una mano os lo agradecería mucho!!!

Un saludo.
  #2 (permalink)  
Antiguo 10/01/2012, 09:37
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Fallo en crear objeto de una clase.

¿importaste los packege's, jar's que contienen estas clases?
__________________
BadProgrammerException!
  #3 (permalink)  
Antiguo 10/01/2012, 10:00
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Respuesta: Fallo en crear objeto de una clase.

Falta importar las clases, trabajas el algún IDE en especial, sino es así debería hacerlo ya que estos le darán mayor información y ayuda de como solucionar este tipo de percance.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #4 (permalink)  
Antiguo 11/01/2012, 05:02
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Fallo en crear objeto de una clase.

Un IDE? No entiendo bien a que te refieres CapacProg... Qué es eso?

FiruzzZ, ahora metí las 3 clases (main, edificio y TipoSkyline) en el mismo paquete... Eso debería ser suficiente?? Aún asi no me funciona...

Conocéis alguna otra manera de importarlo? Haciendo el debug, cuando hago el new de un objeto edificio me lleva a la clase, pero al entrar en el constructor peta con el error que os dije...

En cambio, al crear un objeto TipoSkyline, y usar el paso a paso del debug, peta directamente a la hora de crear el objeto, sin llegar a encontrar la clase...

No entiendo...

Gracias por el apoyo... Saludos!!
  #5 (permalink)  
Antiguo 11/01/2012, 06:48
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Respuesta: Fallo en crear objeto de una clase.

Para saber que es un IDE revise ese link.

Lo mejor sería que volqué su código para revisarlo.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #6 (permalink)  
Antiguo 11/01/2012, 10:48
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Fallo en crear objeto de una clase.

Como cambio el IDE? Aunque con estando todo en el mismo paquete, deberían verse sin necesidad de mas, no?

Te pongo el código (hoy no avance nada...):

package Practica;

public class edificio {
int inicio;
int fin;
int altura;

public edificio(int inicio, int fin, int altura) {
super();
this.inicio = inicio;
this.fin = fin;
this.altura = altura;
}

public int getInicio() {
return inicio;
}
public void setInicio(int inicio) {
this.inicio = inicio;
}
public int getFin() {
return fin;
}
public void setFin(int fin) {
this.fin = fin;
}
public int getAltura() {
return altura;
}
public void setAltura(int altura) {
this.altura = altura;
}
}



package Practica;

public class TipoSkyline {
int cambio;
int altura;

public TipoSkyline(int cambio, int altura) {
super();
this.cambio = cambio;
this.altura = altura;
}

public int getCambio() {
return cambio;
}
public void setCambio(int cambio) {
this.cambio = cambio;
}
public int getAltura() {
return altura;
}
public void setAltura(int altura) {
this.altura = altura;
}
}



package Practica;

import java.io.*;
import java.util.*;

public class Main {

public static void main(String[] args) throws IOException {

String[] edificio;
ArrayList<edificio> ciudad = new ArrayList<edificio>();
ArrayList<TipoSkyline> linea = new ArrayList<TipoSkyline>();
int temp;

Scanner fin = new Scanner(new File("src/skyline.in"));

while (fin.hasNextLine()) {
String line = fin.nextLine();
edificio = line.split(" ");
ciudad.add(new edificio(Integer.valueOf(edificio[0]),Integer.valueOf(edificio[1]),Integer.valueOf(edificio[2])));
}

for (edificio e :ciudad){
System.out.println("inicio:"+" "+e.inicio+" "+"fin:"+" "+e.fin+" "+"altura:"+" "+e.altura);
}

temp = ciudad.size();

linea = DyV(ciudad, 0, temp);
salida1(linea);
}

private static void salida1(ArrayList<TipoSkyline> linea) {
for (TipoSkyline sky :linea){
System.out.println(sky.getAltura() +" "+sky.getCambio());
}
}
public static ArrayList<TipoSkyline> DyV(ArrayList<edificio> c, int i, int j) {

int m,n;
ArrayList<TipoSkyline> s = new ArrayList<TipoSkyline>();
ArrayList<TipoSkyline> s1 = new ArrayList<TipoSkyline>();
ArrayList<TipoSkyline> s2 = new ArrayList<TipoSkyline>();


m = (i + j)/2;
n = j - i;

if (n == 1) {
s.add(new TipoSkyline((c.get(i).getInicio()), (c.get(i).getAltura())));
return s;
}
else {
s1 = DyV(c, i, m);
s2 = DyV(c, m+1, j);
s = Combinar(s1, s2);
return s;
}
}

public static ArrayList<TipoSkyline> Combinar (ArrayList<TipoSkyline> s1c, ArrayList<TipoSkyline> s2c) {

int ic, jc, k, x, i1, i2;
int nc, mc, maximo;
int z, v;
ArrayList<Integer> s1x, s1h, s2x, s2h, sx, sh;
ArrayList<TipoSkyline> sc = new ArrayList<TipoSkyline>();

s1x = new ArrayList<Integer>();
s1h = new ArrayList<Integer>();
s2x = new ArrayList<Integer>();
s2h = new ArrayList<Integer>();
sx = new ArrayList<Integer>();
sh = new ArrayList<Integer>();

nc = s1c.size() - 1;
mc = s2c.size() - 1;

i1 = 0;
i2 = 0;

while (i1 <= nc){
s1x.add(new Integer(s1c.get(i1).getCambio()));
s1h.add(new Integer(s1c.get(i1).getAltura()));
i1 = i1 + 1;
}

while (i2 <= nc){
//s2h[0] = s2.get(0).getAltura();
i2 = i2 + 1;
}

ic = 0;
jc = 0;
k = 0;

while ((ic <= nc) || (jc <= mc)) {

x = Math.min(s1x.get(ic), s2x.get(jc));

if ((s1x.get(ic)) <= (s2x.get(jc))) {
maximo = Math.max(s1h.get(ic), s2h.get(jc - 1));
ic = ic + 1;
}
else
if ((s1x.get(ic)) > (s2x.get(jc))) {
maximo = Math.max(s1h.get(ic - 1), s2h.get(jc));
jc = jc + 1;
}
else {
maximo = Math.max(s1h.get(ic), s2h.get(jc));
ic = ic + 1;
jc = jc + 1;
}

sx.add(k, new Integer(x));
sh.add(k, new Integer(maximo));
k = k + 1;
}
v = 0; z = 0;
while ((v != sx.size()) || (z != sh.size())){
sc.add(new TipoSkyline(sx.get(v),sh.get(z)));
v = v + 1;
z = z +1;
}
return sc;
}
}
  #7 (permalink)  
Antiguo 11/01/2012, 11:14
Avatar de CapacProg  
Fecha de Ingreso: marzo-2010
Ubicación: Lima - Perú
Mensajes: 324
Antigüedad: 14 años, 1 mes
Puntos: 71
Respuesta: Fallo en crear objeto de una clase.

Hola, tu error está en que tiene una clase llamada edificio y una variable llamada edificio que es un vector de tipo String, en la función main. Corrija eso y vea si funciona ahora.

Ojo, puede usar el resaltado de código para postear su implementación.
__________________
%
El mejor guerrero no es el que triunfa siempre sino el que vuelve sin miedo a la batalla.
%
  #8 (permalink)  
Antiguo 12/01/2012, 06:25
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Fallo en crear objeto de una clase.

No... El problema no era ese.

Cambié el nombre de la variable y sigue dandose el problema...

Te recuerdo que también me sucedía practicamente el mismo error con la clase TipoSkyline...

Gracias de nuevo Capac por la respuesta y perdona las molestias.

Un saludo.
  #9 (permalink)  
Antiguo 12/01/2012, 06:53
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Fallo en crear objeto de una clase.

Tienes todas las clases compiladas en el classpath? .... así los .bin bien juntitos dentro de una carpeta llamada Practica (*) en la carpeta donde irían los binarios después de compilar.
Por cierto las clases se inician en mayúscula: public class Edificio { ...
y los packages en minuscula... Practica (*) => practica
¿Y has compilado primero las clases correspondientes?
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Última edición por Fuzzylog; 12/01/2012 a las 06:58
  #10 (permalink)  
Antiguo 12/01/2012, 10:57
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Fallo en crear objeto de una clase.

Si, tengo todas las clases dentro de una carpeta llamada practica, dentro de una carpeta llamada bin.

Ya cambie el nombre del paquete a practica y el de la clase a Edificio pero todo sigue igual.

Como se compila las clases primero?? Ten en cuenta que tambien me falla el debug. Como hago para compilarlas primero en ambos casos? Eso me sono bien...

Gracias Fuzzy!!!
  #11 (permalink)  
Antiguo 12/01/2012, 12:20
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Fallo en crear objeto de una clase.

Esto... Tendría para sentido vosotros que al poner el breakpoint fuera de la función que os da el error que os comenté, parece que actúa bien?

Lo pongo en otra función y con el paso a paso va bien hasta la hora de crear un objeto de las clases que os dije, para volver a fallar como os dije...

Ein!!??
  #12 (permalink)  
Antiguo 12/01/2012, 12:36
Avatar de zero0097  
Fecha de Ingreso: abril-2010
Ubicación: México
Mensajes: 481
Antigüedad: 14 años
Puntos: 69
Respuesta: Fallo en crear objeto de una clase.

no es lo mismo tener los archivos en el mismo paquete que a tenerlos en la misma carpeta, no se si estés confundiendo esos conceptos...que IDE usas? o mpas bien que programa editor de codigo utilizas? es el blcok de notas, es netbeans, es eclipse? es otro? Jcreator u otro?
  #13 (permalink)  
Antiguo 13/01/2012, 02:46
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Fallo en crear objeto de una clase.

Gracias Zero por echarme un cable.

Uso Eclipse.

Los tengo en la misma carpeta (lo compruebo con el explorador de windows) y en el mismo paquete (las tres clases comienzan con la línea package practica;).

Es suficiente?

Gracias de nuevo y un saludo.
  #14 (permalink)  
Antiguo 13/01/2012, 02:56
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Fallo en crear objeto de una clase.

Cita:
Iniciado por Kyokatallama Ver Mensaje
Si, tengo todas las clases dentro de una carpeta llamada practica, dentro de una carpeta llamada bin.
Si eso fuese así esas clases serían binarios y ya estarían compiladas, si lo que has puesto ahi son los .java, es que algo has hecho mal.

En teoría si usas eclipse el classpath lo adapta al workspace donde creas tus proyectos.

Si has creado bien el proyecto: File > New > Project
File > New > Package
Debería habertelo pillado bien, si no, puede ser algún problema de configuración y tendrías que analizar que hay en (botón derecho sobre tu proyecto) > Properties > Java build path

... yo personalmente sacaría el Main del package, le borraría el nombre del mismo y pondría en los imports esta línea:

import practica.*; // Si le has cambiado el nombre de Practica a practica
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}

Última edición por Fuzzylog; 13/01/2012 a las 03:15
  #15 (permalink)  
Antiguo 13/01/2012, 04:24
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Fallo en crear objeto de una clase.

Que lio...

Cree el proyecto y paquetes como dices...
Dentro de Bin\practica\ están los .class
Dentro de scr\practica\ están los .java

Como saco el Main del paquete?
Le he quitado package practica; pero me dice que se espera esta línea. Asi que lo intento sacar a traves del explorador de Package y al moverlo a la raiz del proyecto me lo mete en un default package...
  #16 (permalink)  
Antiguo 13/01/2012, 04:42
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Fallo en crear objeto de una clase.

Igual te convenía más que refactorizar, el crear un nuevo archivo con el mismo nombre, copiar el contenido del otro al nuevo (excepto el package name) y eliminar el archivo antiguo.
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #17 (permalink)  
Antiguo 13/01/2012, 05:14
 
Fecha de Ingreso: enero-2012
Ubicación: Madrid
Mensajes: 15
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: Fallo en crear objeto de una clase.

Esto... Me da verguenza ajena... pero ya lo solucioné...

Cuando me salta el error vuelvo a dar a F5 y me lo salta... el programa continua su funcionamiento normal...

Esto... Gracias a todos por la ayuda. Creo que estoy muy verde en esto y os termino mareando a los demás...

Disculpad y gracias de nuevo! :(

Etiquetas: clase, fallo, 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 20:27.