Erro em compilar

3 respostas
M

Boa tarde á todos estou com problema em um teste que estou fazendo com um array. Ele reclama com o metodo main().

erro: inner classes cannot have static declarations.
public static void main(String[] args) {

alguem poderia me ajudar a enxegar esse erro…

//------------------------------------------------------------------------------

import java.io.*;

class Medio {

private double[] a;

public Medio(int size) {

a = new double[size];
}

public void setElement(int index, double value) {

a[index] = value;
}

public double getElement(int index) {

return a[index];
}

class MedioApp {

public static void main(String[] args) {

Medio arr = new Medio(100);
int nElems = 10;
int j;

arr.setElement(0,77);
arr.setElement(1,99);
arr.setElement(2,44);
arr.setElement(3,55);
arr.setElement(4,22);
arr.setElement(5,88);
arr.setElement(6,11);
arr.setElement(7,00);
arr.setElement(8,66);
arr.setElement(9,33);

//------------------------------------------------------------

for(j = 0; j < nElems; j++)
   System.out.print(arr.getElement(j) + " ");
   System.out.println(" ");

//------------------------------------------------------------

int searchKey = 26;

for(j=0; j < nElems; j++)
   if(arr.getElement(j) == searchKey)
    break;
   if(j == nElems)
     System.out.print("não foi possivel achar o numero:" + " " + searchKey);
   else
     System.out.println("Achou:" + searchKey);

//-------------------------------------------------------------

for(j=0; j < nElems; j++)
    if(arr.getElement(j) == 55)
      break;
      for(int k = j; k < nElems; k++)
      arr.setElement(k, arr.getElement(k + 1));
      nElems--;

//-------------------------------------------------------------

for(j=0; j < nElems; j++)
    System.out.print(arr.getElement(j) + " ");
    System.out.println(" ");
 }
}

}

[color=red][/color]

3 Respostas

Jair_Rillo_Junior

e ae Marçola

primeira coisa, quando for por codigos assim, poe entre as tag “code” e “/code” que ficam mais faceis de visualizar…

no caso do seu código tem 2 erros

primeiro que a classe que possui o método MAIN, essa classe precisa ser publica public class MedioApp {

e segundo, essa classe MedioApp esta dentro da classe Medio, ou seja, ela esta sendo uma Inner Class e não da pra vc colocar o método MAIN (que é estatico) dentro de uma InnerClass, solução é voce colocar essa classe fora da classe Medio, ae vai compilar OK

karluqs

Cara você declarou a classe MedioApp dentro da classe Medio, até ai tudo bem pois classes podem ser declaradas dentro de outras (conceito de Inner Class) mas as Inner Classes não podem ter métodos estáticos, logo é só você tirar a classe MedioApp para fora da classe Medio e renomear a o nome do arquivo para MedioApp ok

M

valeu manchester e karluqs, funcionou…

valeu pelo toque…

Criado 12 de agosto de 2003
Ultima resposta 12 de ago. de 2003
Respostas 3
Participantes 3