Atributo (computação)

Atributos são características de um objeto

Os Atributos em Programação Orientada a Objetos são os elementos que definem a estrutura de uma classe. Os atributos também são conhecidos como variáveis de classe, e podem ser divididos em dois tipos básicos: atributos de instância e de classe.

Os valores dos atributos de instância determinam o estado de cada classe. Um atributo de classe possui um estado que é compartilhado por todos os objetos de uma classe. Atributos de classe podem ser chamados também de atributos estáticos ou dinâmicos. Constantes são considerados atributos de classe quando estão fora de qualquer método.[1]


As mensagens enviadas a um objeto (chamada de um método) podem mudar o valor de um ou mais atributos, alterando o estado de um objeto.

Um atributo é um dado para o qual cada objecto tem seu próprio valor. Atributos são, basicamente, a estrutura de dados que vai representar a classe. Exemplo de atributos, usando a classe fila: int f [100] ; int primeiro, ultimo;

Exemplo com XHTML e JavaScript editar

<html>
<head>
   <script language="javascript">
      function alerta(){
        // Recuperando valores de atributos com o método "getAttribute"
		alert(document.form.texto.getAttribute("a_atrib"));
		document.form.texto.value = document.form.texto.getAttribute("a_atrib");
		
      }
   </script>
</head>
<body>
<form name="form">
   <!-- Neste caso, "a_atrib" é um atributo criado pelo programador,
       e "name" é um atributo nativo do html -->
      <input type="text" name="texto" id="texto" a_atrib="valor de um atributo">
      <input type="button" name="bto" id="bto" onClick="alerta();" value="Ok">
</body>
</form>
</html>

Exemplo com C# editar

public class Caixa{

  //Autor: Mateus Mesquita
  //Data: 16 de setembro de 2011

  //atributos de instancia, cada instancia(objeto) da classe Caixa conterá
  //estes "valores" independentes de outra instancia(objeto)
  int altura, comprimento, largura;

  //atributos de classe, isto é TODAS as instancias dessa classe
  //compatilharão estes atributos
  //Por default em C# todas as variaveis staticas recebem o valor de
  //0 para valores numericos, false para booleanos e null para referencias
  static int quantidadeDeCaixasExistentes;

  //Properties que modificam o valores de instancia.
  //Nota: Deveriam escrutinar valores invalidos como < 0
  public int Altura{
      get{ return altura;}
      set{ altura = value;}
  }
  public int Largura{
       get{ return largura;}
       set{ largura = value;}
   }
   public int Comprimento{
      get{ return comprimento;}
      set{ comprimento = value;}
  }

  //metodo que permite acessar o valor de Quantidade de Caixas
  //partilhado entre todas as instancias
  public static int getQuantidadeDeCaixas(){
      return quantidadeDeCaixasExistentes
  }

  //Construtor da classe Caixa
  public Caixa(int altura, int largura, int comprimento){
        //Quando um objeto da classe for criado,
        //a linha seguinte incrementa o valor de caixas existentes
        //como este valor é partilhado por todos os objetos
        //qualquer objeto estará ciente da quantidade de caixas
        //automaticamente, não sendo nescessario incrementar o valor
        //separadamente em todos os objetos
        quantidadeDeCaixasExistentes++;

        //faz uso das properties para setar os valores recebidos como parametros
         Altura = altura;
         Largura = largura;
        Comprimento = comprimento
  }
}

Exemplo com Java editar

public class Endereco{
/// pais, estado, bairro rua e cep são atributos da classe Endereco
    protected String pais;
    protected String estado;
    protected String bairro;
    protected String rua;
    protected int cep;

   Endereco(String p , String e, String b, String r, int c){ // construtor da classe Endereco
           this.pais = p;
           this.estado = e;
           this.bairro = b;
           this.rua = r;
           this.cep = c;

   }
/// aqui começa as definições nos métodos modificadores dos atributos da classe Endereco.
///Os métodos Set's são para colocar/alterar os valores. os get's são para acessar/retornar os valores.
   public void  setPais(String p){  this.pais = p;}
   public void  setBairro(String b){  this.bairro = b;}
   public void  setEstado(String e){ this.estado = e;}
   public void  setRua(String r){ this.rua = r; }
   public void  setCep(String c){ this.rua = c; }

   public String  getPais(){   return this.pais; }
   public String getBairro(){ return  this.bairro;}
   public String  getEstado(){ return this.estado; }
   public String  getRua(){ return this.rua; }
   public int getCep(){return this.cep; }
// aqui termina as definições
}
class Pessoa{
// a classe pessoa é composto por 3 atributos simples e um complexo(endereço)
     Pessoa(String n, Date d){} //construtor da class

     private Date dataNascimento; // atributo simples
     private String nome; // atributo simples
     protected Endereco  adress; // // atributo complexo, pois ele é do tipo class Endereço.


    public void setEnd(Endereco end ){ this.adress = end;}
    public Endereco getEnd(){ return this.adress;}
    public Date getDataNasc(){ return this.dataNascimento;}
    public String getNome(){ return this.nome;}

    Public static void main(String[] args){

            Pessoa PS = new Pessoa("Meavdee", new Date(03,03,1983));
	    PS.setEnd( new Endereco("Brazil","CE","Parquelândia","Tipografo Sales",1111111));
            System.out.println("Eu moro em :"+PS.adress.getBairro());
    }
}

Referências

  1. Mössenböck, Hanspeter (25 de março de 2002). «Advanced C#: Variable Number of Parameters» (PDF). http://ssw.jku.at/Teaching/Lectures/CSharp/Tutorial/: Institut für Systemsoftware, Johannes Kepler Universität Linz, Fachbereich Informatik. p. 44. Consultado em 8 de agosto de 2011 


Outros projetos Wikimedia também contêm material sobre este tema:
  Livros e manuais no Wikilivros


  Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.