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 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 | editar código-fonte]<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 | editar código-fonte]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 necessário 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 | editar código-fonte]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());
}
}
- ↑ 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