eu tenho dois construtores na classe Funcionario por exemplo, tenho que faze-las separadas?
public Funcionario(campos) {
…
}
e
public Funcionario(campos e mais outros campos) {
…
}
?
eu tenho dois construtores na classe Funcionario por exemplo, tenho que faze-las separadas?
public Funcionario(campos) {
…
}
e
public Funcionario(campos e mais outros campos) {
…
}
?
[quote=frnd_]eu tenho dois construtores na classe Funcionario por exemplo, tenho que faze-las separadas?
[code]public Funcionario(campos) {
…
}
[/code]
e
[code]public Funcionario(campos e mais outros campos) {
…
}
[/code]
?
e no caso de metodos com mesmo nome e com parametros diferentes? eu faço a mesma coisa?
[/quote]
Sim, isso se chama sobrecarga de métodos ou construtores.
Isso se chama sobrecarga de métodos e construtores…existe muito material bom pela web e qualquer livro que fale sobre java também fala desse princípio básico…dá uma estudada nisso, é legal…
[]'s.
Falando nisso, alguem ja viu um construtor com varags? :twisted:
existe dois metodos da classe funcionario, reajustarSalario(percentual: int): void e o reajustarSalario(valor: double): void, então não tenho a ideia do que esses metodos fazem, vcs tem alguma ideia?
[]s
sera que eles não… Reajustam o Salário ?
Vejamos, nós temos um Funcionário.
Um funcionário TEM um salário.
Vc é o chefão, bondoso e cheio da grana, que chega e envia uma mensagem ao objeto funcionario: Reajuste o seu salário em 20 porcento.
Bom, o que acontece é que, com essa mensagem, o seu salário fica matematicamente 20 % maior.
A mensagem poderia ser outra: Reajuste o seu salário em 1000 reais.
MAS BAH!!! Melhor ainda!
Mas como isso funciona? qual a implementação?
A mais ‘obvia’ seria vc fazer algo assim
public void reajusta(double bonus){
this. salario = this.salario + bonus;
}
Sacou?
certo… mas e nesse caso? como funcionaria?
[code] public void reajustarSalario(int percentual){
this.salario = this.salario + percentual;
}
public void reajustarSalario (double valor) {
/* e aqui exibirá o valor JÁ COM PERCENTUAL? */
}
certo… mas e nesse caso? como funcionaria?
[code] public void reajustarSalario(int percentual){
this.salario = this.salario + percentual;
}
public void reajustarSalario (double valor) {
/* e aqui exibirá o valor JÁ COM PERCENTUAL? */
}
[/code]
Tu tem um salario de 1000 reais e recebeu um almento de 10%, pra quanto ele foi?
1100
criei esse programa:
import java.util.*;
public class Funcionario {
private int id;
private String nome;
private int diaNasc;
private int mesNasc;
private int anoNasc;
private char sexo;
private double salario;
private String cargo;
public Funcionario(int id, String nome, char sexo) {
this.id = id;
this.nome = nome;
this.sexo = sexo;
}
public Funcionario(int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario){
this.id = id;
this.nome = nome;
this.diaNasc = diaNasc;
this.mesNasc = mesNasc;
this.anoNasc = anoNasc;
this.sexo = sexo;
this.salario = salario;
}
public void reajustarSalario(int percentual){
this.salario = this.salario + percentual;
}
public void reajustarSalario (double valor) {
}
public int getId(){
return id;
}
public String getNome(){
return nome;
}
public int getDiaNasc(){
return diaNasc;
}
public int getMesNasc(){
return mesNasc;
}
public int getAnoNasc(){
return anoNasc;
}
public char getSexo(){
return sexo;
}
public double getSalario(){
return salario;
}
public void setId(int id){
this.id = id;
}
public void setNome(String nome){
this.nome = nome;
}
public void setDiaNasc(int diaNasc){
this.diaNasc = diaNasc;
}
public void setMesNasc(int mesNasc){
this.mesNasc = mesNasc;
}
public void setAnoNasc(int anoNasc){
this.anoNasc = anoNasc;
}
public void setSexo(char sexo){
this.sexo = sexo;
}
public void setSalario(double salario){
this.salario = salario;
}
}
e no main
public class FuncionarioMain {
public static void main(String args[]){
Funcionario f = new Funcionario();
}
}
nessa linha
“Funcionario f = new Funcionario();”
eu coloco
“Funcionario f = new Funcionario(valores);”
de qual construtor?
obs: a classe funcionario é ligado com a classe Motorista…
oi?
Não entendi sua dúvida, explique melhor.
T+
dificuldades no Main… ele nao funciona, dá erro no quando eu instancio o com a classe funcionario
sim, vai dar problema.
quando vc não declara um construtor, vc pode instanciar um objeto atraves do contrutor ‘padrão’
MEUobjeto xxx = new MEUobjeto();
agora, quando vc declara um construtor diferente do padrão, ja não tem mais este construtor implícito. precisas declara-lo então de forma explicita, que quer usar.
existe um motivo de design para um objeto ter um, varios ou nenhum construtor público. se vc tem um construtor que aceita parâmetros, então foi definido assim por alguma razão.
Pessoa p = new Pessoa();
Pessoa p = new Pessoa(“fulano”);
Pessoa p = new Pessoa(“fulano”,44,false);
Vc vai usar cada construtor acima na situação que achar melhor. talvez ter tantos seja um problema, ou talvez tenha poucos até, isso varia de acordo com o problema que vc ta tratando.
De uma olhada na classe File:
http://java.sun.com/j2se/1.4.2/docs/api/java/io/File.html
Agora boa sorte
Utilizei essa classe Main para rodar o programas mas nao funcionou, oque eu faço?
[]s
[code]public class FuncionarioMain {
public static void main(String args[]){
Funcionario f = new Funcionario(1, Fernando, 10, 2, 1998, M, 1200);
}
}
[/code]
[quote=frnd]Utilizei essa classe Main para rodar o programas mas nao funcionou, oque eu faço?
[]s
[code]
public class FuncionarioMain {
public static void main(String args[]){
Funcionario f = new Funcionario(1, "Fernando", 10, 2, 1998, "M", 1200);
}
}
[/code][/quote]
Qual o erro??
T+
symbol : constructor Funcionario(int,java.lang.String,int,int,int,java.lang.String,int)
location: class Funcionario
Funcionario f = new Funcionario(1, “Fernando”, 10, 2, 1998, “M”, 1200);
^
1 error
Process completed.