Sunteți pe pagina 1din 39

CURSO DE JAVA

Programao Orientada a Objetos

Mtodos

Chamando mtodos estticos:


Mtodos estticos so mtodos que
podem ser invocados sem que um objeto
tenha sido instanciado pela classe.
Mtodos estticos pertencem a classe
como um todo e no ao objeto especifico
da classe.

NomeClasse.nomeMetodoEstatico(argumen
tos);

Casting de tipos primitivos

Casting entre tipos primitivos permite


converter o valor de um dado de um
determinado tipo para outro tipo de dado
primitivo. H um tipo de dado primitivo
que no aceita o casting, o tipo de dado
boolean.

double valorDouble = 10.12;


int valorInt = (int)valorDouble;

Casting de objetos

Para objetos, a operao de casting


tambm pode ser utilizada para fazer a
converso para outras classes, com a
seguinte restrio: a classe de origem e a
classe de destino devem ser da mesma
famlia , relacionadas por herana; uma
classe deve ser subclasse da outra.
Bola b = new Bola();
Futebol f = new Futebol();
f = (Futebol) b;

Converter objetos para tipos de


dados primitivos

Integer valor = new Integer(10);


Convertendo o objeto da classe Integer
para um tipo de dado primitivo int:
int pegar = valor.intValue();
Uma converso comum de se fazer de
String para um tipo numrico.
String nome = Curso;
int mostra = Integer.parseInt(nome);

Definindo nossas classes

Antes de escrever sua classe, primeiro


pense onde e como sua classe ser usada.
Pense em um nome apropriado para a
classe e liste todas as informaes ou
propriedades que deseje que ela tenha.
Liste tambm os mtodos que sero usados
para a classe.
<modificador> class <nome>{
<declarao Do Atributo>
<declarao Do Construtor>
<declarao Do Mtodo>
}

Declarando atributos

<modificador> <tipo> <nome> =


<valor inicial>;
Exemplo de atributos de objeto:
public class Estudante{
private String nome;
private int idade;
private int sala;
}

Atributos de classe ou atributos


estticos

Alm dos atributos de objetos, podemos


tambm declarar atributos de classe ou
atributos que pertencem a classe como
um todo. O valor destes atributos o
mesmo para todos os objetos da mesma
classe.
public class Estudante{
private static int totalAlunos;
}

Declarando mtodos

<modificador> <tipoRetorno>
<nome>(argumentos){
<instrues>
}

Mtodos assessores

So usados para ler valores de atributos de


objeto ou de classe . O mtodo assessor
recebe o nome de
get<NomeDoAtributo>.Ele retorna um valor.
Public class Estudante{
private String nome;
public String getNome(){
return nome;
}
}

Mtodos modificadores

Para que outros objetos possam modificar os


nossos dados, disponibilizamos mtodos que
possam gravar ou modificar os valores dos
atributos de objeto ou de classe. Chamamos
a estes mtodos modificadores. Este mtodo
escrito como set<NomeDoAtributo>.
public class Estudante{
private String nome;
public void setNome(String modi){
nome = modi;
}
}

this

O objeto this usado para acessar atributos


de objeto ou mtodos da classe.
Exemplo:
this.<nomeDoAtributo>
public class Estudante{
private String nome;
public void setNome(String nome){
this.nome = nome;
}
}

Overloading de mtodos

Overloading de mtodos permite que um


mtodo com o mesmo nome, entretanto
com diferentes argumentos, possa ter
implementaes diferentes e retornar
valores de diferentes tipos.
public void mostraNome(){
System.out.println(Curso);
}
public void mostrar(String nome){
System.out.println(Escola);
}

Declarando construtores

um mtodo onde so colocadas todas


as inicializaes.
1 Possuem o mesmo nome da classe.
2 - Somente as seguintes informaes
podem ser colocadas no cabealho do
construtor:
Escopo ou identificador de
acessibilidade(como public);
Nome do construtor;
Argumentos caso necessrio.

3 No retornam valor;
4 So executados automaticamente na
utilizao do operador new durante a
instanciao da classe.
Declarando um construtor:
<modificador>
<nomeClasse>(argumentos){
<instruo>
}

Construtor padro

Toda classe tem seu construtor padro, o


construtor padro um construtor pblico e sem
argumentos. Se no for definido um construtor
para a classe, ento, implicitamente, assumido
um construtor padro.
Exemplo:
public class Estudante{
public Estudante(){
}
}
Construtores tambm podem sofrer overloading.

Pacotes

So utilizados para agrupar classes e


interfaces relacionadas em uma nica
unidade .
Para utilizar classes externas ao pacote
da classe, necessrio importar os
pacotes dessas classes. Por padro, todas
as classes java importam o pacote
java.lang.
import
<nomeDoPacote>.<nomeDaClasse>

Herana

Todas as classes, incluindo as que


compem a API Java, so subclasses da
classe Object. A pertir de uma determinada
classe, qualquer classe acima desta na
hierarquia de classes conhecida como
uma superclasse(ou classe pai). Enquanto
que qualquer classe abaixo na hierarquia
de classes conhecida como uma
subclasse(ou classe filho).
Herana um dos principais principios de
orientao a objeto.

Um comportamento (mtodo) definido


e codificado uma nica vez em uma
nica classe e este comportamento
herdado por todas suas subclasses. Uma
subclasse precisa apenas implementar as
diferenas em relao a sua classe pai,
ou seja, adaptar-se ao meio em que vive.
Para herdar uma classe usamos a
palavra-chave extends.

super

Uma subclasse pode, explicitamente,


chamar um construtor de uma
superclasse imediata. Isso feita usando
uma chamada ao objeto super. Uma
chamada ao super no construtor de uma
subclasse ir resultar na execuo de um
construtor especifico da superclasse
baseado nos argumentos passados.
public Estudante(){
super();
}

1 A instruo super() deve ser a


primeira instruo em um construtor.
2 As instrues this() e super() no
podem ocorrer simultaneamente no
mesmo construtor. O objeto super uma
referencia aos membros da superclasse e
o objeto this da prpria classe.
public Estudante(){
super.nome(nome da classe pai);
this.nome(nome da classe atual);
}

Override de mtodos

Se, por alguma razo, uma classe


derivada necessita que a implementao
de algum mtodo seja diferente da
superclasse, o polimorfismo por override
pode vir a ser muito til. Uma subclasse
pode modificar um mtodo definido em
sua superclasse fornecendo uma nova
implementao para aquele mtodo.

Superclasse:
public class pessoa(){
public String getNome(){
System.out.println(Pessoa: getNome);
return name;
}
}
Para realizar um polimorfismo por
override no mtodo getNome da
subclasse Estudante, temos:

public class Estudante extends Pessoa{


public String getName(){
System.out.println(Estudante:
getNome);
return nome;
}
}
Ento, quando invocamos o mtodo
getNome de um objeto da classe
Estudante, o mtodo chamado ser o de
Estudante, e a sada ser:
Estudante: getNome

possivel chamar o mtodo getNome da


superclasse :
public class Estudante extends Pessoa{
public String getNome(){
super.getNome();
System.out.println(Estudante:
getNome);
return nome;
}
}
Sada:
Pessoa: getNome
Estudante: getNome

Mtodos final e Classes


final

Podemos declarar classes que no


permitem a herana. Estas classes so
chamadas classes finais. Para definir que
uma classe seja final, adicionamos a
palavra-chave final na declarao da
classe (na posio do modificador).
public final class Pessoa{
//cdigo fonte
}

Muitas classes na API Java so declaradas


final para certificar que seu
comportamento no seja herdado e,
possivelmente, modificado. Exemplos,
so as classes Integer, Double e Math.
Tambm possvel criar mtodos que
no possam ser modificados pelo filho,
impedindo o polimorfismo por override.
public final String getNome(){
return nome;
}

Polimorfismo

A capacidade de uma referncia mudar


de comportamento de acordo com o
objeto a que se refere chamada de
polimorfismo. O polimorfismo permite
que mltiplos objetos de diferentes
subclasses sejam tratados como objetos
de uma nica superclasse, e que
automaticamente sejam selecionados os
mtodos adequados a serem aplicados a
um objeto em particular, baseado na
subclasse que a pertena.

Pessoa superclasse
Estudante subclasse
Empregado subclasse
public static main(String[] args) {
Pessoa p;
Estudante es = new Estudante();
Empregado em = new Empregado();
p = es;
}

public class Pessoa{


public String getNome(){
System.out.println(Nome da pessoa+nome);
return nome;
}
}
public class Estudante extends Pessoa{
public String getNome(){
System.out.println(Nome da pessoa+nome);
return nome;
}
}

public class Empregado extends Pessoa{


public String getNome(){
System.out.println(Nome da
pessoa+nome);
return nome;
}
}
Voltando ao mtodo main, quando
tentamos chamar o mtodo getNome da
referencia p do tipo Pessoa, o mtodo
getNome do objeto Estudante ser
chamado. Agora se atribuirmos p ao
objeto Empregado, o mtodo getNome de
Empregado ser chamado.

public static main(String[] args){


Pessoa p;
Estudante es = new Estudante();
Empregado em = new Empregado();
p = es;
String pegar = p.getNome();//getNome
de Estudante chamado
System.out.println(pegar);
p = em;
String pegar = p.getNome;//getNome de
empregado chamado
}

Classes abstratas

uma classe que no pode gerar um


objeto. Frequentemente aparece no topo
de uma hierarquia de classes no modelo
de programao orientada a objetos.
Os mtodos nas classes abstratas que
no tem implementao so chamados
de mtodos abstratos. Para criar um
mtodo abstrato, apenas escreva a
assinatura do mtodo sem o corpo e use
a palavra-chave abstract.

public abstract void nomeMetodo();


Exemplo de classe abstrata:
public abstract class Modo{
public void dormir(){
System.out.println(mensagem);
}
}
Uma subclasse obrigada a implementar
os mtodos de sua superclasse abstrata.

Interfaces

Uma Interface um tipo especial de


classe que contm unicamente mtodos
abstratos ou atributos finais. Interfaces
por natureza, so abstratas.

Interface VS Classe
Abstrata

A principal diferena entre uma interface


e uma classe abstrata que classe
abstrata pode possuir mtodos
implementados(reais) ou no
implementados(abstratos). Na interface,
todos os mtodos so obrigatoriamente
abstratos e pblicos, tanto que para esta,
a palavra-chave abstract ou public
opcional.

Relacionamento de uma
interface para uma classe

public class Estudante implements


interface1, interface2{
}
public class Estudante extends Pessoa
implements interface1, interface2{
}
- Herana entre interfaces.

O que so Excees
(Exception)?

Uma exceo um evento que interrompe o


fluxo normal de processamento de uma classe.
Este evento um erro de algum tipo.
try catch finally
1 A notao de bloco obrigatria;
2 Para cada bloco try, pode haver um ou mais
blocos catch, mas somente um bloco finally;
3 Um bloco try deve que ser seguido de pelo
menos um bloco catch ou finally, ou ambos;
4 Cada bloco catch define um tratamento de
uma exceo ;

5 O cabealho do bloco catch recebe


somente um argumento, que a exceo
(Exception) que este bloco pretende
tratar.

S-ar putea să vă placă și