Java metodos

30 respostas
diegomelo

pessoal, ainda to iniciado no java, e gostaria de saber como crio um método, depois chamar esse método.

se puderem responder o mais breve possivel tenho prova semana que vem.

desde já agradeço

30 Respostas

P

criar um metodo envolve varios conceitos…tipo de retorno, qnt e tipos de parametros, etc…

acho seria interessante vc pegar uma apostila basica e dá uma lida…

diegomelo

já fiz isso, mais gostaria de um seguir um padrão pode me dar qualquer exemplo, se puder me dar obrigado

edpittol

Você quer usar recursão?

Um exemplo:

public static int fatorial(int n) {
  if (n <= 1) return 1;
  return n * fatorial(n-1);
}
Jaison

mais não tem nenhuma padrão!

um métodos é criado de acordo com a necessidade da sua aplicação…

magocebolinha

Padrão de metodo…

existem basicamente dois tipos… um que nã retorna um valor diretamente e sim executa uma ação…

serio mais ou menos assim…

um que n retorna diretamente um valor

void soma(int num1. int num2. int num3)  //   imprime na tela o valor da soma dos tres numeros dados como parametros aqui.
     {
       int soma; 
         
    this.num1 =num1;
       this.num2 =num2; 
       this.num3 =num3;
           
      soma  = num1 + num2 + num3;
       
       System.out.println("O valor da soma é: "+soma);
     }

e tem o que retorna que seria algo como

int getInfo() // este ja retorna um valor direto que neste caso seria o que esta armazenado na variavel info

{

return = info;

}

entendeu?

P

magocebolinha:
Padrão de metodo…

existem basicamente dois tipos… um que nã retorna um valor diretamente e sim executa uma ação…

serio mais ou menos assim…

um que n retorna diretamente um valor

void soma(int num1. int num2. int num3)  //   imprime na tela o valor da soma dos tres numeros dados como parametros aqui.
     {
       int soma; 
         
    this.num1 =num1;
       this.num2 =num2; 
       this.num3 =num3;
           
      soma  = num1 + num2 + num3;
       
       System.out.println("O valor da soma é: "+soma);
     }

e tem o que retorna que seria algo como

int getInfo() // este ja retorna um valor direto que neste caso seria o que esta armazenado na variavel info

{

return = info;

}

entendeu?

magocebolinha, na próxima, tente usar as tgs CODE para postar seu code. Com ele, fica melhor para visualizar…

agora, diegomelo , sinceramente, se o seu desespero para a prova se resume nisso…venhamos ne…senta a bunda e estuda… :stuck_out_tongue: é serio cara…ahahhaa…poxa, se vc sabe alguma outra linguagem de programacao alem de java (OO) vc deve saber +/- como funciona um metodo, ou se nao, se usa o pascal na faculdade…funcao (arghhhhh) ja ouviu falar?

entao, acho q isso podera te “ajudar” a entender melhor alguma coisa…tenta ser mais especifico na sua duvida…

"me ensina a construir um metodo e como chama-lo’…isso eh tenso demais ne…rs…

matava as aulas? :stuck_out_tongue:

magocebolinha

putz esqueci… foi mal…

Jaison

magocebolinha:
Padrão de metodo…

existem basicamente dois tipos… um que nã retorna um valor diretamente e sim executa uma ação…

serio mais ou menos assim…

vc chama isso de padrão de métodos?

eu ja acho q padrão não é a palavra certa pra declaração de métodos.

magocebolinha

talvez realmente n seja… coloquei desta forma par ao melhor entendimento dele…

diegomelo

agradeço a todos que aqui deram suas respostas, como falei to aqui iniciando e sei que isso são conceitos bem básicos. mais não fço nenhum curso de graduação na faculdade, e sim um curso tecnico e virtual uma vez por semana, tentei ler alguns artigos de apostilias, mais ainda ficou um pouco dificil de responder. mais agradeço ai vcs ainda não usei, vou faze um test. se não funcionar post aqui outra msg. entende-se pardal_nb. qualquer exemplo servia só pra ter uma ideia. se não tem nada a acrescetar meu não atrapalha.

diegomelo

import java.util.Scanner;
public class Prova {

public static void main(String[] args) {

Scanner ent = new Scanner(System.in);	

String 	nome;
float 	 idade,
	  peso,
	  altura,
              imc;

System.out.println("\n informe o nome da pessoa");

nome = ent.nextLine();

System.out.println("\n informe a idade da pessoa");

idade = ent.nextFloat();

System.out.println("\n informe o peso da pessoa");

peso = ent.nextFloat();

System.out.println("\n informe a altura da pessoa");

altura = ent.nextFloat();

}

}

pra ficar mais fácil e ser especifico, postei aqui meu programa.

  • quero criar um metodo que possa calcular o imc onde esse valor corresponde a uma taxa que é expressa da seguinte forma peso/(altura*altura).

  • depois outro método com if, que possa me dar as seguintes condições, 1 - se for maior que 18. 2 - entre 18 - 25. 3 - entre 25 - 30. e 4 - maior que 30.

depois utilisar gets e sets para o acesso a esses valores.

desde já obrigado.

diegomelo

edpittol:
Você quer usar recursão?

Um exemplo:

public static int fatorial(int n) { if (n <= 1) return 1; return n * fatorial(n-1); }

valeu vê se tu me ajuda ai nesse codigo. quero ser mais especifico.

import java.util.Scanner;
public class Prova {

public static void main(String[] args) {

Scanner ent = new Scanner(System.in);	

String 	nome;
float 	 idade,
	  peso,
	  altura,
              imc;

System.out.println("\n informe o nome da pessoa");

nome = ent.nextLine();

System.out.println("\n informe a idade da pessoa");

idade = ent.nextFloat();

System.out.println("\n informe o peso da pessoa");

peso = ent.nextFloat();

System.out.println("\n informe a altura da pessoa");

altura = ent.nextFloat();

}

}

pra ficar mais fácil e ser especifico, postei aqui meu programa.

  • quero criar um metodo que possa calcular o imc onde esse valor corresponde a uma taxa que é expressa da seguinte forma peso/(altura*altura).

  • depois outro método com if, que possa me dar as seguintes condições, 1 - se for maior que 18. 2 - entre 18 - 25. 3 - entre 25 - 30. e 4 - maior que 30.

depois utilisar gets e sets para o acesso a esses valores.

desde já obrigado.

T

Que tipo de curso técnico? Dependendo do tipo de curso, é mais fácil lhe explicar fazendo analogias.
Por exemplo, se você faz um curso técnico de Eletrônica ou Mecânica ou Edificações ou mesmo Análise Laboratorial, podemos lhe explicar de maneiras diferentes conforme o que você já sabe.
Todas as pessoas aprendem conforme o que já sabem antes; ninguém aprende nada do zero absoluto.

GeL

Pessoal eu pediria por favor que tivessem paciência com o Diego (e comigo), pois eu também estou aprendendo sozinho, sem curso nenhum só pelo livro do Deitel e não é fácil…
Diego no capítulo três do Deitel tem algumas explicações bem detalhadas sobre métodos, você tem o livro? Acho que poderia te ajudar, nos outros capítulos imagino que deve ter mais coisas, mas estou no 3 ainda.
Eu baixei o livro pelo emule, muito bom, mas ainda não estou muito familiarizado com os termos então ainda é difícil de entender, entendo mais observando a relação entre as linhas de programação, estou igual criança, não adianta só me falar, tem que fazer um desenho, contar uma histórinha e ainda fazer gestos para que eu entenda uuhauhauhuah
t+

diegomelo

um curso tecnico de programção pra internet pelo porto digital, tenho o deitel. consegui também, já dei uma olhada mais ainda tá um pouco dificil. pô pelo código não dá pra resolver não, já o mandei pra ficar mais fácil.

valeuuuuuuuuuuuuuuu!!!1

magocebolinha

como ja fiz em alguns topicos faço aki tb…se quiserem ajuda eh soh me add

[email removido]

pode ser que eu n tenha grande experiencia ateh pq estou terminando um modulo avançado do java pela IMPACTA ainda, mas posso ajudar com o que sei!

fiko on o dia todo aos finais de semana e anoite durante a semana!

ABRAÇO

diegomelo

blz, magocebolinha. mais tu não pode postar aqui essa resposta se tu souber mandei o programa ai, pois outros que tiverem duvida sobre o assunto já vai ser de ajuda flw.

um abraço!

magocebolinha

enfim… n posso postar meu msn então?
blz…num sabia… afinal sou novo no forum.

teve uma epoca que eu queria por queria aprender vb… corria atras de apostilas e tudo mais… autodidata total… nos foruns tentava tirar minhas duvidas e muitos n tinham paciencia para responder, aff… quanta raiva eu passava… entaum eu sei como eh a correria atras de aprender essas coisas… ainda mais que estamos falando de JAVA… na minha opinião posts ajudam na maioria dos casos… mas em outros casos, deve haver pelo menos algum tipo de interação com alguém que possa atentar para as duvidas do iniciante… e como disse tb estou aprendendo… a intenção foi das melhores.

GeL

Mago acho que vc pode postar o MSN sim, ele só quiz dizer se você não poderia (ou melhor se você poderia) postar por aqui mesmo pra todos nós vermos!!!
Concordo totalmente com você Mago, tem muita gente que não está muito a fim de ajudar, mas tem caras como você que são muito gente boa.
Eu em algumas coisas não sei nada (Java é um exemplo), mas em outras eu entendo um pouco, procuro ajudar no que posso e aprender com quem está disposto!!!
Obrigado pela força!!!

diegomelo

isso ai gel, não disse que vc não poderia postar teu msn não mago, mais como o gel falou se vc tem alguma paciência, em poder ,postar essas informações pros outros axo bom. pois muitos como eu e o gel, ficaria agradeçidos.

mais se vc axa melhor te comunicar por e-mail, já te mandei uma msg, responde então lá , blz cara

valeuuuuuuuuuuuuu!!!

magocebolinha

blz entaum… ta explicado…

entaum… diogo… esse lance que vc disse de querer fazer if’s, gets and sets… qual a sua duvida exatamente para faze-los??? pq é assim… pela logica e pela boa pratica vc define uma classe com os atributos private com gets and sets de inclusão… chama eles na classe executora e ja eras… achu que naum entendi sua duvida!

magocebolinha

pelo que eu to vendo aki vc pode fazer o seguinte ref ao metodo…

double calculoImc (double peso, double altura, double altura2)
{
     double calculo;
     calculo = peso /(altura *altura2);
     return calculo;
}

referente aos if´s explica melhor sua duvida!

abraço!

diegomelo

blz mago pela força cara. mais cassando por ai um cara também deu uma força e consegui o programa vou postar aqui pra ficar fácil pra alguém ter uma ideia falow.

public class Pessoa{

private String nome;

private float idade;

private float peso;

private float altura;

private float imc;
//METODOS SETS

public void setNome(String nome)

{
this.nome=nome;

}

public void setIdade(float idade)

{

this.idade=idade;
}

public void setPeso(float peso)

{
this.peso=peso;

}

public void setAltura(float altura)

{

this.altura=altura;
}

//METODOS GETS

public String getNome()

{

return nome;

}

public float getIdade()

{

return idade;
}

public float getPeso()

{

return peso;

}
public float getAltura()

{

return altura;

}
//CALCULA IMC

public void calculaImc()

{

imc = peso/(altura*altura);

System.out.println(" o IMC É " + imc);

}
//VERIFICA O PESO

public void verifica()

{

if(imc<18,5)

System.out.println(abaixo do peso);

if((imc>=18,5)&&(imc<=25))

System.out.println(peso normal);

if((imc>25)&&(imc<=30))

System.out.println(acima do peso);

if(imc>30)

System.out.println(obeso);

}

}

// em uma outra class pois é o que vai rodar

public class executaPessoa{

public static void main(String args[])
{
Pessoa p = new Pessoa();
p.setNome("manoel");
p.setIdade(25);
p.setpeso(80);
p.setAltura(2);
p.calculaImc();
p.verifica();
	
}

}

magocebolinha

esse metodo do IMC que vc postou, rodou??

diegomelo

rodou beleza, e ai pra ficar como entrada de dados coloquei

exp.: p.setNome(ent.nextLine());

ai fica pra pessoa digitar e não um valor pré-definido.

pra isso tinha que importar a biblioteca Scanner.

falow, valeu a força!

GeL

Diego blz?

Então, fiz algumas alterações no código, dá uma olhada ai o que vc acha!

Abraço!

/Importa classes.
import java.util.Scanner;
import java.util.Locale;

public class executaPessoa{

	public static void main(String args[]){
		
	Locale.setDefault (new Locale ("pt", "BR"));	
	Scanner entrada = new Scanner (System.in);
	
		Pessoa person = new Pessoa();{
			
			System.out.println ("Informe o seu nome:");
			String oNome = entrada.nextLine(); //Lê uma linha de texto.
			person.setNome(oNome);
			
			System.out.println ("Informe a sua Idade:");
			int aIdade = entrada.nextInt();
			person.setIdade(aIdade);
			
			System.out.println ("Informe o seu Peso:");
			int oPeso = entrada.nextInt();
			person.setPeso(oPeso);
			
			System.out.println ("Informe a sua altura:");
			double aAltura = entrada.nextDouble();
			person.setSuaAltura(aAltura);
			
			System.out.println ();
						
			person.calculaImc();
			person.verifica();
			
			} 
		}//Fim do main.
	}//Fim da classe.
public class Pessoa{

private String nome;
private float idade;
private float peso;
private double SuaAltura;
private double imc;

	//Métodos sets.
	public void setNome(String nome){
		this.nome = nome;
		}
	
	public void setIdade(float idade){
		this.idade=idade;
		}

	public void setPeso(float peso){
		this.peso=peso;}
	
	public void setSuaAltura(double altura){
		SuaAltura = altura;
		}

	//Métodos gets.
	public String getNome(){

		return nome;
		}

	public float getIdade(){
		return idade;
		}

	public float getPeso()
	{
		return peso;
		}

	public double getSuaAltura()
	{
		return SuaAltura;
		}

	//Calcula o IMC.
	public void calculaImc()
	{
		imc = peso/(SuaAltura*SuaAltura);
		int imc1 = (int) imc; // Arredonda o valor do IMC.
		
		System.out.println("O seu IMC E " + imc1 );
		System.out.println ();//Adiciona linha em branco.
		}

	//Condições para a verificação do peso.
	public void verifica()
	{
		if(imc<18.5){
			System.out.println("Voce esta Abaixo da faixa de peso ideal, procure um especialista.");
			}
		if((imc>=18.5)&&(imc<=25)){
			System.out.println("Seu Peso esta Normal! Tenha sempre bons habitos alimentares e pratique atividades fisicas!");
			}
		if((imc>25)&&(imc<=30)){
			System.out.println("Voce esta Acima do peso, atencao.");
			}
		if(imc>30){
			System.out.println("Voce esta Obeso, procure um especialista.");
			}//Fim das condições de verificação.
		}//Fim do método main.
	}//Fim da Classe.
diegomelo

valeu gel, mais e essa biblioteca locale serve pra que?,

na entrada de dados acrescentei assim

Scanner ent = Scanner(System.in);

Pessoa p = new Pessoa;

p.setNome(ent.nextLine());

assim axei melhor, mais vou dar uma olhada no teu valeu a força gel.

um abraço.

GeL

Diego naquele outro código não estava aceitando a altura real por ser uma variável do tipo INT, então tive que mudar pra Double, pra pode colocar 1,76, e só deu certo adicionando o Locale.

Mas isso foi um camarada aqui do Forum que me ensinou, não perguntei o funcionamento do mecanismo, mas preciso ver também.

Abraço!

GeL

Seria legal fazermos um GUI pra ele, mas não tenho idéia de como se faz hehehe

Mas estou pesquisando!

diegomelo

e verdade esqueci de te dizer tive que mudar pra double mesmo, se não não calculava.

valeu, se der pra ver o gui vai ser bom.

Criado 14 de dezembro de 2007
Ultima resposta 19 de dez. de 2007
Respostas 30
Participantes 7