Do capitulo Começando com Orientação a objetos, não consegui executar o código dos exercícios: 6, 7, 8 e 9.
Se Alguém por gentileza, puder me ajudar, agradeço de coração.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Do capitulo Começando com Orientação a objetos, não consegui executar o código dos exercícios: 6, 7, 8 e 9.
Se Alguém por gentileza, puder me ajudar, agradeço de coração.
Boa noite Vicente, poste o sua dúvida para que eu possa ajudá-lo....
Boa noite! Theomar, as minhas duvidas ou dificuldades começam no Exercício 6 e vai até o Exercício 9.
Estou postando o Exercício 6, acredito que se este funcionar, o restante irá executar.
Ao compilar a classe TestaFuncionariox ocorre os seguintes erros:
C:\Ambiente Alura>javac tstaFuncionariox.java
TestaFuncionariox.java:9: error: incompatible types
F1.dataEntrada = new Data();
Required: String
Found: Data
TestaFuncionariox.java:10: error: cannot find symbol
F1.dataEntrada.preencheDataEntrada(15,01,2014);
Symbol: method preencheDataEntrada(int,int,int);
Location: variable dataEntrada of type String
2 errors
public class Data {
int dia;
int mes;
int ano;
void preencheDataEntrada (int dia, int mes, int ano) {
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
}
public class Funcionariox {
String nome;
Data dataEntrada;
double salario;
void recebeAumento(double aumento) {
this.salario +=aumento;
}
void mostra1() {
System.out.println("Nome f1.........: " + this.nome);
System.out.println("Data Entrada f1.: " + this.dataEntrada);
System.out.println("Salario Atual f1: " + this.salario);
}
}
public class TestaFuncionariox {
public static void main(String[] args) {
Funcionario f1 = new Funcionario();
f1.nome = "Vicente Paulo";
f1.salario = 240.00;
f1.recebeAumento(60);
f1.dataEntrada = new Data();
f1.dataEntrada.preencheDataEntrada(15, 01, 2014);
f1.mostra1();
}
}
Boa Tarde Vicente! Você nomeou sua classe como 'TestaFuncionariox' e quando está pedindo para compilar está digitando 'javac tstaFuncionariox.java' tente fazer 'javac TestaFuncionariox.java'.
Boa tarde Vicente, você criou sua classe como "public class Funcinonariox" e está instanciando como new Funcionario()
Theomar, tem muitas coisas estranhas no seu código.
1) O que o Fabio já falou: você está compilando tstaFuncionariox.java.
O arquivo tstaFuncionariox.java existe no seu computador ??
Se ele não existe a mensagem de erro seria que o arquivo não foi encontrado...
2) As 3 classes são púlicas. Por isto devem ser salvas nos arquivos
Data.java
Funcionariox.java
TestaFuncionariox.java
3) Como o Hugo já disse, você tem a classe Funcionariox, e não Funcionario.
Para que seu código funcione você deve ter 3 arquivos como segue:
Data.java
public class Data {
int dia;
int mes;
int ano;
void preencheDataEntrada (int dia, int mes, int ano) {
this.dia = dia;
this.mes = mes;
this.ano = ano;
}
}
Funcionariox.java
public class Funcionariox {
String nome;
Data dataEntrada;
double salario;
void recebeAumento(double aumento) {
this.salario +=aumento;
}
void mostra1() {
System.out.println("Nome f1.........: " + this.nome);
System.out.println("Data Entrada f1.: " + this.dataEntrada);
System.out.println("Salario Atual f1: " + this.salario);
}
}
TestaFuncionariox.java
public class TestaFuncionariox {
public static void main(String[] args) {
Funcionariox f1 = new Funcionariox();
f1.nome = "Vicente Paulo";
f1.salario = 240.00;
f1.recebeAumento(60);
f1.dataEntrada = new Data();
f1.dataEntrada.preencheDataEntrada(15, 01, 2014);
f1.mostra1();
}
}
Compile os 3
javac Data.java
javac Funcionariox.java
javac TestaFuncionariox.java
para testar: java TestaFuncionariox
4) Outra coisa muito estranha: De onde saiu F1.dataEntrada = new Data(); ??? O java é case sensitive. No seu código não vi F1 em nenhum lugar...
Desculpe estava me referindo ao Vicente e não ao Theomar
Além disto, onde eu digo pulicas, leia-se públicas.
Realmente o único problema é chamar "new Funcionario()" no lugar de "new Funcionariox()"
Quanto ao "javac tstaFuncionariox.java" está correto pois o nome do arquivo e da classe principal (main) é tstaFuncionariox. Deve-se compilar pelo nome do arquivo e o colega estava fazendo isso correto, tanto que o compilador identifica um problema durante a compilação, ou seja, encontrou o arquivo.
Acabei de perceber mais uma coisa, o compilador acusa que tu chamou F1.dataEntrada e pelo teu código tu definiu a variável como f1. Cuidado que JAVA é case sensitive, ou seja f1 e F1 são coisas diferentes.
Obrigado! a todos, consegui entender e resolver a questão.