SlideShare ist ein Scribd-Unternehmen logo
1 von 26
Orientação à objetos
Conceituação
Classe
• Uma classe é um gabarito para a definição de objetos.
• Assim com uma planta (construção) pode ser usada para criar
diversas construções, uma única classe pode ser usada para
criar quantos objetos forem necessários.
1
Objeto
• É a instância de uma classe.
Imagine uma planta de um apartamento. Pois bem, essa é nossa
classe, ou seja, define os cômodos, tamanho, número de quartos e
diversos outros aspectos dos objetos construídos, neste caso,
apartamentos. Percebeu a diferença? A classe é um molde para os
objetos. Quando se diz: “Instância de uma classe”, nada mais é do que
o objeto dessa classe.
Mundo Java
Planta do apartamento Classe
Apartamento 12 Objeto
2
Objeto
• Vamos adotar como exemplo um molde de
bonecos de gesso. Essa é a nossa CLASSE. Ela
define formato, tamanho e diversos outros
aspectos dos objetos fabricados (bonecos de
gesso).
Mundo Java
Molde Classe
Boneco de Gesso Objeto
3
Objeto
• O molde é sempre o mesmo, porém os objetos por ele
gerados podem ter características das mais variadas, mas
respeitando a estrutura básica do molde (classe).
• Imagine um molde de samurai:
Vamos criar três objetos
Os três objetos possuem
características (cor).
Poderiam ser várias outras,
tipo: cor dos olhos, do cabelo
e etc. Tais características são
chamadas de atributos do
objeto.
4
Atributos
• Atributos definem o estado do objeto em determinado momento.
Imagine uma classe “Pessoa”. Agora imagine um objeto Mulher do tipo
Pessoa. Com os seguintes atributos: corOlhos, corCabelo e tipoSanguineo.
Vamos assumir que os valores para esses atributos são respectivamente: azuis,
preto e tipo A.
Bom, nunca se sabe quando uma mulher vai trocar a cor do cabelo, mas
podemos, nesse instante, assumir que o estado para esse objeto é (azuis, preto e
tipo A), porém amanhã pode se que seu estado seja alterado, por exemplo na
cor do cabelo (corCabelo). O fato é, se um ou vários atributos forem alterados,
diz-se que seu estado (estado do objeto) também foi. 5
Métodos
Voltando a classe Pessoa citada anteriormente, além dos atributos, os objetos dessa
classe também possuem comportamentos, tais como: andar, dormir, acordar, etc.
Esses comportamentos são chamados de métodos.
Resumindo:
Os atributos de instância (ou de objeto) definem o estado desse objeto.
Os métodos de instância (ou de objeto) definem os comportamentos desse
objeto.
6
Regras de Sintaxe - Java
Tipos primitivos: São tipos de dados que não representam classes, mas sim valores
básicos. Eles existem para representar os tipos mais simples de dado, sendo eles
dados numérico, booleano e caractere. Os tipos primitivos da linguagem Java
são:
7
Variável e referência
- Todo objeto criado ficará armazenado em memória principal, ou seja, a sua
memória RAM.
- Como acessar este objeto (para alterar seu estado ou invocar um determinado
comportamento)? Através das referencias! Uma espécie de ponteiro ao objeto
em memória.
- As variáveis funcionam da mesma forma porém não referenciam um objeto e
sim um tipo primitivo.
8
Declaração e Inicialização
- Declaremos uma variável idade do tipo inteiro:
int idade;
- Sempre seguirá esse padrão: primeiro o tipo, que pode ser um tipo
primitivo ou um tipo de referência (classe), depois o nome
da referencia ou variável.
- Agora um exemplo de declaração de referência:
Samurai samu1;
Samurai é o tipo da referência, e samu1 é o nome dessa referencia;
9
Declaração e Inicialização
A Inicialização, como o próprio nome já nos dá uma dica, nada mais é do que
inicializar essa variável ou referência com alguma coisa, por exemplo:
int idade = 26;
E para a referência:
Samurai samu1 = new Samurai();
Essa é a maneira de instanciarmos (ou criarmos em memória) um objeto do
tipo Samurai e ao “mesmo tempo” amarrá-lo a uma referência também do
mesmo tipo, ou seja, diz-se que samu1 referencia esse objeto criado.
tipo (Samurai) da referência -> nome da referência (samu1) -> operador de
atribuição (=) -> operador de “instanciação” (new) -> chamada
do construtor da classe do objeto que estamos criando (Samurai()).
10
Declaração e Inicialização
O comando New Samurai() cria um objeto do tipo Samurai em memória e o
atribui a referência samu1. Esse será o seu elo de acesso ao objeto criado , pois
é através dele que esse objeto poderá ser manipulado.
11
Construtores
- O construtor é um método com o mesmo nome da classe.
- O construtor não possui retorno.
Se quisermos criar uma classe do tipo String precisamos utilizar o construtor
dessa classe:
String autor = new String (“Machado de Assis”);
Agora temos um objeto em memória referenciado por autor.
Obs.:
- Objetos String são os únicos em Java que podem ser
criados sem o operador new.
- Objetos String são imutáveis.
12
Modificadores de acesso
Modificadores de acesso a métodos, atributos e classes da linguagem Java, são
padrões de visibilidade e de acesso aos mesmos.
- Public – Pode ser acessada de qualquer lugar e por qualquer entidade que
possa visualizar a classe a que ela pertença.
- Private – Os membros da classe assim definidos não podem ser acessados
ou usados por nenhuma outra classe. Esse modificador não se aplica às
classes, somente para seus métodos e atributos. Classes herdadas também
não visualizam estes atributos e métodos.
- Protected - O modificador protected torna o membro acessível às classes
do mesmo pacote ou através de herança, seus membros herdados não são
acessíveis a outras classes fora do pacote em que foram declarados.
- default (padrão): A classe e/ou seus membros são acessíveis somente por
classes do mesmo pacote, na sua declaração não é definido nenhum tipo de
modificador, sendo este identificado pelo compilador.
13
Modificadores de acesso
- final - Quando é aplicado na classe, não permite estende-la, nos métodos
impede que o mesmo seja sobrescrito (overriding) na subclasse, e nos
valores de variáveis não pode ser alterado depois que já tenha sido atribuído
um valor.
- abstract - Esse modificador não é aplicado nas variáveis, apenas nas
classes. Uma classe abstrata não pode ser instanciada, ou seja, não pode ser
chamada pelos seus construtores. Se houver alguma declaração de um
método como abstract (abstrato), a classe também deve ser marcada como
abstract.
- Static - Ele muda o escopo do membro. Com o static, ao invés deles
pertencerem à instância do objeto, eles pertencem à classe.
- Getters e Setters: Para permitir acesso aos atributos private a prática
mais comum é criar dois métodos, um que retorna o valor e outro que muda
o valor. O padrão para estes métodos é colocar get ou set antes do nome do
atributo.
14
private default protected public
mesma classe sim sim sim sim
mesmo
pacote
não sim sim sim
pacotes
diferentes
(subclasses)
não não sim sim
pacotes
diferentes
(sem
subclasses)
não não não sim
Tabela dos modificadores de acesso
15
Modificador Public
class Pessoa{
public String nome;
public int idade;
}
E se alguem fizer isso?
Pessoa p = new Pessoa();
p.nome = "Fulano";
p.idade = -10;
class Pessoa{
private String nome;
private int idade;
public void setIdade(int idade){
if(idade > 0){
this.idade = idade;
}
}
Getters e Setters
Modificadores de acesso
- Protected - O protected é um intermediário entre public e private (É um segredo de
família). Por família entenda: a superclasse, as subclasses e classes do mesmo
package.
Ex.:
-Vamos criar dois pacotes: “Familia” e “Vizinho”.
- O pacote Família contem as seguintes classes: "Heranca", "Pai", "Filha" e "Neta”
- O pacote Vizinho contem a classe “Vizinho” .
19
Modificador Protected
Modificador Protected
public final class Imutavel {}
Qualquer tentativa de herança a partir da classe Imutavel irá causar um erro de compilação.
public class Impossivel extends Imutavel {}
Modificador final – Classes e Métodos
public class Transacao {
public final boolean verificarSenha() {
...
}
}
public class TransacaoPublica extends Transacao {
public final boolean verificarSenha() {
...
}
}
Classe:
Cannot inherit from final Imutavel !!!
Métodos
verificarSenha() in TransacaoPublica
cannot override verificarSenha()
in Transacao; overridden method is final 22
Modificador final – Atributos
Atributos final são constantes (não podem mudar de valor) a partir do momento
que se define o seu valor inicial, esse será o seu valor durante todo o ciclo de vida
do objeto.
public class Carro {
public final int numeroDeRodas = 4;
public int numeroDePortas = 4;
public static void main(String args[]) {
Carro c1, c2;
final Carro c3;
c1 = new Carro();
c1.numeroDeRodas = 5; //erro de compilacao
c2 = c3 = c1;
c2.numeroDePortas = 2;
c3.numeroDePortas = 2;
c3 = c2; //erro de compilacao
}
} 23
Exemplos Gerais:
Exemplos Gerais:
25
Você escreve o código em um arquivo .java, compila, e é gerado um arquivo .class.
Esse arquivo .class é conhecido como bytecode.
A JVM irá ler/interpretar esse bytecode e executá-lo.
Exemplos Gerais:
25

Weitere ähnliche Inhalte

Was ist angesagt?

Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
Maurício Linhares
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
Cristiano Almeida
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
Maurício Linhares
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
danielrpgj30
 

Was ist angesagt? (20)

Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
Aula4
Aula4Aula4
Aula4
 
Curso java 04 - ap is e bibliotecas
Curso java   04 - ap is e bibliotecasCurso java   04 - ap is e bibliotecas
Curso java 04 - ap is e bibliotecas
 
Programação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em JavaProgramação Orientada a Objetos - Uso da O.O. em Java
Programação Orientada a Objetos - Uso da O.O. em Java
 
03 poo
03 poo03 poo
03 poo
 
Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
Introdução à Orientação a Objeto em Java
Introdução à Orientação a Objeto em JavaIntrodução à Orientação a Objeto em Java
Introdução à Orientação a Objeto em Java
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Herança e polimorfismo em Java
Herança e polimorfismo em Java Herança e polimorfismo em Java
Herança e polimorfismo em Java
 
Orientação a Objetos - Conceitos
Orientação a Objetos - ConceitosOrientação a Objetos - Conceitos
Orientação a Objetos - Conceitos
 
Curso : Introdução Orientação a Objetos
Curso : Introdução Orientação a ObjetosCurso : Introdução Orientação a Objetos
Curso : Introdução Orientação a Objetos
 
Java Básico :: Classe Vector
Java Básico :: Classe VectorJava Básico :: Classe Vector
Java Básico :: Classe Vector
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Construtores em Java
Construtores em JavaConstrutores em Java
Construtores em Java
 
JAVA - Pacotes
JAVA - PacotesJAVA - Pacotes
JAVA - Pacotes
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
Aplicando OO no Saeo
Aplicando OO no SaeoAplicando OO no Saeo
Aplicando OO no Saeo
 
POO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de ClassePOO - Aula 07 - Construtores e Atributos de Classe
POO - Aula 07 - Construtores e Atributos de Classe
 

Ähnlich wie Orientação à objetos conceituação

Poo slides01
Poo slides01Poo slides01
Poo slides01
jmtofoli
 

Ähnlich wie Orientação à objetos conceituação (20)

Aula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdfAula3-POO-ConceitosBasicos.pdf
Aula3-POO-ConceitosBasicos.pdf
 
Herança.pptx
Herança.pptxHerança.pptx
Herança.pptx
 
Curso
CursoCurso
Curso
 
Curso de PHP - Objetos
Curso de PHP - ObjetosCurso de PHP - Objetos
Curso de PHP - Objetos
 
Java oo - aula 01
Java   oo - aula 01Java   oo - aula 01
Java oo - aula 01
 
POO - aula 2.pptx
POO - aula 2.pptxPOO - aula 2.pptx
POO - aula 2.pptx
 
v
vv
v
 
AULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.pptAULA 1 - Classes e Objetos com codigicação Java.ppt
AULA 1 - Classes e Objetos com codigicação Java.ppt
 
AULA 1 - Classes e Objetos.ppt
AULA 1 - Classes e Objetos.pptAULA 1 - Classes e Objetos.ppt
AULA 1 - Classes e Objetos.ppt
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Classes Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções JavaClasses Anônimas, Internas e Coleções Java
Classes Anônimas, Internas e Coleções Java
 
Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2Slide Semana2 Rodrigo2
Slide Semana2 Rodrigo2
 
SCJA
SCJASCJA
SCJA
 
Slide Share s2 Rodd
Slide Share s2 RoddSlide Share s2 Rodd
Slide Share s2 Rodd
 
3- POO
3- POO3- POO
3- POO
 
Poo
PooPoo
Poo
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Java7
Java7Java7
Java7
 
Slide Semana2 Rodrigo
Slide Semana2 RodrigoSlide Semana2 Rodrigo
Slide Semana2 Rodrigo
 
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vbaConceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
Conceitos Básicos de Orientação o Objetos aplicdo ao VBA - Classes em vba
 

Kürzlich hochgeladen

A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
NarlaAquino
 

Kürzlich hochgeladen (20)

Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
LISTA DE EXERCICIOS envolveto grandezas e medidas e notação cientifica 1 ANO ...
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdfProjeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
Projeto de Extensão - DESENVOLVIMENTO BACK-END.pdf
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Araribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medioAraribá slides 9ano.pdf para os alunos do medio
Araribá slides 9ano.pdf para os alunos do medio
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
Aula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIXAula sobre o Imperialismo Europeu no século XIX
Aula sobre o Imperialismo Europeu no século XIX
 
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUAO PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
O PLANETA TERRA E SEU SATÉLITE NATURAL - LUA
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Camadas da terra -Litosfera conteúdo 6º ano
Camadas da terra -Litosfera  conteúdo 6º anoCamadas da terra -Litosfera  conteúdo 6º ano
Camadas da terra -Litosfera conteúdo 6º ano
 
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...E a chuva ...  (Livro pedagógico para ser usado na educação infantil e trabal...
E a chuva ... (Livro pedagógico para ser usado na educação infantil e trabal...
 
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffffSSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
SSE_BQ_Matematica_4A_SR.pdfffffffffffffffffffffffffffffffffff
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 

Orientação à objetos conceituação

  • 2. Classe • Uma classe é um gabarito para a definição de objetos. • Assim com uma planta (construção) pode ser usada para criar diversas construções, uma única classe pode ser usada para criar quantos objetos forem necessários. 1
  • 3. Objeto • É a instância de uma classe. Imagine uma planta de um apartamento. Pois bem, essa é nossa classe, ou seja, define os cômodos, tamanho, número de quartos e diversos outros aspectos dos objetos construídos, neste caso, apartamentos. Percebeu a diferença? A classe é um molde para os objetos. Quando se diz: “Instância de uma classe”, nada mais é do que o objeto dessa classe. Mundo Java Planta do apartamento Classe Apartamento 12 Objeto 2
  • 4. Objeto • Vamos adotar como exemplo um molde de bonecos de gesso. Essa é a nossa CLASSE. Ela define formato, tamanho e diversos outros aspectos dos objetos fabricados (bonecos de gesso). Mundo Java Molde Classe Boneco de Gesso Objeto 3
  • 5. Objeto • O molde é sempre o mesmo, porém os objetos por ele gerados podem ter características das mais variadas, mas respeitando a estrutura básica do molde (classe). • Imagine um molde de samurai: Vamos criar três objetos Os três objetos possuem características (cor). Poderiam ser várias outras, tipo: cor dos olhos, do cabelo e etc. Tais características são chamadas de atributos do objeto. 4
  • 6. Atributos • Atributos definem o estado do objeto em determinado momento. Imagine uma classe “Pessoa”. Agora imagine um objeto Mulher do tipo Pessoa. Com os seguintes atributos: corOlhos, corCabelo e tipoSanguineo. Vamos assumir que os valores para esses atributos são respectivamente: azuis, preto e tipo A. Bom, nunca se sabe quando uma mulher vai trocar a cor do cabelo, mas podemos, nesse instante, assumir que o estado para esse objeto é (azuis, preto e tipo A), porém amanhã pode se que seu estado seja alterado, por exemplo na cor do cabelo (corCabelo). O fato é, se um ou vários atributos forem alterados, diz-se que seu estado (estado do objeto) também foi. 5
  • 7. Métodos Voltando a classe Pessoa citada anteriormente, além dos atributos, os objetos dessa classe também possuem comportamentos, tais como: andar, dormir, acordar, etc. Esses comportamentos são chamados de métodos. Resumindo: Os atributos de instância (ou de objeto) definem o estado desse objeto. Os métodos de instância (ou de objeto) definem os comportamentos desse objeto. 6
  • 8. Regras de Sintaxe - Java Tipos primitivos: São tipos de dados que não representam classes, mas sim valores básicos. Eles existem para representar os tipos mais simples de dado, sendo eles dados numérico, booleano e caractere. Os tipos primitivos da linguagem Java são: 7
  • 9. Variável e referência - Todo objeto criado ficará armazenado em memória principal, ou seja, a sua memória RAM. - Como acessar este objeto (para alterar seu estado ou invocar um determinado comportamento)? Através das referencias! Uma espécie de ponteiro ao objeto em memória. - As variáveis funcionam da mesma forma porém não referenciam um objeto e sim um tipo primitivo. 8
  • 10. Declaração e Inicialização - Declaremos uma variável idade do tipo inteiro: int idade; - Sempre seguirá esse padrão: primeiro o tipo, que pode ser um tipo primitivo ou um tipo de referência (classe), depois o nome da referencia ou variável. - Agora um exemplo de declaração de referência: Samurai samu1; Samurai é o tipo da referência, e samu1 é o nome dessa referencia; 9
  • 11. Declaração e Inicialização A Inicialização, como o próprio nome já nos dá uma dica, nada mais é do que inicializar essa variável ou referência com alguma coisa, por exemplo: int idade = 26; E para a referência: Samurai samu1 = new Samurai(); Essa é a maneira de instanciarmos (ou criarmos em memória) um objeto do tipo Samurai e ao “mesmo tempo” amarrá-lo a uma referência também do mesmo tipo, ou seja, diz-se que samu1 referencia esse objeto criado. tipo (Samurai) da referência -> nome da referência (samu1) -> operador de atribuição (=) -> operador de “instanciação” (new) -> chamada do construtor da classe do objeto que estamos criando (Samurai()). 10
  • 12. Declaração e Inicialização O comando New Samurai() cria um objeto do tipo Samurai em memória e o atribui a referência samu1. Esse será o seu elo de acesso ao objeto criado , pois é através dele que esse objeto poderá ser manipulado. 11
  • 13. Construtores - O construtor é um método com o mesmo nome da classe. - O construtor não possui retorno. Se quisermos criar uma classe do tipo String precisamos utilizar o construtor dessa classe: String autor = new String (“Machado de Assis”); Agora temos um objeto em memória referenciado por autor. Obs.: - Objetos String são os únicos em Java que podem ser criados sem o operador new. - Objetos String são imutáveis. 12
  • 14. Modificadores de acesso Modificadores de acesso a métodos, atributos e classes da linguagem Java, são padrões de visibilidade e de acesso aos mesmos. - Public – Pode ser acessada de qualquer lugar e por qualquer entidade que possa visualizar a classe a que ela pertença. - Private – Os membros da classe assim definidos não podem ser acessados ou usados por nenhuma outra classe. Esse modificador não se aplica às classes, somente para seus métodos e atributos. Classes herdadas também não visualizam estes atributos e métodos. - Protected - O modificador protected torna o membro acessível às classes do mesmo pacote ou através de herança, seus membros herdados não são acessíveis a outras classes fora do pacote em que foram declarados. - default (padrão): A classe e/ou seus membros são acessíveis somente por classes do mesmo pacote, na sua declaração não é definido nenhum tipo de modificador, sendo este identificado pelo compilador. 13
  • 15. Modificadores de acesso - final - Quando é aplicado na classe, não permite estende-la, nos métodos impede que o mesmo seja sobrescrito (overriding) na subclasse, e nos valores de variáveis não pode ser alterado depois que já tenha sido atribuído um valor. - abstract - Esse modificador não é aplicado nas variáveis, apenas nas classes. Uma classe abstrata não pode ser instanciada, ou seja, não pode ser chamada pelos seus construtores. Se houver alguma declaração de um método como abstract (abstrato), a classe também deve ser marcada como abstract. - Static - Ele muda o escopo do membro. Com o static, ao invés deles pertencerem à instância do objeto, eles pertencem à classe. - Getters e Setters: Para permitir acesso aos atributos private a prática mais comum é criar dois métodos, um que retorna o valor e outro que muda o valor. O padrão para estes métodos é colocar get ou set antes do nome do atributo. 14
  • 16. private default protected public mesma classe sim sim sim sim mesmo pacote não sim sim sim pacotes diferentes (subclasses) não não sim sim pacotes diferentes (sem subclasses) não não não sim Tabela dos modificadores de acesso 15
  • 17. Modificador Public class Pessoa{ public String nome; public int idade; } E se alguem fizer isso? Pessoa p = new Pessoa(); p.nome = "Fulano"; p.idade = -10; class Pessoa{ private String nome; private int idade; public void setIdade(int idade){ if(idade > 0){ this.idade = idade; } }
  • 19. Modificadores de acesso - Protected - O protected é um intermediário entre public e private (É um segredo de família). Por família entenda: a superclasse, as subclasses e classes do mesmo package. Ex.: -Vamos criar dois pacotes: “Familia” e “Vizinho”. - O pacote Família contem as seguintes classes: "Heranca", "Pai", "Filha" e "Neta” - O pacote Vizinho contem a classe “Vizinho” . 19
  • 22. public final class Imutavel {} Qualquer tentativa de herança a partir da classe Imutavel irá causar um erro de compilação. public class Impossivel extends Imutavel {} Modificador final – Classes e Métodos public class Transacao { public final boolean verificarSenha() { ... } } public class TransacaoPublica extends Transacao { public final boolean verificarSenha() { ... } } Classe: Cannot inherit from final Imutavel !!! Métodos verificarSenha() in TransacaoPublica cannot override verificarSenha() in Transacao; overridden method is final 22
  • 23. Modificador final – Atributos Atributos final são constantes (não podem mudar de valor) a partir do momento que se define o seu valor inicial, esse será o seu valor durante todo o ciclo de vida do objeto. public class Carro { public final int numeroDeRodas = 4; public int numeroDePortas = 4; public static void main(String args[]) { Carro c1, c2; final Carro c3; c1 = new Carro(); c1.numeroDeRodas = 5; //erro de compilacao c2 = c3 = c1; c2.numeroDePortas = 2; c3.numeroDePortas = 2; c3 = c2; //erro de compilacao } } 23
  • 25. Exemplos Gerais: 25 Você escreve o código em um arquivo .java, compila, e é gerado um arquivo .class. Esse arquivo .class é conhecido como bytecode. A JVM irá ler/interpretar esse bytecode e executá-lo.