GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

O que é um METODO?


#1
  1. Escreva um programa para ler o número de alunos existentes em uma turma, ler as notas destes alunos, e calcular a média aritmética destas notas.
    Sugestão: faça método para ler os dados e outro para calcular e retornar a média.

O que seria esse método que ele se refere?

Se alguem quiser me add no msn: tiagocoelho2005@hotmail.com


#2

Método seria uma função, um recurso que a sua classe teria. Por exemplo:

public class Aluno {
private double notaAluno;
//Isto seria um metodo que retorna a nota do aluno
public double calculaNota (notaAluno)
      //Implementação do método, por exemplo, calculando a nota junto com nota de 
      //comportamento, presença, etc.
      //Retorna a nota calculada do aluno
      return this.notaAluno;
}

Entendeu ?

Agora esse seu exercicio, vai te que pensa um pouco mais, modela-lo em UML ajudaria muito !


#3

No caso eu estou confundindo COMANDO com METODO tipo:

nome = JOptionPane.showInputDialog("Digite seu nome:"); é um comando

um metodo armazena mais comandos dentro dele obtendo um resultado final, é isso?


#4

Um método pode fazer uso de outros métodos dentro do mesmo para alcançar um resultado final. Por exemplo:

public double calculaMedia (Aluno aluno){
              // Exemplo bem esdruxulo...
              this.mediaFinal = (aluno.getNotaProva()) + (aluno.getNotaComportamento());
              return this.mediaFinal;
}

Viu só, usei dois metodos da classe Aluno para me trazer suas duas notas (Prova e comportamento), para enfim calcular a media final.


#5

public double calculaMedia (Aluno aluno){   
              // Exemplo bem esdruxulo...   
              this.mediaFinal = (aluno.getNotaProva()) + (aluno.getNotaComportamento());   
              return this.mediaFinal;   
}

ok.. vc pode me dizer agora pra q esse "this." tem que ter isso?


#6

O "this" referencia o objeto que a classe gerou. Por exemplo, eu tenho a classe "Aluno", e essa classe gerou o aluno "Erick". Quando a classe do aluno "Erick" chamar o metodo, o "this" vai servir para referenciar o aluno "Erick".

//Crio um novo objeto da classe aluno
Aluno erick = new Aluno();
// Setei o atributo "nome" da classe "Aluno", cujo objeto gerado é "erick", para "Erick".
this.nome = "Erick"; 
//Quando eu consutar o atributo "nome" do objeto "erick", terei o seguinte código:
public String getNome(){
    return this.nome;
}
//Para chamar o metodo que retorna o nome
erick.getNome();

Sacou ?


#7

Entendi sim... valew... :smile:


#8

Acho que vai ficar mais facil de você entender se te falarem desta forma:

Metodo é um conjunto de comandos com a finalidade de chegar a algum resultado.

Se você já programou em outra linguagem você pode comparar os metodos com funções que tem dentro delas conjuntos de instruções (algoritimos) que tem alguma finalidade.

Por exemplo um metodo(função) que calcula dois numeros:

Em C

void int soma(){
 int n1,n2,soma;
 printf("Entre com o primeiro numero : ");
 scanf("%d",&n1);
 printf("Entre com o segundo numero : ");
 scanf("%d",&n2);
soma = n1 + n2;
printf("O valor da soma dos dois numeros é : %d",soma);
}

Isso é uma função em C, que tem por objetivo somar dois numeros.

Em java temos um metodo que calcula dois numeros só que pelo que eu entendi o seu exercicio deve ser algo assim:

Ter uma classe que contem um metodo main:
Ter dois metodos, um que recupera os dados (notas) via teclado e outro que calcula a media.
assim:

public class JavaTeste {
	public static void main(String[] args) {
		// Aqui voce vai chamar os seus dois metodos
		double somaDasNotas = obtemNotas();
		double mediaAritimetica = calculaMedia(somaDasNotas);
		System.out.println("O valor da media aritimetica das notas é : "
				+ mediaAritimetica);
	}
	public static double obtemNotas() {
		double somaNotas = 0;
		// TODO Implementar metodo que obtem as notas
		return somaNotas;
	}
	public static double calculaMedia(double somaDasNotas) {
		double media = 0;
		// TODO implementar metodo que calcula a media
		return media;
	}
}

É claro que essa é uma maneira meio "porca" de fazer a coisa.
Estamos programando em java, então não é legal fazer a coisa de forma procedural assim.
teriamos então que fazer uma classe de teste mais.
E uma classe com os metodos.
Instanciariamos a classe usando um new. e por ai vai.

Espero ter ajudado.


#9

Obrigado Hildebrando Pedroni ajudou sim...


#10