Você está passando o sexo assim:
"M"
E o seu construtor recebe um char, então você tem que passar assim:
'M'
Aspas duplas são para Strings, e simples para char:
Funcionario f = new Funcionario(1, "Fernando", 10, 2, 1998, 'M', 1200);
T+
Você está passando o sexo assim:
"M"
E o seu construtor recebe um char, então você tem que passar assim:
'M'
Aspas duplas são para Strings, e simples para char:
Funcionario f = new Funcionario(1, "Fernando", 10, 2, 1998, 'M', 1200);
T+
existem dois metodos com o mesmo nome, reajustarSalario… no primeiro ele recebe como parametro o percentual: int, de aumento no salario… o seguinte recebe valor: double, então creio que no segundo ele já traz o salario ja com percentual para sua classe e mostra … é isso mesmo?
public void reajustarSalario(int percentual){
this.salario = this.salario + percentual;
}
public void reajustarSalario (double valor) {
valor = this.salario;
System.out.print(valor);
}
No primeiro ele faz um reajuste no salário:
this.salario = this.salario + percentual;
mas no segundo ele não faz nada, apenas exibe o salário atual.
T+
tá ok! obrigado!
e como faço para testar no Main com todos os dados que passei na classe? a partir dos dados digitados pelo usuario?
[]s
Tem várias maneiras, você pode solicitar os dados ao usuário através do console (classe Scanner), através de diálogos (classe JOptionPane) ou através de uma interface gráfica (classe JFrame, JDialog, entre outras)…
T+
Cara, não sei se estou vendo certo, pois já passou meu horário de dormir. Mas qual o erro na hora de instanciar? Visualização ?
atualmente estou mexendo com o Scanner… mas como eu pegaria os dados do usuario, os atributos da classe… e dps os metodos…
está dando erro sempre na linha 9 e 13 dessa classe, oque tem de errado?
import java.util.*;
public class Motorista extends Funcionario {
private long cnh;
private char categoriaCnh;
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
this.cnh = cnh;
this.categoriaCnh = categoriaCnh;
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
}
public long getCnh(){
return cnh;
}
public char categoriaCnh(){
return categoriaCnh;
}
public void setCnh(long cnh){
this.cnh = cnh;
}
public void setcategoriaCnh(char categoriaCnh){
this.categoriaCnh = categoriaCnh;
}
}
Uma chamada a super deve ser a primeira instrução em um construtor:
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
this.cnh = cnh;
this.categoriaCnh = categoriaCnh;
}
T+
mas ainda dá erro…
--------------------Configuration: --------------------
G:\Revisao\Motorista.java:9: ‘{’ expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: ‘;’ expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:9: ‘;’ expected
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
^
G:\Revisao\Motorista.java:10: ‘.class’ expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:10: ‘;’ expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:10: expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:10: expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:10: expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:10: expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:10: expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:10: expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:10: ‘;’ expected
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
^
G:\Revisao\Motorista.java:30: reached end of file while parsing
}
Process completed.
Não sei entendi bem mas a chamada do seu construtor ainda apresenta erros, pois vc está chamando o construtor da superclasse e não redeclarando.
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
super(int id,String nome,int diaNasc,int mesNasc,int mesNasc, int anoNasc, char sexo, double salario);
this.cnh = cnh;
this.categoriaCnh = categoriaCnh;
}
Deveria ficar assim
public class Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
super( id, nome, diaNasc, mesNasc, mesNasc, anoNasc, sexo, salario);
this.cnh = cnh;
this.categoriaCnh = categoriaCnh;
}
note que na chamada do super não há nenhum identificador
ok funcionou desta forma
public class Motorista extends Funcionario {
private long cnh;
private char categoriaCnh;
public Motorista (int id, String nome, int diaNasc, int mesNasc, int anoNasc, char sexo, double salario, long cnh, char categoriaCnh) {
super(id, nome, diaNasc, mesNasc, anoNasc, sexo, salario);
this.cnh = cnh;
this.categoriaCnh = categoriaCnh;
}
public long getCnh(){
return cnh;
}
public char categoriaCnh(){
return categoriaCnh;
}
public void setCnh(long cnh){
this.cnh = cnh;
}
public void setcategoriaCnh(char categoriaCnh){
this.categoriaCnh = categoriaCnh;
}
}
estou tentando criar o Main para rodar a classe Funcionario, mas… dá erro na classe Scanner, eu declarei errado? ou em lugar errado?
[code] public class FuncionarioMain {
public static void main(String args[]){
Funcionario f;
Scanner scan = new Scanner(System.in);
int id;
String nome;
int diaNasc;
int mesNasc;
int anoNasc;
char sexo;
double salario;
System.out.println("Entre com o ID do Funcionario");
id = scan.nextInt();
System.out.println("Entre com o nome do Funcionario");
nome = scan.nextLine();
System.out.println("Entre com o dia de nascimento do Funcionario");
diaNasc = scan.nextInt();
System.out.println("Entre com o mes de nascimento do Funcionario");
mesNasc = scan.nextInt();
System.out.println("Entre com o ano de nascimento do Funcionario");
anoNasc = scan.nextInt();
System.out.println("Entre com o sexo do Funcionario");
sexo = scan.nextChar();
System.out.println("Entre com o salario do Funcionario");
salario = scan.nextDouble();
}
}
[/code]
--------------------Configuration: --------------------
G:\Revisao\FuncionarioMain.java:6: cannot find symbol
symbol : class Scanner
location: class FuncionarioMain
Scanner scan = new Scanner(System.in);
^
G:\Revisao\FuncionarioMain.java:6: cannot find symbol
symbol : class Scanner
location: class FuncionarioMain
Scanner scan = new Scanner(System.in);
^
2 errors
Process completed.
Você esqueceu de importar a classe Scanner:
import java.util.Scanner;
T+
criei esse programa mas não consigo rodar certinho… dá erro quando eu instancio o objetos
import java.util.Scanner;
public class FuncionarioMain {
public static void main(String args[]){
Funcionario f;
Scanner scan = new Scanner(System.in);
int id;
String nome;
int diaNasc;
int mesNasc;
int anoNasc;
char sexo;
double salario;
double valor;
System.out.println("Entre com o ID do Funcionario");
id = scan.nextInt();
[b]f = new Funcionario(id);[/b]
System.out.println("Entre com o nome do Funcionario");
nome = scan.nextLine();
[b]f = new Funcionario(nome);[/b]
System.out.println("Entre com o dia de nascimento do Funcionario");
diaNasc = scan.nextInt();
[b]f = new Funcionario(diaNasc);[/b]
System.out.println("Entre com o mes de nascimento do Funcionario");
mesNasc = scan.nextInt();
[b]f = new Funcionario(mesNasc);[/b]
System.out.println("Entre com o ano de nascimento do Funcionario");
anoNasc = scan.nextInt();
[b]f = new Funcionario(anoNasc);[/b]
System.out.println("Entre com o sexo do Funcionario");
sexo = scan.nextLine().charAt(0);
[b]f = new Funcionario(sexo);[/b]
System.out.println("Entre com o salario do Funcionario");
salario = scan.nextDouble();
[b]f = new Funcionario(salario);[/b]
}
}
rs, o erro poderia estar mostrando onde está o negrito ‘[b]’
Você tem que fazer assim:
[code]import java.util.Scanner;
public class FuncionarioMain {
public static void main(String args[]) {
Funcionario f;
Scanner scan = new Scanner(System.in);
int id;
String nome;
int diaNasc;
int mesNasc;
int anoNasc;
char sexo;
double salario;
double valor;
System.out.println("Entre com o ID do Funcionario");
id = scan.nextInt();
System.out.println("Entre com o nome do Funcionario");
nome = scan.nextLine();
System.out.println("Entre com o dia de nascimento do Funcionario");
diaNasc = scan.nextInt();
System.out.println("Entre com o mes de nascimento do Funcionario");
mesNasc = scan.nextInt();
System.out.println("Entre com o ano de nascimento do Funcionario");
anoNasc = scan.nextInt();
System.out.println("Entre com o sexo do Funcionario");
sexo = scan.nextLine().charAt(0);
System.out.println("Entre com o salario do Funcionario");
salario = scan.nextDouble();
f = new Funcionario(id,nome,diaNasc,mesNasc,anoNasc,sexo, salario,valor);
}
}[/code]
mas tá mostrando errado quando eu executo o programa (dps de compilado)
ele pede o ID, eu digito e dps pede ao mesmo tempo nome e dia de nascimento… dps pede 1 de cada vez quando chega no sexo ele mostra o erro StringIndexOutOfBoundsException
oque fazer?
[]s
Tenta assim:
[code]import java.util.Scanner;
public class FuncionarioMain {
public static void main(String args[]) {
Funcionario f;
Scanner scan = new Scanner(System.in);
int id;
String nome;
int diaNasc;
int mesNasc;
int anoNasc;
char sexo;
double salario;
double valor;
System.out.println("Entre com o ID do Funcionario");
id = scan.nextInt();
System.out.println("Entre com o nome do Funcionario");
scan.nextLine();
nome = scan.nextLine();
System.out.println("Entre com o dia de nascimento do Funcionario");
diaNasc = scan.nextInt();
System.out.println("Entre com o mes de nascimento do Funcionario");
mesNasc = scan.nextInt();
System.out.println("Entre com o ano de nascimento do Funcionario");
anoNasc = scan.nextInt();
System.out.println("Entre com o sexo do Funcionario");
scan.nextLine();
sexo = scan.nextLine().charAt(0);
System.out.println("Entre com o salario do Funcionario");
salario = scan.nextDouble();
f = new Funcionario(id,nome,diaNasc,mesNasc,anoNasc,sexo, salario,valor);
}
}[/code]
T+