style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">

Necesito ayuda con Java

Hola
Tengo un problema:

En clase nos úsieron a realizar el siguiente programa:

/*
* Lista Simplemente enlazada.
*
*/
import javax.swing.JOptionPane;
/*
* Clase de Lista enlazada y metodos de agregar al final y borrar del mismo, asi como mostrar tamaño y visualizar lista.
*
*/
public class ListaS
{
private Nodo primero;
private Nodo ultimo;
private int tamano;
public ListaS()
{
this.primero = null;
this.ultimo = null;
this.tamano = 0;
}
//Metodo utilizado para denotar que la lista se encuentra vacia.
public boolean siVacio()
{
return (this.primero == null);
}
//Metodo para agregar al final de la lista.
public ListaS addLast(int dato)
{
if(siVacio())
{
Nodo nuevo = new Nodo(dato);
primero = nuevo;
ultimo = nuevo;
nuevo.nodoDer = nuevo;
}
else
{
Nodo nuevo = new Nodo(dato);
nuevo.nodoDer = null;
ultimo.nodoDer = nuevo;
ultimo = nuevo;
}
this.tamano++;
return this;
}
//Metodo para borrar al final de la lista.
public Nodo deleteLast()
{
Nodo eliminar = null;
if(siVacio())
{
JOptionPane.showMessageDialog(null, "La lista se encuentra vacia");
return null;
}
if(primero == ultimo)
{
primero = null;
ultimo = null;
}
else
{
Nodo actual = primero;
while(actual.nodoDer != ultimo)
{
actual = actual.nodoDer;
}
eliminar = actual.nodoDer;
actual.nodoDer = null;
ultimo = actual;
}
this.tamano--;
return eliminar;
}
//Metodo que imprime el tamaño de la lista.
public void tamano()
{
JOptionPane.showMessageDialog(null, "El tamaño es:\n " + this.tamano);
}
//Metodo que imprime la lista y los valores ingresados.
public void imprimir()
{
if(tamano != 0)
{
Nodo temp = primero;
String str = "";
for(int i = 0; i < this.tamano; i++)
{
str = str + temp.dato + "\n";
temp = temp.nodoDer;
}
JOptionPane.showMessageDialog(null, str);
}
}
//Clase Nodo. Utiliza el enlace llamado nodoDer o nodo derecho y el valor a introducir.
public class Nodo
{
Nodo nodoDer;
int dato;
public Nodo(int dato)
{
this.dato = dato;
this.nodoDer = null;
}
}
}

Este programa no tiene método "main" y eso es precisamente lo que tengo que hacer poner el metodo "main".
Mi profesora me dijo que hay que hacer otra clase que contenga el método "main" y que llame a las demas clases, el problema es que no tengo la menor idea de como hacerlo.

¿Alguien me podria ayudar porfavor?

Gracias

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Jose Manuel

Debes crear una

Debes crear una clase...

public class ClaseConElMain {
}

que contenga el metodo main....

public class ClaseConElMain {
    public static void main(String args[]) { //Este es el metodo main
    }
}

Ahora, solo debes llamar a la clase que quieres usar, en este caso, es ListaS...

public class ClaseConElMain {
    public static void main(String args[]) {
        ListaS lista = new ListaS(); //Creas un objeto llamado lista de la clase ListaS
        //Este objeto lista puede hacer uso de los metodos de la clase ListaS
       //Agrego datos a la lista
                for(int i = 0; i < 10;i++) { //bucle for, para iteraciones
                        lista.addLast(i);
                        lista.imprimir(); //imprimo la lista conforme introduzco datos en ella
                }
                //Imprimo la lista
                lista.imprimir();
                //Imprimo su tamaño
                lista.tamano();        
                //Mientras la lista no este vacia..
                while(! lista.siVacio()) { //While para iteraciones...
                        //eliminar el ultimo elemento
                        lista.deleteLast();
                        lista.imprimir();//imprimo la lista conforme elimino datos en ella
                }
                //El tamaño
                lista.tamano();
    }
}

Camarada, a leer POO (Programacion Orientada a Objetos), a leer ñ_ñ

Asegúrate de que las tres clases estén en la misma carpeta.
Saludos.

No me acepta el "static"

me dice lo siguiente:

error: Illegal static declaration in inner class ListaS.Main
public static void main (String args[])
^
modifier 'static' is only allowed in constant variable declarations

que debo hacer??

Imagen de Jose Manuel

Estas creando la clase con el

Estas creando la clase con el método main dentro de ListaS...?

En un mismo archivo solo puede ir una clase que este declarada como publica. Ademas se supone que tu programa debe ir en una tercer clase, osea en otro archivo.

Mira, mejor publica todo el mensaje de error. Este mensaje se llama Stack Trace. Para asegurarnos de el error.

Ya lo cree en otro archivo

Cree el método Main en otro archivo y corre. Lo que esta haciendo es imprimir una lista que empieza les 0 al 9 y despues me dice que el tamaño es 10.

Osea que este programa, el que puse en primer lugar, debe de ser lamado desde otro archivo para que corra??

Ahora... eso es lo unico que se supone debe hacer todo el programa o tiene mas funciones pero hay que llamar mas métodos??

Porcierto sabes el titulo de algun lobro que pueda leer para seguir aprendiendo??

Imagen de Jose Manuel

1.- No necesariamente, lo que

1.- No necesariamente, lo que importa es el método main. Este puede ir en un archivo separado o en el mismo archivo de tu clase ListaS. Pero importa el contexto de cada clase, osea, que hace tu clase(lo digo desde un punto de vista subjetivo).

2.- Si te fijas la clase ListaS solo implementa esos métodos, si quieres que realice otra acción debes agregar mas métodos a tu clase ListaS.

3.- Libros...solo he leído el de Deitel y Deitel. Como programar en Java 7 edición. Me pareció bueno, pero hay cosas que no me gusta como las explica.
Seguro que una rápida búsqueda por google debería darte unos cuantos títulos.

Muchas gracias

Muchas gracias
Me has ayudado bastante

Nadamas una ultima pregunta:
Si quisiera meter el método main en el mismo programa tendria que hacerlo despues de cerrar la clase ListaS??

Muchas gracias y aqui seguire estudiandole mucho
Gracias

Imagen de Jose Manuel

El método principal (main)

El método principal (main) pertenece a una clase, por lo tanto si quieres que tu clase ListaS sea la que inicie el programa debe de ir dentro de esta, como si fuera otro método.

public class ListaS {
...
metodo1();
metodo2();
metodo3();
...
public static void main(String args[]) {

    }
}

Saludos.

Te agradezco mucho

Te agradezco mucho me queda todo mucho mas claro
GRACIAS

style="display:inline-block;width:728px;height:90px"
data-ad-client="ca-pub-5164839828746352"
data-ad-slot="7563230308">