Estou começando a linguagem Java2, estou com duvida sobre static e void to muito confuso!

14 respostas
renanmoraes

ola pessoal! espero que possam ajudar um novato na area de programação:

estou com duvidas sobre static, void e args:
static já sei que é uma variavel de classe que é declarada dentro da classe… minha duvida é o seguinte:

public static void main (String[] args)
não consigo compreender essa linha. se eu tirar o static deichando public void main da pau porque?
não sei o que é void, muito menos args?
public é visivel dentro e fora da classe blz.

agora esse static void e args não entendo to muito confuso.

se alguem puder dar uma luz as minhas duvidas fico grato.

valeu pela atenção pessoal! :lol:

14 Respostas

felipe_gdr

void quer dizer que o método não retorna nada.

args é o nome do parâmetro, se vc trocar por qualquer outra coisa funciona
normalmente.

V

existe a classe (abstrato) e o objeto (real)

o static faz com que a variavel, metodo ou constante possa ser acessado tambem atraves do nome da classe e não somente atraves de uma instancia dessa classe
tambem pode se declarar um bloco de comandos antes do construtor com a palavra static afim de que este bloco seja executado assim que a a classe entra em execução pela JVM, tipo um evento form load

ex: Math.PI atraves da classe Math nos acessamos a constante 3,14

static  {

//implemente seu codigo

}
V

void é um tipo de retorno como qualquer outra classe ou tipo primitivo que vc defina como tipo de retorno para um metodo
void indica que o metodo retorna nada
no caso do metodo main não poderia ter outro tipo de retorno pois o main é um metodo especial, é o principal, aJVM procura por ele para saber o que fazer ao executar a classe

V

o metodo main recebe um array de Strings
sabe quando vc digita “java seuprograma” para ver a execução la no dos
então vc pode digitar “java seuprograma parametro1 parametro2”
dai la no seu codigo vc faz

String param1 = arg[0]; String param2 = arg[1];

o nome arg pode ser substituido por qualquer outro nome

V

all right
thank you
ve se vc me ajuda em duvidazinha…

tenho uma aplicação J2EE, entre meus jsps e servlets tenho uma classe ClienteDAO esta classe tem um metodo main porem na aplicação eu uso este objeto e suas funções porem os comandos do metodo main nao vi executarem
como seria isso ?

V

foi um exemplo que peguei por ai
esqueçe isso ??

renanmoraes

nossa galera valeu mesmo pela a ajuda de voçes, me ajudo muito o post de voçes valeu meso :wink:

renanmoraes

Eu queria saber só mais uma coisinha sobre static:

static é somente uma variavel de classe que é usada para definir atributos/propriedades que devem possuir apenas um valor para todos os objetos?

no ponto de vista de voçes, de experiencia o que é o static em modo geral para voçes :?:

V

apenas um valor para todos os objetos

ja no caso das variaveis de instancias cada objeto tera um valor diferente para a mesma variavel

renanmoraes

Obrigado por mais essa ajuda, agora fico mais claro para mim.

Valeu pela Ajuda! :slight_smile:

I

renanmoraes:
ola pessoal! espero que possam ajudar um novato na area de programação:

estou com duvidas sobre static, void e args:
static já sei que é uma variavel de classe que é declarada dentro da classe… minha duvida é o seguinte:

public static void main (String[] args)
não consigo compreender essa linha. se eu tirar o static deichando public void main da pau porque?
não sei o que é void, muito menos args?
public é visivel dentro e fora da classe blz.

agora esse static void e args não entendo to muito confuso.

se alguem puder dar uma luz as minhas duvidas fico grato.

valeu pela atenção pessoal! :lol:

A classe com o metodo main com essa assinatura indica que essa classe é “executavel”. Não da pau pq vc tirou o static, e sim pq quando tentar executar essa classe a VM vai acusar q não tem um metodo main com assinatura igual a dela. Entendeu?

Static é variavel q todos terão o mesmo valor na execucao da mesma classe. E vc não precisa de uma instancia da classe pra acessa0la mais com o tempo vc vai aprendendo o conceito…

Args poderia ser qualquer outra palavra, pois não passa de uma variavel (parametro) de metodo. Poderia ser public static void main (String joao[]) {} Sem problema algum… =)

I

victorhugomuniz:
void é um tipo de retorno como qualquer outra classe ou tipo primitivo que vc defina como tipo de retorno para um metodo
void indica que o metodo retorna nada
no caso do metodo main não poderia ter outro tipo de retorno pois o main é um metodo especial, é o principal, aJVM procura por ele para saber o que fazer ao executar a classe

Corrigindo:

Ela não procura pelo metodo main, e sim um especifico pois na minha classe posso ter diversas assinaturas do metodo main

         public int main() {return 0;}
         public void main() {}
         public static int main() {return 0;}
         public static String main(){return "ja";}
       Dentro outros. mais a  VM  vai procurar o q tiver essa assinatura 
        public static void main(String[] variavel) {}
I

victorhugomuniz:
all right
thank you
ve se vc me ajuda em duvidazinha…

tenho uma aplicação J2EE, entre meus jsps e servlets tenho uma classe ClienteDAO esta classe tem um metodo main porem na aplicação eu uso este objeto e suas funções porem os comandos do metodo main nao vi executarem
como seria isso ?

Pq vc usa um metodo main em uma classe de acesso a banco?

O unico metodo q a VM chama e o main, mais se for a classe q vc executar. Se esta sendo chamada por outra class o main se vc não chamar vai ficar la sem objetivo algum.

I

Static:

é uma valor cujo todas as classes terão o mesmo. Esse valor pode mudar sem problemas exemplo:

     static int x = 20;
     x = 25;
    mais para todas as outras classes que tinham 20, agora sera 25.
Criado 4 de agosto de 2006
Ultima resposta 4 de ago. de 2006
Respostas 14
Participantes 4