Primeiramente, olá a todos.
Sou estudante de física e já tenho algum conhecimento em programação (Fortran para computação científica). Estou iniciando Java como autodidata através da apostila do curso fj-11, disponivel gratuitamente pela empresa caelum (pra ser sincero, tenho vontade de fazer o curso, não o fiz por causa da distância, sou de teresina).
Estou com uma dúvida simples. No capítulo 3, fiz os procedimentos dentro de uma classe que chamei de capitulo3 (nome para organização dos código-fonte dentro do projeto).
Na hora do exercício, ele sugere a criação de uma classe para verificar o valor de um saldo, coloquei esse código LOGO EMBAIXO do outro, ficando dessa forma:
/*
* Capítulo 3 - Variáveis primitivas e Controle de fluxo
*
* Objetivos:
* 1 - Declaração, atribuição de valores, casting e comparação de variáveis;
* 2 - Controle de fluxo através de if e else;
* 3 - Instruções de laço for e while
*/
class Capitulo3 {
/*
* Iniciando a classe. Antes de qualquer método, vamos criar algumas variáveis
* Regra: Em Java, devemos declarar o tipo da variável antes de criá-la.
*/
public static void main(String[] args){
// Começo do miolo
int idade; // Criando uma variável chamada idade do tipo INTEIRO
idade = 15; // Atribuindo o valor 15 a variável idade
System.out.println(idade); // Imprimindo o valor da variável na tela
// Vamos calcular a idade no ano seguinte?
int idadeNoAnoQueVem; // Criando uma variável chamada idadeNoAnoQueVem do tipo INTEIRO
idadeNoAnoQueVem = idade + 1; // Atribuindo a variável criada o valor da variável idade mais o valor inteiro 1
System.out.println(idadeNoAnoQueVem);
// Trabalhando agora com outros tipos de variáveis
double pi = 3.14; // Criando a variável pi do tipo double já atribuindo um valor a ela [é praticidade]
double x = 5 * 10; // Obs: O tipo double armazena numeros reais, podendo armazenar também inteiros
System.out.println(pi);
System.out.println(x);
boolean verdade = true; // Criando a variável verdade do tipo boolen. Obs: esse tipo armazena somente TRUE ou False e só
System.out.println(verdade);
/*
* Interessante: É comum que o boolean seja determinado através de uma
* expressão booleana, isto é, um trecho de código que retorna um booleano.
* vamos fazer um exemplo?
*/
int IDADE = 30;
boolean menorDeIdade = IDADE < 18;
boolean maiorDeIdade = IDADE > 18;
System.out.println(menorDeIdade);
System.out.println(maiorDeIdade);
// Outro Exemplo, improvisando ...
int idade1 = 28; // um valor qualquer
int idade2 = 14; // ...
int idade3 = 79; // ...
int voto = 16; // Idade Mínima de voto
int opcional = 70; // Idade Máxima Obrigatória
boolean votoOpcional = idade2 <= voto && idade3 >= opcional; // utilizando operadores lógicos
boolean votoObrigatorio = idade1 >= 18 && idade3 <= opcional; // aqui tambem
boolean retornoFalso = idade3 >= opcional && idade1 >= voto; // uma condicao false: && retornará false
System.out.println(votoOpcional); // return true
System.out.println(votoObrigatorio); // too
System.out.println(retornoFalso); //return false
char letra = 'a'; // Variáveis do tipo char guarda apenas um único caractere
char caractere = 'ç'; // Testando outros tipos de caractere
char caractere2 = '|';
char caractere3 = '`';
System.out.println(letra + "\n" + caractere + "\n" + caractere2 + "\n" + caractere3); // concatenando ...
// Fim do Miolo
}
}
/*
* Exercício 1 - Na empresa onde trabalhamos, há tabelas com o quanto foi gasto em cada mês. Para fechar
* o balanço do primeiro trimestre, precisamos somar o gasto total. Sabendo que, em Janeiro, foram gastos
* 15000 reais, em Fevereiro, 23000 reais e em Março, 17000 reais, faça um programa que calcule e imprima
* o gasto total no trimestre.
*
* Dicas: a) Crie uma classe chamada BalancoTrimestral com um bloco main, como nos exemplos anteriores;
* b) Dentro do main, declare uma variável inteira chamada gastosJaneiro e inicialize-a com 15000;
* c) Crie também as variáveis gastosFevereiro e gastosMarco inicializando-as com os valores ditos;
* d) Crie uma variável chamada gastosTrimestre e inicialize-a com a soma das 3 outras variáveis
* int gastosTrimestre = gastosJaneiro + gastosFevereiro + gastosMarco;
* e) e Imprima o valor da variável gastosTrimestre
*/
class gastosTrimestral {
public static void main(String[] args) {
int gastosJaneiro = 15000;
int gastosFevereiro = 23000;
int gastosMarco = 17000;
int gastosTrimestral;
gastosTrimestral = gastosJaneiro + gastosFevereiro + gastosMarco;
System.out.println("O valor do gasto trimestral é de: " + gastosTrimestral);
}
}
Quando eu executo o código dentro do eclipse, ele só aparece os valores referentes a classe Capitulo3, e não aparece o sysout da classe gastosTrimestral.
Vamos supor que eu não queira criar um outro arquivo contendo essa classe, ou seja, quero as 2 classes dentro desse arquivo.
Perguntas:
1 - Porque o sysout da segunda classe não imprime?
2 - Eu devo mudar minha idéia, criando 2 arquivos, contendo cada um uma única classe com um único método main?
3 - Só deve existir um único método main em todo fonte java? Posso ter 2 ou mais métodos main em uma única classe ?
Até onde li no livro do deitel e na própria apostila, um método main é um “método de entrada”. Eu entendo o funcionamento, mas não tive uma clareza concreta sobre isso.
Obs: Ignorem os enormes comentários que fiz durante o código, como estou aprendendo, procuro anotar o máximo de informações, com o intuito de modificar os exercícios posteriormente, criando assim um gama maior de possibilidades de aprendizagem.
Obrigado.