…
[quote=re_dexter]Tenho esse codigo
[code]import java.util.Calendar;
import java.util.GregorianCalendar;
class funcionario {
String nome;
String departamento;
double salario;
String dataentrada;
String rg;
static Calendar cal = new GregorianCalendar();
public static void main(String[] args) {
int hour24 = cal.get(Calendar.HOUR_OF_DAY); //obtem a hora no formaato 24h
boolean presente = (hour24 > 8 || hour24 < 18);
if(presente) {
System.out.println("Presente");
}else{
System.out.println("Nao esta presente");
}
}
void bonifica(double valor) {
double novosalario = this.salario + valor;
this.salario = novosalario;
}
} [/code]
mais eu só consegui compilar esse metodo boolean colocando ele como metodo interno…
Mais estava pensando aqui, e esse nao é meu objetivo, meu objetivo é falar se é verdadeiro ou falso
e em otra classe envocar esse booleano, e se for verdadeiro ele vai responder de uma forma
e se for falso vai responder de outra…entao eu tentei fazer isso
[code]import java.util.Calendar;
import java.util.GregorianCalendar;
class funcionario {
String nome;
String departamento;
double salario;
String dataentrada;
String rg;
static Calendar cal = new GregorianCalendar();
int hour24 = cal.get(Calendar.HOUR_OF_DAY); //obtem a hora no formaato 24h
boolean presente = (hour24 > 8 || hour24 < 18);
if(presente) {
return false;
}else{
return true;
}
void bonifica(double valor) {
double novosalario = this.salario + valor;
this.salario = novosalario;
}
} [/code]
Mas com esse nao consegui compilar =((…
Ficaria como??[/quote]
É erro seu ou
int hour24 = cal.get(Calendar.HOUR_OF_DAY); //obtem a hora no formaato 24h
boolean presente = (hour24 > 8 || hour24 < 18);
if(presente) {
return false;
}else{
return true;
}
Tá solto na classe assim mesmo?
Se for coloqueo dentro de um método
[code]
public boolean getPresente(){
int hour24 = cal.get(Calendar.HOUR_OF_DAY); //obtem a hora no formaato 24h
return (hour24 > 8 || hour24 < 18);//Essa comparação já retorna um boolean, você não precisa ver depois se é verdadeiro para voltar true ou false para voltar false
}
[/code]E outra coisa por conveção começe a primeira letra do nome da classe com letra maiuscula
Porque seu código está fora de um método.
Coloque o código da linha 10 a linha 18 dentro de um método que retorna este booleano.
Mark, mas eu queria em outra classe envocar esse metodo, para em outra classe se fosse verdadeiro imprimiria tal, e se fosse falso imprimiria outra coisa…
certo??? esse novo codigo seu eu nao entendi…eu nao entendi o que ele retorna…
=/
isso
return (hour24 > 8 || hour24 < 18);
é o mesmo que isso
boolean result = (hour24 > 8 || hour24 < 18);
return result;
ou o que você fez
boolean presente = (hour24 > 8 || hour24 < 18);
if(presente) {
return false;
}else{
return true;
}
Tudo faz a mesma coisa mas é mais simples do modo que fiz.
Para usar o método em outras classes é só deixar ele public e acessar por outro objeto, um exemplo completo
[code]public class Usuario {
private String user;
private String pass;
// Getters & Setters
public boolean senhaMenosDeCincoChars() {
return (pass.length() < 5);
}
}
public class OutraClasse {
public static void main(string[] args) {
Usuario user = new Usuario();
user.setUser(“Mark_Ameba”);
user.setPass(“mark”);
boolean menor = user.senhaMenosdeCincoChars();
if (menor)
System.out.println(“Menor”);
else
System.out.println(“Maior”);
user.setPass("m4rk0ameb4");
boolean menor = user.senhaMenosdeCincoChars();
if (menor)
System.out.println("Menor");
else
System.out.println("Maior");
}
}
[/code]
EDIT: Código identado^^
[quote=re_dexter]Mark, mas eu queria em outra classe envocar esse metodo, para em outra classe se fosse verdadeiro imprimiria tal, e se fosse falso imprimiria outra coisa…
certo??? esse novo codigo seu eu nao entendi…eu nao entendi o que ele retorna…
=/[/quote]
Tente o seguinte:
[code]import java.util.Calendar;
import java.util.GregorianCalendar;
class Funcionario {
String nome;
String departamento;
double salario;
String dataentrada;
String rg;
Public boolean verificar(){
static Calendar cal = new GregorianCalendar();
int hour24 = cal.get(Calendar.HOUR_OF_DAY); //obtem a hora no formaato 24h
boolean presente = (hour24 > 8 || hour24 < 18);
if(presente) {
return false;
}else{
return true;
}
}
void bonifica(double valor) {
double novosalario = this.salario + valor;
this.salario = novosalario;
}
}[/code]
Dai crie uma instância dessa classe na outra classe (a que deseja invocar o método)
Exemplo:
Funcionario fulano = new Funcionario();
fulano.verificar();
Obs.: A classe funcionario foi alterada para Funcionario.
T+
PS: Você não pode criar variaveis locais estaticas, isso tem que ficar na classe.
OLá Mark,
É isso mesmo, Viajei :oops:
É q não tenho como testar no momento, então passei batido.
Valeu pela correção
Abraços
[quote=Wesley Marra][quote=re_dexter]Mark, mas eu queria em outra classe envocar esse metodo, para em outra classe se fosse verdadeiro imprimiria tal, e se fosse falso imprimiria outra coisa…
certo??? esse novo codigo seu eu nao entendi…eu nao entendi o que ele retorna…
=/[/quote]
Tente o seguinte:
[code]import java.util.Calendar;
import java.util.GregorianCalendar;
class Funcionario {
String nome;
String departamento;
double salario;
String dataentrada;
String rg;
Public boolean verificar(){
static Calendar cal = new GregorianCalendar();
int hour24 = cal.get(Calendar.HOUR_OF_DAY); //obtem a hora no formaato 24h
boolean presente = (hour24 > 8 || hour24 < 18);
if(presente) {
return false;
}else{
return true;
}
}
void bonifica(double valor) {
double novosalario = this.salario + valor;
this.salario = novosalario;
}
}[/code]
Dai crie uma instância dessa classe na outra classe (a que deseja invocar o método)
Exemplo:
Funcionario fulano = new Funcionario();
fulano.verificar();
Obs.: A classe funcionario foi alterada para Funcionario.
T+
[/quote]
Vixi
deu mais erros ainda
Funcionario.java:11: expected
Public boolean verificar(){
^
Funcionario.java:12: illegal start of expression
static Calendar cal = new GregorianCalendar();
^
Funcionario.java:16: illegal start of type
if(presente) {
^
Funcionario.java:16: expected
if(presente) {
^
Funcionario.java:18: illegal start of type
}else{
^
Funcionario.java:23: class, interface, or enum expected
void bonifica(double valor) {
^
Funcionario.java:25: class, interface, or enum expected
this.salario = novosalario;
^
Funcionario.java:26: class, interface, or enum expected
}
^
8 errors
Outra pergunta, eu estou sendo muito burro ou voces tiveram um pouco de duvida assim no começo??
=((
[quote=re_dexter] Vixi
deu mais erros ainda
Funcionario.java:11: expected
Public boolean verificar(){
^
Funcionario.java:12: illegal start of expression
static Calendar cal = new GregorianCalendar();
^
Funcionario.java:16: illegal start of type
if(presente) {
^
Funcionario.java:16: expected
if(presente) {
^
Funcionario.java:18: illegal start of type
}else{
^
Funcionario.java:23: class, interface, or enum expected
void bonifica(double valor) {
^
Funcionario.java:25: class, interface, or enum expected
this.salario = novosalario;
^
Funcionario.java:26: class, interface, or enum expected
}
^
8 errors
Outra pergunta, eu estou sendo muito burro ou voces tiveram um pouco de duvida assim no começo??
=((
[/quote]
Como falei, estou sem ter como testar no momento.
A questão ai é que eu coloquei o Public com letra maiuscula…
Retire a linha:
static Calendar cal = new GregorianCalendar();
de dentro do método, colocando-a na classe
e tente tirar o static de Calendar, caso dê algum erro.
import java.util.Calendar;
import java.util.GregorianCalendar;
class Funcionario {
String nome;
String departamento;
double salario;
String dataentrada;
String rg;
static Calendar cal = new GregorianCalendar();
public boolean verificar(){
int hour24 = cal.get(Calendar.HOUR_OF_DAY); //obtem a hora no formaato 24h
return (hour24 > 8 || hour24 < 18);
}
void bonifica(double valor) {
double novosalario = this.salario + valor;
this.salario = novosalario;
}
}
Dúvida assim? Já tive no minímo umas 10 pior