Novo metodo

[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