problema al no poder ejecutar unos metodos en el main (los metodos estan en otra clase distintan al main)

hola, estoy en clase de programación orientada a objetos y no entiendo algo acerca de los métodos, se que pueden ser llamados desde otra clase o de la misma clase y mi duda esta en los métodos que tienen parámetros.

tengo que hacer un programa el cual tenga dos clases:
a) clase principal
b) clase artículos

en la clase artículos debo tener los siguientes atributos
a) numero de articulos .................. (no es arreglo)
b) descripcion .............................. (no es arreglo)
c) precio unitario .......................... (no es arreglo)
d) cantidad de articulos vendidos.... (arreglo de 12 elementos uno por cada mes del año)

yo hice esto :

public class Articulos {
       

        private long mnumero_articulos, mprecio_unitario, mventas_anuales;
        long[] marticulos_vendidos=new long [12];
        private String mdescripcion;
       
        String mes; //este atributo es para un switch que va en un método

siguiendo con el planteamiento del programa:

incluir un metodo que lea la cantidad de articulos vendidos mensualmente (de todo el año)
enero .......... vendidos
febrero ....... vendidos
.
.
.
diciembre .... vendidos

yo ise lo siguiente:

       
public void Lee_articulo(long numero_articulos, long n){
                for (int i=0;i<marticulos_vendidos[i];i++){
                        switch (i){
                        case 0: mes="Enero";
                        break;
                        case 1: mes="Febrero";
                        break;
                        case 2: mes="Marzo";
                        break;
                        case 3: mes="Abril";
                        break;
                        case 4: mes="Mayo";
                        break;
                        case 5: mes="Junio";
                        break;
                        case 6: mes="Julio";
                        break;
                        case 7: mes="Agosto";
                        break;
                        case 8: mes="Septiembre";
                        break;
                        case 9: mes="Octubre";
                        break;
                        case 10: mes="Noviembre";
                        break;
                        case 11: mes="Diciembre";
                        break;
                        }
                        System.out.print(mes+"\t Introduzca articulos vendidos por mes :");
                        numero_articulos=Leer.datoLong();
                        n=n+numero_articulos;
                }      
        }

luego en el planteamiento dice:

incluye un metodo que despliegue a los articulos calculando las ventas anuales i dando el siguiente resultado:
articulo .... (descripcion) ..... excelente
articulo .... (descripcion) ...... bueno
articulo .... (descripcion) ...... malo

de acuerdo a la siguiente tabla de ventas anuales
limite inferior limite superior calificación
0.00 50,000.00 malo
50,000.00 250,000.00 bueno
250,000.00 en adelante (Creo) excelente

Donde ventas anuales = precio unitario *cantidad de artículos vendidos en todo el año

yo hice este método:

public void Desplegar_Articulos(String nombre_articulo, String descripcion, long precio_unitario, long articulos_vendidos_ato)
        {
                for (int i=0;i<marticulos_vendidos[i];i++)
                {
                mventas_anuales=precio_unitario*articulos_vendidos_ato;
                        if (mventas_anuales>=0&&mventas_anuales<50000)
                        {
                                System.out.println(nombre_articulo+ "\t" + descripcion + "\t Malo");
                        }
                        if (mventas_anuales>=50000&&mventas_anuales<250000)
                        {
                                System.out.println(nombre_articulo+ "\t" + descripcion + "\t Bueno");
                        }
                        if (mventas_anuales>250000)
                        {
                                System.out.println(nombre_articulo+"\t"+descripcion + "\t Excelente");
                        }
                }
        }

y ahi se acaba la clase articulos.
luego el planteamiento dice:

En la clase principal lea lo siguiente
a)cantidad de artículos por desplegar
b)leer el nombre de artículo, descripción y precio unitario de todos los artículos espesificados en el punto a)

yo hice todo esto en la clase principal:

public class Principal1 {

        public static void main(String[] args) {
                long cantidad_articulos, precio_unitario=0, articulos_vendidos_año=0;
                String nombre_articulo = null, descripcion = null;
               
                do
        {
                        System.out.println("Teclea el numero de articulos por desplegar");
                cantidad_articulos=Leer.datoLong();
        }while (cantidad_articulos<=0);
                for (int i=0;i<cantidad_articulos;i++)
                {
                        System.out.println("Teclea el nombre del articulo");
                        nombre_articulo=Leer.dato();
                       
                        System.out.println("Teclea la descripcion del articulo");
                        descripcion=Leer.dato();
                       
                       
                        do
                        {
                        System.out.println("Teclea el precio del articulo");
                        precio_unitario=Leer.datoLong();
                        }while(precio_unitario<=0);
                       
                }
                //lamada de los métodos       
                Articulos metodo=new Articulos();
                metodo.Lee_articulo(cantidad_articulos, articulos_vendidos_año );
                metodo.Desplegar_Articulos(nombre_articulo, descripcion, precio_unitario,articulos_vendidos_año);
        }

}

ahora al ejecutar la clase principal realiza solo lo de leer las variables "cantidad_articulos" "numero_articulos" y "descipcion".
al terminar de leerlas el programa se termina.
me pudieran decir en que estoy mal o como le puedo hacer para que los métodos se ejecuten? se los agradecería demasiado por que mañana tengo un examen de este tema.

Comentarios

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 Sr. Negativo

Antes de escribir un programa ...

Deberías pensar que es lo que va hacer cada clase. Deberías investigar sobre polimorfismo y herencia.

Computadora.java

public class Computadora{

 private String fabricante;
 private String procesador;
 private String modelo;
 private String memoria;
 private String tipo_sistema;

 public Computadora asiganDatos( String fabricante,
  String procesador,
  String modelo,
  String memoria,
  String tipo_sistema){
   this.fabricante=fabricante;
 this.procesador;
 this.modelo;
 this.memoria;
 this.tipo_sistema;
 return this;
}

public Computadora verDatos(){
  System.out.println("Fabricante:  "+fabricante);
...
...
 reurn this;
}

  public Computadora(){}

}

Se me ocurre escribir un método para visualizar datos desde una interface
Servicios.java

public interface Servicios{
  public abstract void  verDatos();
}

ServiciosImpl.java

public class ServiciosImpl implements Servicios{
  private Computadora computadora=null;
  @Override
  public void verDatos(){
  /*código*/
  }

  /*demás código*/

}

Main .java

public class Main{

 public sttaic void main(String [] args)throws Exception{

  /*código*/

}

}

Más o menos yo le haría así. Dividir bien las clases