SlideShare uma empresa Scribd logo
Grupo de Estudos   Certificação Java SCJP – Sun Certified Java Programmer
Orientação a Objetos –Encapsulamento  O encapsulamento ajuda a implementação por trás de uma interface (ou API); Proteção de variáveis de instância ( private ); Acesso através de métodos “capturadores -  gets ” e “configuradores -  sets ”; O relacionamento  É UM  se refere a herança, é representado por  extends. O relacionamento  TEM-UM  são baseados na utilização e significa que a instância de uma classe “tem uma” referência a instância de outra classe.
Orientação a Objetos –Herança Mecanismo que permite que uma subclasse herda variáveis e métodos da superclasse; Conceito fundamental do polimorfismo; Todas as classes herdam de Object;
Polimorfismo Significa “muitas formas”; Variáveis de referências são imutáveis, mais podem se referir a objetos de subtipos; O tipo de variável de referência (não o tipo do objeto) determina quais métodos poderão ser chamados; As chamadas polifórmicas se aplicam apenas a métodos de instâncias subscritos;
Subscrição e Subrecarga de métodos Os métodos podem ser subscritos e sobrecarregados, os construtores só podem ser sobrecarregados; Os métodos abstract devem ser subscritos pela primeira subclasse concreta (não abstract); A respeito ao método subscrito, o método novo: Deve ter a mesma lista de argumentos; Deve ter o mesmo tipo de retorno (exceto covariantes Java 5 – retorno de subclasse); Não deve ter um modificador de acesso mais restritivo; Não pode lançar exceções verificadas novas ou mais abrangentes; Os métodos final não podem ser subscritos; Só os métodos herdados podem ser subscritos, os métodos private não são herdados; Chamadas super.metodoSubscrito, chamam versão da superclasse de um método subscrito.
Subscrição e Subrecarga de métodos Significa reutilizar o mesmo nome do método, mas com argumentos diferentes; Os métodos sobrecarregados: Devem ter lista de argumentos diferentes;  Podem ter tipos de retorno diferentes, contanto que a lista de argumentos sejam diferentes; Podem ter modificadores de acesso diferentes; Podem lançar exceções diferentes;  Os métodos de uma superclasse podem ser sobrecarregados em uma subclasse; O polimorfismo é aplicável à subscrição e não à sobrecarga; O tipo de objeto (e não o tipo de referência) diz qual o método subscrito será usado no tempo de execução; O tipo de referência diz qual método sobrecarregado será usado no tempo de compilação;
Modificadores de Acesso a Membros Não Não Não Sim Qualquer classe que não seja uma subclasse e esteja fora do mesmo pacote Não Não Sim (herança) Sim Subclasse fora do mesmo pacote Não Sim Sim Sim Subclasse do mesmo pacote Não  Sim Sim Sim Qualquer classe do mesmo pacote Sim Sim Sim Sim  A partir da mesma classe Private Default Protect Public Visibilidade
Variáveis Locais As declarações de variáveis locais não podem ter modificadores de acesso;  final  é o único modificador disponível para variáveis locais; As variáveis locais não recebem valores padrão, portanto, devem ser inicializadas antes do uso;
Outros modificadores – membros Os métodos  final  não podem ser sobrecarregados em uma subclasse; Os métodos  abstract  foram declarados, com uma assinatura, um tipo de retorno e uma cláusula throws opcional, mais não foram implementados; Os métodos  abstract  terminam com um ponto-e-vírgula, e não chaves; Pode-se ter uma classe abstrata sem método  abstract ; Há três maneiras de identificar um método não abstract; O método não é marcado como abstract; O método possui chaves; O método possui código entre chaves; A primeira classe não-abstrata concreta a estender uma classe  abstract  deve implementar todos os métodos abstratos dessa;
Outros modificadores - membros O modificador syncronized só é aplicado a métodos e blocos de código, podendo ter qualquer controle de acesso e serem marcados como  final (Ex. Método só pode ser acessado por uma thread de cada vez)  ; Os métodos abstract devem ser implementados por uma subclasse, tem de ser herdados, por isso não podem ser  private  nem  final ; O modificador native só é aplicado a métodos (Ex.: Indica que o método está sendo implementado conforme plataforma, comumente C); O modificador strictfp só é aplicado a classes e métodos (Ex.: Força pontos flutuantes a aderir  o  padrão IEEE754);
Métodos com Argumentos Variáveis A partir do Java 5, os métodos podem declarar um parâmetro que aceita zero a vários argumentos, é o chamado método var-arg; Um parâmetro var-arg é declarado com a sintaxe tipo...nome; por exemplo:  teste (int ... X) {} Um método var-arg só pode ter um parâmetro var-arg; Em métodos com parâmetros normais e um var-arg, o var-arg deve vir por último;
Declaração de Variáveis São classificadas em primitivas e de referência; As variáveis de instância (alocadas no heap – objetos) podem qualquer tipo de controle de acesso e serem marcadas como  final  ou  transient ; As variáveis de instância não podem ser declaradas como abstract, syncronized, native, strictfp ou static; É válido declarar uma variável local com o mesmo nome de uma variável de instância: isso é chamado de sombreamento; As variáveis final possuem as seguintes propriedades: Não podem ser reinicializadas, uma vez que tiverem um valor atribuído; Não podem referenciar um objeto diferente se já tiverem um objeto atribuído a elas;
Declaração de Variáveis As variáveis de referência final devem ser inicializadas antes que a execução do construtor seja concluída; Não existe objetos final. Uma referência a objeto marcada como final não significa que o objeto propriamente dito seja inalterável; É válido declarar uma variável local com o mesmo nome de uma variável de instância: isso é chamado de sombreamento; As variáveis locais residem na pilha(destrói após uso); O modificador transient só pode ser aplicado a variáveis de instância (Ignorar variável quando tentar serializar objeto que a contém); O modificador volatile só pode ser aplicado a variáveis de instância (Diz a um thread que acesse a variável deve sempre reconciliar a sua cópia private da variável com a cópia master presente na memória);
Declaração de Arrays Os arrays podem armazenar tipos primitivos ou objetos, mas o array propriamente dito é sempre um objeto; Quando você declara um array, os colchetes podem ficar a esquerda ou a direita do nome da variável; Nunca é válido incluir o tamanho do array na declaração; Um array de objetos pode armazenar qualquer objeto que passe no teste É-UM (ou instanceof) para o tipo declarado do array. Por exemplo: Se horse estender Animal, então um objeto Horse pode ser colocado em um array de Animal;
Variáveis e métodos static Não são associados a nenhuma instância específica de classe; Não é necessária a existência da instância de uma classe para que os membros static desta sejam usados; Só haverá uma cópia da variável ou classe static e todas as instância a compartilharão; Os métodos static não têm acesso direto a membros não-static;
Enums (Lista Numerada) Um enum especifica uma lista de valores constantes que podem ser atribuídos a um determinado tipo; Um emum não é uma String nem um int; o tipo constante de um enum é o tipo do próprio enum. Por exemplo: INVERNO, PRIMAVERA, VERÃO e OUTONO são do tipo enum Estação; Um enum pode ser declarado fora ou dentro de uma classe, mas não em um método; Um ewnum declarado fora de uma classe não pode ser marcado com static, final, abstract, protect ou private;
Enums Os enums podem conter construtores, métodos, variáveis e corpos de classes constantes; As constantes enum podem enviar argumentos para o construtor enum, usando a sintaxe BIG(8), onde o literal int 8 é passado ao construtor enum; Os construtores enum podem ter argumentos e podem ser sobrecarregados; Os construtores enum nunca podem ser chamados diretamente no código. Eles são sempre chamados automaticamente quando um enum é inicializado; O ponto-e-vírgula ao final da declaração de um enum é opcional. Ambos são válidos: enum Numero { UM, DOIS, TRES} enum Numero { UM, DOIS, TRES} ;
FIM

Mais conteúdo relacionado

PPTX
Estudos Technocorp
PPT
Exceptions Em Java UFF
DOCX
PPTX
Estudos Technocorp
PPTX
JAVA - Tratamento de Erros
PDF
Tratamento de exceções em Java
PPTX
02 controle de fluxo
PPTX
Tratamento de exceções em Java
Estudos Technocorp
Exceptions Em Java UFF
Estudos Technocorp
JAVA - Tratamento de Erros
Tratamento de exceções em Java
02 controle de fluxo
Tratamento de exceções em Java

Mais procurados (18)

PPTX
Interface
PPTX
Final e aastract
PDF
Manual robotec
PDF
Curso java 07 - exceções
PDF
PDF
Erros, exceções e asserções
PPTX
Escopo de variaveis
PDF
POO - 22 - Tratamento de Exceções em Java
PPT
Sincronização - Glêdson Elias
PDF
Sebenta Ling Prog Cptig MóDulo Iii Carla
PDF
PPT
Excepções JAVA
PDF
Reuso com Herança e Composição
ODP
Java 13 Excecoes
PDF
Certificação Java: Exceções
PPTX
Linguagem de programação implementação de classes
PPT
Java Básico
Interface
Final e aastract
Manual robotec
Curso java 07 - exceções
Erros, exceções e asserções
Escopo de variaveis
POO - 22 - Tratamento de Exceções em Java
Sincronização - Glêdson Elias
Sebenta Ling Prog Cptig MóDulo Iii Carla
Excepções JAVA
Reuso com Herança e Composição
Java 13 Excecoes
Certificação Java: Exceções
Linguagem de programação implementação de classes
Java Básico
Anúncio

Destaque (9)

PPS
Humahuaca
PPS
Algo Molesta
PDF
Nu 2 B 200 300 08
PDF
Traducció automàtica de codi obert: Apertium, una oportunitat per a llengües ...
PPT
Using Blog To Design Ml Learning Activities Pri
PPT
RRHHNNHH
PPS
Clásicos De La Literatura
PPT
homenagem
PPT
Esculturasemsabonete
Humahuaca
Algo Molesta
Nu 2 B 200 300 08
Traducció automàtica de codi obert: Apertium, una oportunitat per a llengües ...
Using Blog To Design Ml Learning Activities Pri
RRHHNNHH
Clásicos De La Literatura
homenagem
Esculturasemsabonete
Anúncio

Semelhante a SCJP (20)

PDF
Declarações e Controle de Acesso
ODT
Guia Rápido Java
PPTX
Programação Orientado a Objetos - Sessao 4.pptx
PPSX
Java & orientação a objetos
PPTX
JAVA - Pacotes
PPTX
Orientação à objetos conceituação
PDF
Reuso com Herança e Composição
PPTX
Curso de Java 4 - (Orientação a Objetos).pptx
PPTX
JAVA - Orientação a Objetos
ODP
3 orientacao-objetos
PPT
Aula4
PDF
Curso java 03 - métodos e parâmetros
PPT
Classes e Objectos JAVA
PPT
Aula 1 - Linguagem III
PPTX
Curso Java Básico - Aula 03
PPT
Introdução ao Java 5
PPT
Aula5
ODP
Java 08 Modificadores Acesso E Membros De Classe
PPT
Curso Java Basico
Declarações e Controle de Acesso
Guia Rápido Java
Programação Orientado a Objetos - Sessao 4.pptx
Java & orientação a objetos
JAVA - Pacotes
Orientação à objetos conceituação
Reuso com Herança e Composição
Curso de Java 4 - (Orientação a Objetos).pptx
JAVA - Orientação a Objetos
3 orientacao-objetos
Aula4
Curso java 03 - métodos e parâmetros
Classes e Objectos JAVA
Aula 1 - Linguagem III
Curso Java Básico - Aula 03
Introdução ao Java 5
Aula5
Java 08 Modificadores Acesso E Membros De Classe
Curso Java Basico

Último (11)

PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Eng. Software - pontos essenciais para o início
PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Utilizando code blockes por andre backes
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Tipos de servidor em redes de computador.pptx
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Design - Introdução a Gestalt e teoria das formas
Manejo integrado de pragas na cultura do algodão
Viasol Energia Solar -Soluções para geração e economia de energia
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Eng. Software - pontos essenciais para o início
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Utilizando code blockes por andre backes
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Tipos de servidor em redes de computador.pptx
Arquitetura de computadores - Memórias Secundárias
Design - Introdução a Gestalt e teoria das formas

SCJP

  • 1. Grupo de Estudos Certificação Java SCJP – Sun Certified Java Programmer
  • 2. Orientação a Objetos –Encapsulamento O encapsulamento ajuda a implementação por trás de uma interface (ou API); Proteção de variáveis de instância ( private ); Acesso através de métodos “capturadores - gets ” e “configuradores - sets ”; O relacionamento É UM se refere a herança, é representado por extends. O relacionamento TEM-UM são baseados na utilização e significa que a instância de uma classe “tem uma” referência a instância de outra classe.
  • 3. Orientação a Objetos –Herança Mecanismo que permite que uma subclasse herda variáveis e métodos da superclasse; Conceito fundamental do polimorfismo; Todas as classes herdam de Object;
  • 4. Polimorfismo Significa “muitas formas”; Variáveis de referências são imutáveis, mais podem se referir a objetos de subtipos; O tipo de variável de referência (não o tipo do objeto) determina quais métodos poderão ser chamados; As chamadas polifórmicas se aplicam apenas a métodos de instâncias subscritos;
  • 5. Subscrição e Subrecarga de métodos Os métodos podem ser subscritos e sobrecarregados, os construtores só podem ser sobrecarregados; Os métodos abstract devem ser subscritos pela primeira subclasse concreta (não abstract); A respeito ao método subscrito, o método novo: Deve ter a mesma lista de argumentos; Deve ter o mesmo tipo de retorno (exceto covariantes Java 5 – retorno de subclasse); Não deve ter um modificador de acesso mais restritivo; Não pode lançar exceções verificadas novas ou mais abrangentes; Os métodos final não podem ser subscritos; Só os métodos herdados podem ser subscritos, os métodos private não são herdados; Chamadas super.metodoSubscrito, chamam versão da superclasse de um método subscrito.
  • 6. Subscrição e Subrecarga de métodos Significa reutilizar o mesmo nome do método, mas com argumentos diferentes; Os métodos sobrecarregados: Devem ter lista de argumentos diferentes; Podem ter tipos de retorno diferentes, contanto que a lista de argumentos sejam diferentes; Podem ter modificadores de acesso diferentes; Podem lançar exceções diferentes; Os métodos de uma superclasse podem ser sobrecarregados em uma subclasse; O polimorfismo é aplicável à subscrição e não à sobrecarga; O tipo de objeto (e não o tipo de referência) diz qual o método subscrito será usado no tempo de execução; O tipo de referência diz qual método sobrecarregado será usado no tempo de compilação;
  • 7. Modificadores de Acesso a Membros Não Não Não Sim Qualquer classe que não seja uma subclasse e esteja fora do mesmo pacote Não Não Sim (herança) Sim Subclasse fora do mesmo pacote Não Sim Sim Sim Subclasse do mesmo pacote Não Sim Sim Sim Qualquer classe do mesmo pacote Sim Sim Sim Sim A partir da mesma classe Private Default Protect Public Visibilidade
  • 8. Variáveis Locais As declarações de variáveis locais não podem ter modificadores de acesso; final é o único modificador disponível para variáveis locais; As variáveis locais não recebem valores padrão, portanto, devem ser inicializadas antes do uso;
  • 9. Outros modificadores – membros Os métodos final não podem ser sobrecarregados em uma subclasse; Os métodos abstract foram declarados, com uma assinatura, um tipo de retorno e uma cláusula throws opcional, mais não foram implementados; Os métodos abstract terminam com um ponto-e-vírgula, e não chaves; Pode-se ter uma classe abstrata sem método abstract ; Há três maneiras de identificar um método não abstract; O método não é marcado como abstract; O método possui chaves; O método possui código entre chaves; A primeira classe não-abstrata concreta a estender uma classe abstract deve implementar todos os métodos abstratos dessa;
  • 10. Outros modificadores - membros O modificador syncronized só é aplicado a métodos e blocos de código, podendo ter qualquer controle de acesso e serem marcados como final (Ex. Método só pode ser acessado por uma thread de cada vez) ; Os métodos abstract devem ser implementados por uma subclasse, tem de ser herdados, por isso não podem ser private nem final ; O modificador native só é aplicado a métodos (Ex.: Indica que o método está sendo implementado conforme plataforma, comumente C); O modificador strictfp só é aplicado a classes e métodos (Ex.: Força pontos flutuantes a aderir o padrão IEEE754);
  • 11. Métodos com Argumentos Variáveis A partir do Java 5, os métodos podem declarar um parâmetro que aceita zero a vários argumentos, é o chamado método var-arg; Um parâmetro var-arg é declarado com a sintaxe tipo...nome; por exemplo: teste (int ... X) {} Um método var-arg só pode ter um parâmetro var-arg; Em métodos com parâmetros normais e um var-arg, o var-arg deve vir por último;
  • 12. Declaração de Variáveis São classificadas em primitivas e de referência; As variáveis de instância (alocadas no heap – objetos) podem qualquer tipo de controle de acesso e serem marcadas como final ou transient ; As variáveis de instância não podem ser declaradas como abstract, syncronized, native, strictfp ou static; É válido declarar uma variável local com o mesmo nome de uma variável de instância: isso é chamado de sombreamento; As variáveis final possuem as seguintes propriedades: Não podem ser reinicializadas, uma vez que tiverem um valor atribuído; Não podem referenciar um objeto diferente se já tiverem um objeto atribuído a elas;
  • 13. Declaração de Variáveis As variáveis de referência final devem ser inicializadas antes que a execução do construtor seja concluída; Não existe objetos final. Uma referência a objeto marcada como final não significa que o objeto propriamente dito seja inalterável; É válido declarar uma variável local com o mesmo nome de uma variável de instância: isso é chamado de sombreamento; As variáveis locais residem na pilha(destrói após uso); O modificador transient só pode ser aplicado a variáveis de instância (Ignorar variável quando tentar serializar objeto que a contém); O modificador volatile só pode ser aplicado a variáveis de instância (Diz a um thread que acesse a variável deve sempre reconciliar a sua cópia private da variável com a cópia master presente na memória);
  • 14. Declaração de Arrays Os arrays podem armazenar tipos primitivos ou objetos, mas o array propriamente dito é sempre um objeto; Quando você declara um array, os colchetes podem ficar a esquerda ou a direita do nome da variável; Nunca é válido incluir o tamanho do array na declaração; Um array de objetos pode armazenar qualquer objeto que passe no teste É-UM (ou instanceof) para o tipo declarado do array. Por exemplo: Se horse estender Animal, então um objeto Horse pode ser colocado em um array de Animal;
  • 15. Variáveis e métodos static Não são associados a nenhuma instância específica de classe; Não é necessária a existência da instância de uma classe para que os membros static desta sejam usados; Só haverá uma cópia da variável ou classe static e todas as instância a compartilharão; Os métodos static não têm acesso direto a membros não-static;
  • 16. Enums (Lista Numerada) Um enum especifica uma lista de valores constantes que podem ser atribuídos a um determinado tipo; Um emum não é uma String nem um int; o tipo constante de um enum é o tipo do próprio enum. Por exemplo: INVERNO, PRIMAVERA, VERÃO e OUTONO são do tipo enum Estação; Um enum pode ser declarado fora ou dentro de uma classe, mas não em um método; Um ewnum declarado fora de uma classe não pode ser marcado com static, final, abstract, protect ou private;
  • 17. Enums Os enums podem conter construtores, métodos, variáveis e corpos de classes constantes; As constantes enum podem enviar argumentos para o construtor enum, usando a sintaxe BIG(8), onde o literal int 8 é passado ao construtor enum; Os construtores enum podem ter argumentos e podem ser sobrecarregados; Os construtores enum nunca podem ser chamados diretamente no código. Eles são sempre chamados automaticamente quando um enum é inicializado; O ponto-e-vírgula ao final da declaração de um enum é opcional. Ambos são válidos: enum Numero { UM, DOIS, TRES} enum Numero { UM, DOIS, TRES} ;
  • 18. FIM