kodak
Junho 16, 2016, 6:52pm
#1
Estou com o seguite problema: estou desenvolvendo um sistema através da apostila Caellum Java Oriantação a Objeto.
===> Estou com o seguinte problema.
Na página 54 pede para eu concatenar a data que se encontra em valor inteiro.
==> Classe Data:
int dia;
int mes;
int ano;
void formatada(){
String dataString = Integer.toString(dia)+
Integer.toString(mes)+
Integer.toString(ano);
==> A classe “Funcionário” existe o metodo mostrar e dentro dele que colocarei a data formatada
motrar(){
System.out.println("Data de entrada: " = this.dataDeEntrada.formatada());
}
==> A classe “Testa funcionário” que carregará as informações
Data data = new Data();
f1.dataDeEntrada = data;
f1.dataDeEntrada.dia = 01;
f1.dataDeEntrada.mes = 12;
f1.dataDeEntrada.ano = 2016;
void mostrar();
Quando executo a classe Testar funcionário da a seguinte informação:
The metodo formatada is undefined for the type Data
O FormData método é indefinido para o tipo de dados. (informando método indefinido) não to conseguido resolver.
A classe Data e Funcionário estão dentro do mesmo pacote?
Se não estiverem deixe o método formatada() como publico:
public void formatada()…
Tem um metodo em Funcionário motrar(), mas você chama o “mostrar”… foi erro de digitação ou existe um método mostrar em “Testa funcionário”? esta classe está num pacote diferente?
A visibilidade dos seus método está default onde só é possível acessar do mesmo pacote, se fosse public você conseguiria acessar, veja se é isso e se não for, dê mais informações sobre o problema.
=D
kodak
Junho 16, 2016, 7:24pm
#3
Estão todos dentro do mesmo pacote “Empresa”.
Foi mal cara, vi agora que seu formatada tem um retorno void, mude para o retorno String
String formatada() { String dataString = Integer.toString(dia) + Integer.toString(mes) + Integer.toString(ano); return dataString; }
no método “motrar”
motrar(){ System.out.println("Data de entrada: " + this.dataDeEntrada.formatada()); }
kodak
Junho 16, 2016, 7:52pm
#6
Está dando a mensagem: The metodo dataString() is undefined for the type Data
Cla
Classe Funcionário:
package Empresa;
public class Funcionario {
String nome;
double salario;
double ganhoAnual;
Data dataDeEntrada;
void recebeAumento(double aumento){
this.salario += this.salario + aumento;
}
void calculaGanhoAnual(){
ganhoAnual = salario * 12;
}
public void mostrar(){
System.out.println("Nome: " + this.nome);
System.out.println("Salário: "+ this.salario);
System.out.println("ganho anual: " + this.ganhoAnual);
System.out.println(dataDeEntrada);
System.out.println("Dia: " + this.dataDeEntrada.dia);
System.out.println("Mês " + this.dataDeEntrada.mes);
System.out.println("Ano " + this.dataDeEntrada.ano);
System.out.println("Data de entrada: " + this.dataDeEntrada.formatada());
}
}
Classe Data:
package Empresa;
public class Funcionario {
String nome;
double salario;
double ganhoAnual;
Data dataDeEntrada;
void recebeAumento(double aumento){
this.salario += this.salario + aumento;
}
void calculaGanhoAnual(){
ganhoAnual = salario * 12;
}
public void mostrar(){
System.out.println("Nome: " + this.nome);
System.out.println("Salário: "+ this.salario);
System.out.println("ganho anual: " + this.ganhoAnual);
System.out.println(dataDeEntrada);
System.out.println("Dia: " + this.dataDeEntrada.dia);
System.out.println("Mês " + this.dataDeEntrada.mes);
System.out.println("Ano " + this.dataDeEntrada.ano);
System.out.println("Data de entrada: " + this.dataDeEntrada.formatada());
}
}
Classe TestaFuncionário:
package Empresa;
public class TestaFuncionario {
public static void main(String [] args){
Funcionario f1 = new Funcionario();
Data data = new Data();
f1.dataDeEntrada = data;
f1.dataDeEntrada.dia = 01;
f1.dataDeEntrada.mes = 12;
f1.dataDeEntrada.ano = 2016;
f1.nome = "Hugo";
f1.salario = 100;
f1.recebeAumento(50);
f1.calculaGanhoAnual();
System.out.println("Salário atual: " +f1.salario);
System.out.println("Ganho anual: " + f1.ganhoAnual);
f1.mostrar();
Funcionario f2 = new Funcionario();
f2 .nome = "Danilo";
f2.salario = 100;
if(f1 == f2){
System.out.println("Iguais");
}else{
System.out.println("diferentes");
}
}
}
faltou a classe data… você colou Funcionario 2 vezes
kodak
Junho 16, 2016, 8:00pm
#8
Classe Data:
package Empresa;
public class Data {
int dia;
int mes;
int ano;
String formatada(){
String dataString = Integer.toString(dia)
+Integer.toString(mes)
+Integer.toString(ano);
//return dataString();
return dataString();
}
Na linha[quote=“kodak, post:8, topic:330162”]
return dataString();
[/quote]
tire os parenteses.
ficaria:
return dataString;
kodak
Junho 16, 2016, 8:10pm
#10
Funcionou, Muito Obrigado.
Ficou assim:
String formatada(){
String dataString = Integer.toString(dia)+"/"
+Integer.toString(mes)+"/"
+Integer.toString(ano);
return dataString;
}
Dê uma olhada sobre datas antes, existem formas mais corretas:
http://www.mkyong.com/java/java-date-and-calendar-examples/
kodak
Junho 18, 2016, 2:27am
#12
Valeu.
(Guardei o link para uma futura necessidade).
rsrsrsrsrs…