Novo metodo

11 respostas
R

11 Respostas

Marky.Vasconcelos
re_dexter:
Tenho esse codigo
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;     
    }   
}

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

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;     
    }   
}

Mas com esse nao consegui compilar =((...
Ficaria como??

É 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
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
       
}
E outra coisa por conveção começe a primeira letra do nome da classe com letra maiuscula
Rafael_Nunes

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.

R

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…
=/

Marky.Vasconcelos
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

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");
	}
}

EDIT: Código identado^^

wamarra
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... =/
Tente o seguinte:
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;       
    }     
}
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+

Marky.Vasconcelos

PS: Você não pode criar variaveis locais estaticas, isso tem que ficar na classe.

wamarra

OLá Mark,

É isso mesmo, Viajei :oops:
É q não tenho como testar no momento, então passei batido.
Valeu pela correção
Abraços

R
Wesley Marra:
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... =/
Tente o seguinte:
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;       
    }     
}
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+

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??
=((

wamarra
<blockquote><div class="quote-author">re_dexter:</div> 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??
=((

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.

Marky.Vasconcelos
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;         
    }       
}
Marky.Vasconcelos

Dúvida assim? Já tive no minímo umas 10 pior

Criado 21 de novembro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 11
Participantes 4