Atributo (computação)

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 objeto. 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 .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 JavaScriptEditar

<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 JavaEditar

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());
    }
}


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.
  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