quarta-feira, 14 de maio de 2014

MÉTODOS:
O que são os metodos? Pra que são usados?
Métodos são códigos ou um conjunto deles, que pertencem a uma classe e tem como objetivo realizar alguma tarefa. Métodos geralmente correspondem à uma ação do objeto. Por exemplo: clicar,calcular, etc. Além disso um papel fundamental dos métodos é ter de evitar reescrever código para uma mesma função toda vez que se deseja-la.

Tipos de métodos: 
- Geter's e Setter's:
Os métodos Set e Get servem para você gravar e recuperar o conteúdo de uma variável do tipo private.Exemplo:
Class usuario{
private Long CodigoUsuario;
}

public Long getCodigoUsuario() {
return this.CodigoUsuario;
}

public void setCodigoUsuario (Long CodigoUsuario) {
this.CodigoUsuario = CodigoUsuario;
}

No exemplo o atributo CodigoUsuario está declarado como private, portanto, somente a própria classe pode acessá-lo, classes que herdem da classe usuario não poderão trabalhar tal atributo. Porem os métodos getCodigoUsuario e setCodigoUsuario são public, então podem ser acessados por por outras classes. Desse modo, caso uma classe precise alterar o atributo CodigoUsuario, deverá faze-lo através dos métodos Get e Set.


Construtores:
Para se  utilizar uma Classe é necessário que ela tenha pelo menos um método construtor. Assim, todo objeto é instanciado quando chamamos uma Classe, e isso se
deve ao construtor. Por não ser um método, o construtor só será definido como private¹ ou public².
É importante criarmos também um Construtor vazio, caso contrário será obrigatório o preenchimento de todos os campos daquela classe.


private¹ - Segundo Oracle, o modificador private deixará acessívelo atributo apenas para a classe em que este atributo se encontra.

public² - De acordo com a Oracle, o modificador public deixará acessível a classe ou membro para todas as outras classes, subclasses e pacotes do projeto Java.

Metodo Main:
Quando uma classe possui a função main quer dizer que ela é um corpo executavel. Geralmente classes que não possuem o main() são objetos e ao invés disto tem o metodo construtor que tem o seu proprio nome ex:
class MEGAFONE{
public MEGAFONE(){
// metodo construtor
}
}

As classes com main sao o corpo do programa:

class Principal{
MEGAFONE mega = new MEGAFONE(); // chamada ao objeto
public static void main(String args[]){
// metodo principal
// o programa inicia aqui
}
}


"  1. Organização
Tudo que é possível fazer com os métodos, é possível fazer sem.
Porém, os programas em Java ficariam enormes, bagunçados e pior: teríamos que repetir um mesmo trecho de código inúmeras vezes.

Uma das grandes vantagens, senão a maior, que mostraremos a seguir, de se utilizar os métodos em Java é que escrevemos um trecho de código uma vez (que são os ditos cujos métodos) e podemos acessá-los várias vezes.

2. Reusabilidade
Quando você for iniciar um grande projeto, dificilmente você terá que fazer tudo do zero.
Se fizer, muito provavelmente é porque você se organizou muito mal ou não fez o Curso Java Progressivo. " 

Fonte: http://www.javaprogressivo.net/2012/09/metodos-introducao-o-que-sao-para-que.html

APLIQUE O QUE APRENDEU:  Um professor, muito legal, fez 3 provas durante um semestre mas só vai levar em conta as duas notas mais altas para calcular a média.
Faça uma aplicação em Java que peça o valor das 3 notas, mostre como seria a média com essas 3 provas, a média com as 2 notas mais altas, bem como sua nota mais alta e sua nota mais baixa. Essas médias devem ser calculadas usando o mesmo método, pois você é um programador Java e não vai ficar criando métodos à toa.
Crie um método que receba as 3 notas e retorna a maior delas. E outro que retorna a menor.

RESOLUÇÃO: 
import java.util.Scanner;

public class parametrosVariaveis{
   
    public static float media(float... valores){
        float media=0;
       
        for(float valor: valores){
            media +=valor;
        }
       
        return media/valores.length;
    }
   
    public static float maiorNota(float nota1, float nota2, float nota3){
       
        if(nota1 >= nota2){
            if(nota1 >= nota3)
                return nota1;
        }else{
            if(nota2 >= nota3)
                return nota2;
        }
        return nota3;
           
    }
   
    public static float menorNota(float nota1, float nota2, float nota3){
       
        if(nota1 <= nota2){
            if(nota1 <= nota3)
                return nota1;
        }else{
            if(nota2 <= nota3)
                return nota2;
        }
        return nota3;
           
    }

    public static void main(String[] args){
            float nota1, nota2, nota3;
            Scanner entrada = new Scanner(System.in);
           
            System.out.print("Entre com o valor 1: ");
            nota1 = entrada.nextFloat();
            System.out.print("Entre com o valor 2: ");
            nota2 = entrada.nextFloat();
            System.out.print("Entre com o valor 3: ");
            nota3 = entrada.nextFloat();
           
            System.out.println("Sua maior nota foi: "+maiorNota(nota1,nota2,nota3));
            System.out.println("Sua menor nota foi: "+menorNota(nota1,nota2,nota3));
            System.out.println("Sua média com as três notas é: " + media(nota1,nota2,nota3));
            System.out.println("Sua média sem a menor nota é: "+ (nota1+nota2+nota3 - menorNota(nota1,nota2,nota3))/2);
           
        }
}

EXERCICIO: 
- MONTE UM PROGRAMA QUE RECEBA O NUMERO DE CONTAS A PAGAR, O VALOR DE CADA UMA DELAS,  E CALCULAR O TOTAL A PAGAR,  SOMANDO TODAS AS CONTAS.


Para saber mais sobre métodos aplicados em JAVA acesse: http://www.devmedia.com.br/trabalhando-com-metodos-em-java/25917
Video:
http://www.youtube.com/watch?v=h0R7zaBm2zs

Um comentário:

  1. Pessoal arrumem essas nomenclaturas, por exemplo, class iniciando com letra maiúscula está errado, o editor de texto deve ter alterado sem vocês perceberem. O tipo long é primitivo por isso deve começar com letra minúscula, e por aí vai... deêm uma repassada nisso, ok?

    abçs

    ResponderExcluir