Programação
 › Algoritmo  › C/C++  › Java
Web
 › HTML/XHTML  › JavaScript  › PHP
Sistema Operacional
 › Comandos de DOS  › Windows  › Linux  › Mac/BSD
Office
 › Word / Writer  › Excel / Calc
Áreas do Site
 › Download  › Fórum  › Blog
Recomendamos
Computadores e Informática em Lisboa
TI Expert » Programação » Java » Acesso a Atributos e Métodos

Acesso a Atributos e Métodos

Vimos, até agora, como criar uma classe, definir um método construtor, sobrecarregar métodos e instânciar objetos. Nesse momento, vamos ver como acessar seus membros e métodos.

Os acessos a membros ou métodos de uma classe são dados a partir do objeto instanciado usando um separador que é o ponto (.).

Portanto, para acessar qualquer membro da classe, basta que usemos o nome do objeto, mais um ponto e o nome do membro que queremos acessar.

Ainda tomando como exemplo a classe TV já vista antes, vamos modificar dentro do programa dois atributos: os atributos canal e volume.

public class TV {
    int canal;
    int volume;
    boolean ligada;
    int tamanho;

    public TV(){
        this.tamanho = 21;
        this.ligada = true;
    }

    public static void main (String args []){
        TV minhaTV = new TV();
        minhaTV.canal = 3;
        minhaTV.volume = 25;
    }
}

Como percebemos é construído um objeto chamado minhaTV da classe TV com o tamanho de 21" e já ligada. Durante a execução do programa modificamos diretamente seu canal e volume usando o objeto que instanciamos.

Da mesma forma que acessamos um atributo, também podemos acessar um método. No exemplo abaixo, criaremos o método para aumentar volume da TV.

public class TV {
    int canal;
    int volume;
    boolean ligada;
    int tamanho;

    public TV(){
        this.tamanho = 21;
        this.ligada = true;
        this.canal = 3;
        this.volume = 25;
    }

    public void aumentarVolume(){
        this.volume += 5;
    }

    public static void main (String args []){
        TV minhaTV = new TV();
        minhaTV.aumentarVolume();
    }
}

Aqui, o objeto minhaTV começa com volume 25 e depois de chamar seu método aumentarVolume() fica com 30.

Algumas considerações que devemos ter é saber diferenciar funções de métodos. Apesar da essência de ambos ser a mesma coisa, funções são chamadas estaticamente, ou seja, ela pode ser chamada diretamente sem o intermédio de nenhum objeto. Já os métodos são chamados de dentro das classes, portanto, obrigatoriamente devemos ter um objeto instanciado para conseguirmos utilizar o método. Vejamos a diferença:

public class TV {
    int canal;
    int volume;
    boolean ligada;
    int tamanho;

    public TV(){
        this.tamanho = 21;
        this.ligada = false;
        this.canal = 0;
        this.volume = 0;
    }

    // método da classe
    public void ligar(boolean ligada){
        this.ligada = ligada;
    }

    // função
    public static void estahLigada (TV objeto){
        if (objeto.ligada)
            System.out.println ("está ligada");
        else
            System.out.println ("não está ligada");
    }

    public static void main (String args []){
        TV televisao1 = new TV();
        TV televisao2 = new TV();
        // chamando o método ligar
        televisao1.ligar(true);
        televisao2.ligar(false);
        System.out.print ("A televisão 1 ");
        // chamando a função estahLigada
        estahLigada (televisao1);
        System.out.print ("A televisão 2 ");
        estahLigada (televisao2);
    }
}

Observemos que chamamos o método ligar() de cada objeto, portanto, existem dois métodos ligar distintos - o método ligar() da televisao1 e o método ligar() da televisao2. A função é estática, portanto, existe apenas uma função estahLigada().

Faça o Download deste Código

Creative Commons License
Autor: Denys William Xavier
Este artigo está sob Licença Creative Commons.

Faça o download da versão em PDF Indique nosso site Gostou?
Indique nosso site!
Este artigo foi
lido 60092 vezes
Bookmark e Compartilhe

Páginas Relacionadas

Enquete
O Google Chrome OS irá desbancar o Microsoft Windows 7?
» ProgramaçãoAlgorítmo | C/C++ | Java

» WebHTML/XHTML | JavaScript | PHP

» Sistema OperacionalComandos de DOS | Windows | Linux | Mac/BSD

» OfficeWord/Wirter | Excel/Calc

» Áreas do SiteDownloads | Fórum | Blog