Anda di halaman 1dari 7

INTRODUO A PROGRAMAO ORIENTADA A OBJETOS

Classe um definio generalizada para objetos. Exemplos: Pessoa, Veiculo, Cliente.

Objeto Um objeto uma representao abstrata de uma entidade do mundo real, que tem um identificador nico, propriedades embutidas e a habilidade de interagir com outros objetos e consigo mesmo. O estado do objeto um conjunto de valores que os atributos do objeto podem ter em um determinado instante do tempo. As classes definem a estrutura e o comportamento de um tipo de objeto, elas atuam como templates. Todos os objetos criados a partir de uma classe so idnticos. Quando declaramos variveis de qualquer tipo primitivo o espao em memria alocado como parte da operao. A declarao de uma varivel referncia a um objeto no aloca espao na memria. A alocao de memria feita somente quando o objeto criado. Exemplo: Cadastro cad; cad = new Cadastro(); O primeiro comando, a declarao, aloca apenas o espao suficiente para a referncia. O segundo, aloca o espao para os atributos do objeto cad, somente aps a criao do objeto que seus membros atributos e mtodos podem ser referenciados.
- Atributos: so caractersticas do objeto Exemplos: cad.nome: = Jos cad.idade = 21 cad.endereco = QSA 10

Variveis de instncia - atributos As so consideradas variveis de instncia se forem declaradas fora de uma definio de mtodo, e no so modificadas pela palavra-chave static. Por um costume de programao, a maioria das variveis de instncia definida logo aps a primeira linha da definio da classe, mas tambm podem ser definidas no final. Exemplo: public class Cadastro extends JFrame{ String nome; //varivel de instncia String sexo; //varivel de instncia int idade; //varivel de instncia } Obs.: So definidas fora de um mtodo.

Variveis de classe As variveis de classe se aplicam a uma classe como um todo, em vez de serem armazenadas individualmente em objetos de classe. As variveis de classe so eficazes na comunicao entre diferentes objetos da mesma classe ou para registrar informaes por toda a classe entre um conjunto de objetos. A palavra-chave static usada na declarao da classe para declarar uma varivel de classe. static qualificador ou specifier, que indica que o mtodo deve ser comparti lhado por todos os objetos que so criados a partir desta classe. Exemplo: public class Cadastro extends JFrame{ static String nome= Cliente; //varivel de classe String sexo; //varivel de instncia int idade; //varivel de instncia static final double rendaMinima=1000;/*varivel de classe uma constante em Java*/ } As variveis de classe so variveis definidas e armazenadas na prpria classe. Seus valores se aplicam classe e a todas as suas instncias.
- Mtodos: so as operaes realizadas dentro das classes. Para o nome do mtodo, padro comear com letra minscula. Exemplo: matricularAluno(); incluirPessoa();

As definies de mtodo possuem quatro partes bsicas: O nome do mtodo; Uma lista de parmetros; O tipo de objeto ou primitivo retornado pelo mtodo; O corpo do mtodo. Obs.: o nome do mtodo e sua lista de parmetros correspondem a sua assinatura. Obs.: Em Java podemos ter vrios mtodos na mesma classe com o mesmo nome, mas com diferenas nas assinaturas. Essa prtica chamada de sobrecarga de mtodo. A menos que um mtodo tenha sido declarado como void como seu tipo de retorno, o mtodo retorna algum tipo de valor quando completado. O valor precisa ser retornado explicitamente em algum ponto de sada dentro do mtodo, usando a palavra-chave return. Exemplo: tipoRetorno nomeMtodo (tipo1 arg1, tipo2 arg2, tipo3 arg3...){ //corpo do mtodo}

Quando chamamos um mtodo com parmetro de objeto, os objetos que passam para o corpo do mtodo so passados por referncia. Qualquer modificao feito nos objetos dentro do mtodo persistem fora dele. - Mtodo Construtor: Uma classe pode ter construtores especializados ou somente o construtor default (sem implementao do usurio). Um construtor recebe sempre o mesmo nome da classe. O mtodo construtor gera uma instncia do objeto em memria e o seu cdigo executado imediatamente aps a criao do objeto provendo-lhe um estado inicial. Obs.: Valores de parmetros so passados no momento da criao. Definindo mtodos construtores em sua prprias classes, possvel definir valores iniciais de variveis de instncia, chamar mtodos com base nessas variveis, chamar mtodos em outros objetos e definir propriedades iniciais de um objeto. Tambm podemos sobrecarregar mtodos construtores, como pode fazer com mtodos normais, para criar um objeto que tenha propriedades especficas com base nos argumentos fornecidos a new. Os construtores se parecem muito com os mtodos normais, com trs diferenas bsicas: Eles sempre tm o mesmo nome da classe. Eles no tem um tipo de retorno. Eles no podem retornar um valor no mtodo usando a instruo return. Exemplo: import javax.swing.*; public class Cadastro extends JFrame{ String nome; int idade; char sexo; Cadastro(String nome, int idade, char sexo){ //construtor this.nome=nome; this.idade=idade; this.sexo=sexo;} } Poderamos criar um objeto dessa classe com a seguinte instruo: Cadastro cad = new Cadastro(Ana,32,F); O objeto teria os seguintes valores: cad.Nome=Ana;

cad.idade=32; cad.sexo=F.
- Herana: significa ser capaz incorporar os dados e mtodos de uma classe previamente definida, de uma classe me. A classe filha conhecida como sub-classe. Assim como a herana na vida real, a classe filha herda todos os atributos e mtodos declarados na classe me (ou super classe ou classe progenitora). - Abstrao: a capacidade de abstrair do mundo real somente o que relevante dentro de um determinado contexto. Por exemplo: ao desenvolver um sistema para uma universidade, no nos interessa o atributo tamanho do p. Porm ao desenvolver um sistema para um rgo como o Renda Minha, que distribui uniforme e sapatos, necessrio o atributo tamanho do p. - Polimorfismo: muitas formas. Ocorre quando uma classe filha possui um mtodo com o mesmo nome e assinatura (nmero, tipo e ordem de parmetros) de um mtodo na sua superclasse. O polimorfismo ocorre quando precisamos reimplementar o mesmo mtodo, para a mesma finalidade, mas de forma diferente. - Sobrecarga: semelhante ao polimorfismo, diferenciando-se pelo fato de possuir outros parmetros e no os mesmos como ocorre no polimorfismo. - Encapsulamento (visibilidade): Mecanismo utilizado visando obter segurana, modularidade e autonomia para objetos. Conseguido atravs da definio de visibilidade privada dos atributos, ganhando-se assim autonomia para definir o que o mundo externo ao objeto poder visualizar e acessar, normalmente atravs de mtodos pblicos. Existem 3 nveis de encapsulamento: private (privado), protect (protegido) e public (pblico). Os atributos declarados fora do mtodo so variveis de objeto ou variveis de instncia ou propriedades ou atributos (para quem conhece programao estruturada similar variveis globais) Essas variveis de instncias so inicializadas automaticamente com valores default: Numricas = 0; String = null; boolean = false;

char guarda o valor do caracter na tabela ASCII ou Unicode.


As variveis locais (declaradas dentro dos mtodos) no so inicializadas automaticamente. Implementar uma classe com os atributos pblicos:
Classe Pessoa public class Pessoa { public String nome;

public int escolaridade; public int idade; public Pessoa() { } } // fim da classe pessoa

CRIE UMA NOVA CLASSE ATENO: NO APAGUE A CLASSE PESSOA public class Main { public static void main(String[ ] args) { Pessoa p1 = new Pessoa(); p1.escolaridade = 1; p1.idade = 25; p1.nome = "Ana Luiza"; System.out.println(p1.escolaridade); System.out.println(p1.idade); System.out.println(p1.nome); } }

Pessoa p1 = new Pessoa( ); Pessoa => se refere Classe, como se utilizssemos uma declarao de String nos programas j conhecidos. p1 => a referncia ao objeto new => o operador de instncia, sempre ser utilizado ao instanciar um novo objeto. Pessoa( ) => se refere ao Mtodo Construtor.

Modificar todos os atributos da classe Pessoa para private: public class Pessoa { private String nome; private int escolaridade; private int idade; public Pessoa( ) { } } O que acontece?

R Todas as tentativas de acesso aos atributos da Classe Pessoa apresentaro erros na classe Main, porque os atributos so privados. possvel acess-los somente dentro da prpria classe Pessoa. Como fazer para solucionar esse problema? R criar os mtodos get() e set() pblicos, para cada atributo que desejar tornar pblico. Obs. O mtodo set( ) o mtodo modificador, seu objetivo alterar o valor O mtodo get( ) o mtodo acessor, pega o valor do atributo.
public class Pessoa { private String nome; private int escolaridade; private int idade; public Pessoa() { } public String getNome() { return nome; } public void setNome(String nome) { this.nome = nome; } public int getEscolaridade() { return escolaridade; } public void setEscolaridade(int escolaridade) { this.escolaridade = escolaridade; } public int getIdade() { return idade; } public void setIdade(int idade) { this.idade = idade; } }

this => faz referncia genrica ao objeto em questo idade => se refere ao atributo declarado no incio da classe, fora dos mtodos Idade => se refere ao parmetro local.
public class Main { public static void main(String[ ] args) { Pessoa p1 = new Pessoa( ); p1.setEscolaridade (1); p1.setIdade(25); p1.setNome("Ana Luiza"); System.out.println(p1.getEscolaridade( ));

System.out.println(p1.getIdade( )); System.out.println(p1.getNome( )); } }

Os mtodos get( ) e set( ) tem somente a funcionalidade de permitir acesso e modificao? R - No. Por exemplo, pode ser usado para fazer uma validao como no exemplo a seguir: A idade ser modificada somente se for maior que 0. public void setIdade(int idade) { if (idade >= 0) this.idade = idade;}

Anda mungkin juga menyukai