Tentando entender a estrutura de um programa Java

4 respostas
W

Prezados, boa tarde!
A pergunta é bem complexa e estensa, então vou tentar ser o mais prático possível… estou tentando entender a estrutura de um programa Java. Coloco aqui algumas teorias que tive em minhas leituras e espero a correção dos amigos…

Um programa em Java contém mais de um classe. Cada classe contém procedimentos e objetos que ou estão declarados na classe usada ou são importados de outras classes. Quando eu “rodo” o programa, uma classe fica chamando a outra (ou não) como os procedimentos estruturados em Pascal e C. (Mais ou menos isso?).

Agora, uma pergunta:
Já sei criar algumas classes bem bobas. Como se faz para juntar elas, para que cada uma execute uma parte do aplicativo/programa que eu quero?

Tah bem simplificado, aguardo as respostas para “injetar” mais questões…

Abraços…

4 Respostas

D

opa, cara vamo começa devagar entao … abaixo temos duas classes: Calculo.java e Principal.java

public class Calculo{
 
     // Contrutor é o primeiro "método" (voce está chamando de procedimento, mas seria melhor chamar de método por convenção) que é chamado
     // quando voce instancia um objeto
     // esse construtor aqui apenas exibe uma mensagem em tela
     // para voce saber que está passando por aqui 
     public Calculo() { 
          System.out.println("Oi, estou no construtor");
     }

     //metodo que recebe dois parametros inteiros de arguumento, faz a soma deles e devolve o resultado
     public int soma (int valor1, int valor2){
          return (valor1 + valor2);
     }

}
public class Principal{

     public Principal(){
     
          // aqui estamos instanciando (quando se usa o "new") um objeto do tipo Calculo
          // esse objeto se refere a outra classe acima que acabamos de definir. 
          // sendo assim teremos agora aqui uma referencia a um objeto do tipo Calculo
          Calculo calculadora = new Calculo();

          // aqui estamos criando uma variavel do tipo int que vai receber o resultado da soma de dois inteiros
          // essa soma é feita pelo metodo "soma" que definimos na classe Calculo. 
          // aqui agente chama o soma atraves da variavel calculadora, definida na linha anterior, o qual
          // possui uma referencia a um objeto do tipo Calculo
          // dessa forma estamos fazendo aqui uma "classe chamar outra" passando parametros e recebendo um resultado
          int resultadoDaSoma = 0;
          resultadoDaSoma = calculadora.soma(5, 5);

          // aqui estamos apenas imprimindo na tela o resultado obtido
          System.out.println("O resultado da soma é: " + resultadoDaSoma);
     }

     public static void main(String args[]){
          //estamos instanciando um objeto do tipo Principal, porém nao o estamos guardando em lugar nenhum.
          // ele será criado normalmente, seu construtor será chamado, mesmo sem nenhuma variavel armazena-lo 
          new Principal();
     }
}

cara tentei comenta o codigo ai, ve se te ajuda a clarea alguma coisa e vai pedindo …

[]´s

W

Boa tarde!
Primeiro lugar, muitíssimo obrigado pela resposta, ajudou bastante.
Uma perguntinha meio boba (pra quem já sabe, não o meu caso) : declarar uma instância (ou objeto) seria como declarar um struct do C ? Declaro ela e depois atribuo uma variavel daquele “modelo” ? (Desculpe pelas comparações, mas é inevitável pra mim de início…).

D

cara, a bem grosso modo mesmo acho que poderia se dizer que eles tem algumas semelhanças em conceito … (programei a muito tempo atras em C e nao lembro de outra estrutura mais parecida agora) … a struct tu define algo como um registro certo? onde tem variaveis de outros tipos meio que agrupadas num novo tipo seu, correto??

uma classe de java voce faz algo semelhante onde tu define um tipo seu novo (seria o teu struct) , com as variaveis e os tipos delas. A grande diferença é que voce define em java nessa sua classe o comportamento tb das variaveis, quem pode acessar o que, consegue usá-las por polimorfismo, herança, tipo tem muita coisa a mais envolvida (que voce pode fazer e tirar proveito) em uma classe/ objeto em java do que no struct do C (nao sei se o struct permite define essas coisas tb, acho q nao neh) …

Tentando resumi (nao sei se mais compliquei do que expliquei), a unica coisa que eu vejo em comum entre a classe do java e a struct do C seria a ideia de voce criar o seu tipo, com variaveis de outros tipos … fora isso acho que tem um abismo de diferença entre elas (me corrijam se eu estiver errado por favor)…

tipo assim, uma dica q te dou, é interessante tu compara as estruturas pra tenta acha equivalentes pra nao fica tao perdido na linguagem, mas tenta nao se basea muito soh por isso prq senao vai dah um nó na tua cabeça, prq o C é estruturado e Java é orientado a objetos, só nesse ponto já tem um monte de diferença que te digo por experiencia, ate tu consegui entende vai faze uma “sopa” no cérebro … ehheheehhe …

obs:: imagino que voce seja programador C e esteja aprendendo java certo?? voce está estudando por tutoriais da internet, livros?

vlw,
[]´s

W

Quase isso… na verdade, se da pra dizer que eu domino alguma linguagem é o Pascal… hehehe.
Eu tive C na facul, mas foi tipo tu estar num helicóptero sobrevoando um lugar e o professor aponta lá pra baixo e diz: “Tah vendo aquilo? Aquilo é o C …”. Por isso, estou estudando alternadamente o C e o Java. Tenho uma boa base lógica de algorítmos (creio eu) e o C está sendo muito mais fácil realmente. O Java estou baixando apostilas e entrando em tudo quanto é forum para tentar aprender… realmente, o Java é bem diferente das outras linguagens que eu tive contato, principalmente por ser Orientação a Objetos… eu que estava acostumado em declarar variaveis, criar funções e depois uma ir chamando a outra atravéz da “main”, agora saber que uma variável pode ser declarada no final do programa que não dá erro… é dificil, espero que não impossível. Já tenho contato com ferramentas como NetBeans, mas eu acho melhor aprender o que se passa e como fazer “no braço” mesmo… conheci o Delphi e me decepcionei um pouco sabendo que o código era escrito pela máquina, não por mim…
Mas era isso, por enquanto só um comentário e esclarecimento… quando tiver mais dúvidas, deixo post aqui…

Criado 6 de fevereiro de 2009
Ultima resposta 10 de fev. de 2009
Respostas 4
Participantes 2