SlideShare a Scribd company logo
1 of 44
Download to read offline
SCJP
Declarações e Controle de Acesso




                              Elenilson Vieira
           elenilson.vieira.filho@gmail.com
Definições Básicas

 
   Um programa Java é uma coleção de objetos se
 comunicando com outros objetos pela invocação de
 métodos

 
   Classe: descreve um objeto de forma a explicitar seus
 tipos de comportamento e estado (variáveis de
 instância)

 
   Objeto: a representação, em tempo de execução, da
 classe
Definições Básicas

 
  Estado (variáveis de instância): Cada objeto terá um
 único conjunto de variáveis de instância como descrito
 em sua classe e elas definirão o seu estado.

 
  Comportamento (métodos): Onde a lógica da classe
 é colocada. São lá que os algoritmos são colocados e
 executados
Herança

 
  Códigos definidos em uma classe podem ser reusados
 em outras classes. Uma subclasse tem que
 explicitamente declarar que está herdando de uma
 superclasse mas uma superclasse nem sabe quem são
 suas herdeiras
 class A{
   public int x = 10;
 }
 class B extends A{
   public void b(){
     System.out.println(x);
   }
 }
Interface

 
   De certa forma elas atuam como superclasses mas não
 há qualquer implementação dos métodos e estes devem
 ser implementados pelas classes que implementam a
 interface.

 Public interface A{
   public void a();
 }
 public class B implements A{
   public void a{}
 }
Identificadores Legais

 
     Devem começar com letras, $ ou caractere de ligação (_)
 
   Não há limites de quantos caracteres um identificador
 pode conter (achei estranho!)
 
   identificadores são sensíveis a maiúscula e minúscula
 
   não se pode usar palavras reservadas

 Ex: _a, $a, ___________2_w, .b, :a, e#.
Arquivos Fonte

 
     Pode conter apenas uma classe pública

 
   Se há uma classe pública no arquivo, o nome do
 arquivo deve ser o mesmo seguido de “.java”

 
  Se a classe faz parte de um pacote, a declaração deve
 ser a primeira linha antes de qualquer código
Arquivos Fonte

 
   Declarações import devem vir entre o local da
 declaração do package e o início da classe

 
   Declarações import e package valem para todas as
 classes declaradas do arquivo de código fonte

 
     Um arquivo pode ter mais de uma classe não pública
Modificadores de Acesso

 
  Uma classe A pode acessar uma classe B se A pode
 uma das 3 coisas:
  
    Criar uma instância de B
  
    Extender a classe B
  
    Acessar determinados métodos e variáveis dentro
    da classe B
Modificadores de Acesso: Default

 
   Dá acesso apenas a classes que estejam dentro do
 pacote

 package cert;
 class Beverage { }

 package exam.stuff;
 import cert.Beverage;
 class Tea extends Beverage { }

 Can't access class cert.Beverage. Class or interface must be
 public, in same package, or an accessible member class.
 import cert.Beverage;
Modificadores de Acesso: Public

 
     Dá acesso a todas as outras classes que tentarem

 package eu;
 public class A{}

 package B;
 import eu.A;
 public class B{
   A a = new A();
 }
Outros Modificadores de Acesso

 
     Final

 
     Abstract

 
  Strictfp (não é necessário saber o que strctfp faz, mas
 saber que é um modificador para classe e métodos, não
 para variáveis).
Outros Modificadores de Acesso

 
    Final faz com que classes não possam ser
 especializadas. Usar final não vai contra o conceito de
 OO?

 
  Usa-se final por segurança e apenas quando está certo
 que nenhum programador precisará extender sua
 classe.
Classes Abstratas

 
   Classes abstratas
   
     Não podem ser instanciadas e sua única finalidade é
     ser extendida
 
     Por que criar uma classe que não pode ser
 instanciada? Bem, poderíamos ter uma classe bem
 genérica dada como Carro, mas qual o motor desse
 carro? E o câmbio? Quantos cavalos de potência? Isso
 são características de modelos de carros, então uma
 classe BWM pode extender carro e implementar seus
 métodos abstratos
Classes Abstratas

 
   Se há algum método marcado como abstrato, a classe
 inteira deve ser abstrata

 
   Uma classe abstrata pode conter métodos não
 abstratos

 
     Não se pode marcar uma classe como abstract e final
Interfaces

 
  Pense em uma interface com 100% dos métodos
 marcados como abstratos

 
     Uma interface pode ter apenas métodos abstratos

 
    Todos os métodos de uma               interface    são
 implicitamente públicos e abstratos

 
   Todas as variáveis definidas em uma interface devem
 ser públicas, estáticas e finais. Se você não explicitar,
 elas mesmo assim serão.
Interfaces

 
     Métodos de uma interface não podem ser estáticos

 
   Uma interface não pode extender uma classe mas
 pode extender uma ou mais interfaces :O (pág 59)

 
     Uma interface não pode implementar outra interface

 
   Você pode tipar uma interface como abstract mas é
 redundante
 public abstract interface Rollable { }
 public interface Rollable { }
Interfaces
Modificadores de Acesso

 
     Default, public, protected, private

 
  Classes podem usar apenas default e public mas
 membros podem usar os 4
Modificadores de Acesso

 
     Membros públicos
     
       Significa que todas as outras classes tem acesso a
       esse membro seja usando o (.) ou extends
Modificadores de Acesso

 
     Membros private
     
       Significa que apenas a própria classe tem acesso a
       esses membros

 
   Um método private pode sofrer override em uma
 subclasse?
Modificadores de Acesso

 
     Protected e Default
     
       São quase idênticos, mas há uma pequena e crítica
       diferença: no default os membros podem ser
       acessados apenas dentro do pacote e o protected é
       igual ao default mas suas subclasses podem acessar
       mesmo estando fora do pacote
     package tu;
     public class A{
       void a(){}
     }

     package nos;
     public class B extends A{
       void b(){
          a();
       }
     }
Relembrando

 
     Variáveis Locais
     
       Apenas o final é aplicado
     …
     public void a(){
         final int c = 10;
     }
Relembrando

 
     Métodos final não podem ser sobrescritos

 
     Métodos abstratos: são métodos sem implementação


 Assim? public abstract void vos();

 Ou assim? public abstract void lalala(){}
Definições Básicas

 
  Estado (variáveis de instância): Cada objeto terá um
 único conjunto de variáveis de instância como descrito
 em sua classe e elas definirão o seu estado.

 
  Comportamento (métodos): Onde a lógica da classe
 é colocada. São lá que os algoritmos são colocados e
 executados
Métodos Synchronized

 
  Indicam que o método pode ser acessado por uma
 única thread no tempo.

 public synchronized void c(){}
Métodos Native

 
  Indica que o método é dependente de plataforma. Não
 é necessário saber como funciona, apenas que é um
 modificador
Métodos strictfp

 
   Faz com que seja usado o padrão IEE754 para
 operações com ponto flutuante (mais precisão e mais
 velocidade nas operações
Argumentos Variáveis

 
   Usamos os …; Pode haver outros argumentos mas
 esses devem vir antes e o var-arg deve vir por último.
 Não pode ter mais de um var-arg

 Sintaxe:
 void a(int... x); // Legal
 void b(char c, int... y); // legal
 void c(int... u, String a);//Ilegal
 void d(int u...);//Ilegal
Construtores

 
   Devem ter o mesmo nome da classe e JAMAIS ter
 tipo de retorno. Não podem ser assinalados como
 static, final ou abstract.

 public class Elenilson{
   public Elenilson(String nome){}
 }
Variáveis Primitivas

 
  Podem ser de 8 tipos e podem ser declaradas como
 variáveis de classe, de instância, argumentos de
 métodos e variáveis locais

 
   Não é necessário saber calcular a faixa dos tipos mas
 saber que os tipos inteiros na sequencia são byte, short,
 int, long e os de ponto flutuante são float e double

 
  Os tipos tem sinais e o bit mais a esquerda indica se é
 positivo ou negativo (1 e 0) e os outros indicam o
 valor.
Variáveis Primitivas
Variáveis de Instância

 
   São declarados dentro da classe mas fora de qualquer
 método. São inicializadas apenas na instanciação da
 classe
Variáveis Locais

 
   Tem seu tempo de vida no início do método e são
 destruídas no término do métodos. Não pode ter
 modificadores de acesso e podem ser apenas
 assinaladas como final

 public void a(){
   int x = 10;
 }
Variáveis
Arrays

 
     São objetos
         Int x[];
         int[] y = new int[10];

 
     Pode-se declarar arrays multidimensionais
         int a[][][];
         char[] b[];
Final, Transient, Volatile e Static

 
     Variáveis final
     
       não podem ter seus valores alterados. Final pode ser
       usado para classes, métodos e variáveis

 
     Variáveis e métodos static
     
       São pertencentes às classes            e    existem
       independentemente da instanciação
Final, Transient, Volatile e Static
Final, Transient, Volatile e Static

 
     Variáveis transiente
     
       indica para a JVM não salvar o valor de uma
       variável em uma serialização

 
     Volatile:
     
       Indica para a JVM que sempre que precisar
       consultar o valor da variável que a busque na cópia
       principal (não use a cópia do registrador como
       otimização)
Enum

 
  Restringe variáveis a um número fechado de valores
 que são definidos pelo programador

 enum CoffeeSize { BIG, HUGE, OVERWHELMING };
 CoffeeSize cs = CoffeeSize.BIG
Enum
Enum
Perguntas?
Obrigado!


Elenilson Vieira
elenilson.vieira.filho@gmail.com

More Related Content

What's hot

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosLeonardo Melo Santos
 
Java Básico :: Modificadores de acesso
Java Básico :: Modificadores de acessoJava Básico :: Modificadores de acesso
Java Básico :: Modificadores de acessoWesley R. Bezerra
 
Aula 4 acessibilidade
Aula 4   acessibilidadeAula 4   acessibilidade
Aula 4 acessibilidadeDanilo Alves
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceArthur Emanuel
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosLudimila Monjardim Casagrande
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem IIIJuliano Weber
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosLudimila Monjardim Casagrande
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – IIGabriel Faustino
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 

What's hot (20)

Curso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetosCurso de OO com C# - Parte 01 - Orientação a objetos
Curso de OO com C# - Parte 01 - Orientação a objetos
 
Aula4
Aula4Aula4
Aula4
 
Java Básico :: Modificadores de acesso
Java Básico :: Modificadores de acessoJava Básico :: Modificadores de acesso
Java Básico :: Modificadores de acesso
 
Java - Boas práticas
Java - Boas práticasJava - Boas práticas
Java - Boas práticas
 
Aula 4 acessibilidade
Aula 4   acessibilidadeAula 4   acessibilidade
Aula 4 acessibilidade
 
Java: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, InterfaceJava: Classes Abstratas, Anônimas, Interface
Java: Classes Abstratas, Anônimas, Interface
 
Classes e Objectos JAVA
Classes e Objectos JAVAClasses e Objectos JAVA
Classes e Objectos JAVA
 
POO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a ObjetosPOO - 01 - Introdução ao Paradigma Orientado a Objetos
POO - 01 - Introdução ao Paradigma Orientado a Objetos
 
Aula 1 5
Aula 1 5Aula 1 5
Aula 1 5
 
Aula 1 - Linguagem III
Aula 1 - Linguagem IIIAula 1 - Linguagem III
Aula 1 - Linguagem III
 
Variáveis
VariáveisVariáveis
Variáveis
 
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a ObjetosPOO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
POO - 02 - Fundamentos da Linguagem Java e da Orientação a Objetos
 
Aula 09 - introducao oo
Aula 09 - introducao ooAula 09 - introducao oo
Aula 09 - introducao oo
 
Programação orientada a objetos – II
Programação orientada a objetos – IIProgramação orientada a objetos – II
Programação orientada a objetos – II
 
POO - 07 - Operadores do Java
POO - 07 - Operadores do  JavaPOO - 07 - Operadores do  Java
POO - 07 - Operadores do Java
 
POO - 10 - Herança
POO - 10 - HerançaPOO - 10 - Herança
POO - 10 - Herança
 
7194099-Manual-de-Java
7194099-Manual-de-Java7194099-Manual-de-Java
7194099-Manual-de-Java
 
POO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de DesenvolvimentoPOO - 05 - Ambiente de Desenvolvimento
POO - 05 - Ambiente de Desenvolvimento
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Reflections
ReflectionsReflections
Reflections
 

Viewers also liked (7)

Lista2
Lista2Lista2
Lista2
 
Programacao em java
Programacao em javaProgramacao em java
Programacao em java
 
Tutorial javac
Tutorial javacTutorial javac
Tutorial javac
 
Java interface gráfica layouts
Java   interface gráfica layoutsJava   interface gráfica layouts
Java interface gráfica layouts
 
POO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetosPOO - Aula 04 - Introdução a classes e objetos
POO - Aula 04 - Introdução a classes e objetos
 
Introdução ao Java Swing (Interface)
Introdução ao Java Swing (Interface)Introdução ao Java Swing (Interface)
Introdução ao Java Swing (Interface)
 
Java interface gráfica swing
Java   interface gráfica swingJava   interface gráfica swing
Java interface gráfica swing
 

Similar to SCJP Declarações e Controle de Acesso

UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoUFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoAnderson Ledo
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Natanael Fonseca
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – IIIGabriel Faustino
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e ComposiçãoDenis L Presciliano
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens PooInfogenius
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Sérgio Souza Costa
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Seminário sobre GO
Seminário sobre GOSeminário sobre GO
Seminário sobre GOgptavares
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)Mario Sergio
 
Poo slides01
Poo slides01Poo slides01
Poo slides01jmtofoli
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidIury Teixeira
 

Similar to SCJP Declarações e Controle de Acesso (20)

UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de AcessoUFCG.JCert Reunião 1 - Declarações e Controle de Acesso
UFCG.JCert Reunião 1 - Declarações e Controle de Acesso
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
Java11
Java11Java11
Java11
 
Reuso com Herança e Composição
Reuso com Herança e ComposiçãoReuso com Herança e Composição
Reuso com Herança e Composição
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++Paradigma orientado a objetos - Caso de Estudo C++
Paradigma orientado a objetos - Caso de Estudo C++
 
Refatorações
RefatoraçõesRefatorações
Refatorações
 
Curso Java Basico
Curso Java BasicoCurso Java Basico
Curso Java Basico
 
03 fundamentos java
03 fundamentos java03 fundamentos java
03 fundamentos java
 
Java
JavaJava
Java
 
Java primeiros-passos
Java primeiros-passosJava primeiros-passos
Java primeiros-passos
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Seminário sobre GO
Seminário sobre GOSeminário sobre GO
Seminário sobre GO
 
Java Básico
Java BásicoJava Básico
Java Básico
 
Final e aastract
Final e aastractFinal e aastract
Final e aastract
 
Curso de Java (Parte 2)
 Curso de Java (Parte 2) Curso de Java (Parte 2)
Curso de Java (Parte 2)
 
Poo slides01
Poo slides01Poo slides01
Poo slides01
 
Java2
Java2Java2
Java2
 
Orientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores AndroidOrientação a Objetos para Desenvolvedores Android
Orientação a Objetos para Desenvolvedores Android
 

More from Elenilson Vieira (20)

Aulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz LavieriAulão de JPA com Tomaz Lavieri
Aulão de JPA com Tomaz Lavieri
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
JavaEE
JavaEEJavaEE
JavaEE
 
JavaME no Mercado Mobile
JavaME no Mercado MobileJavaME no Mercado Mobile
JavaME no Mercado Mobile
 
JavaFX 1.2
JavaFX 1.2JavaFX 1.2
JavaFX 1.2
 
Apresentação da Doom
Apresentação da DoomApresentação da Doom
Apresentação da Doom
 
Palestra sobre a Sun
Palestra sobre a SunPalestra sobre a Sun
Palestra sobre a Sun
 
Apresentação da RedeSoft
Apresentação da RedeSoftApresentação da RedeSoft
Apresentação da RedeSoft
 
Java Collections - Tomaz Lavieri
Java Collections - Tomaz LavieriJava Collections - Tomaz Lavieri
Java Collections - Tomaz Lavieri
 
A Sun no Meio Acadêmico - IESP/FatecPB
A Sun no Meio Acadêmico - IESP/FatecPBA Sun no Meio Acadêmico - IESP/FatecPB
A Sun no Meio Acadêmico - IESP/FatecPB
 
Mini-Curso de Sockets no Unipê
Mini-Curso de Sockets no UnipêMini-Curso de Sockets no Unipê
Mini-Curso de Sockets no Unipê
 
JavaME
JavaMEJavaME
JavaME
 
Concorrência com Java
Concorrência com JavaConcorrência com Java
Concorrência com Java
 
Programas Acadêmicos da Sun no Unipê
Programas Acadêmicos da Sun no UnipêProgramas Acadêmicos da Sun no Unipê
Programas Acadêmicos da Sun no Unipê
 
Mundo Livre e Aberto
Mundo Livre e AbertoMundo Livre e Aberto
Mundo Livre e Aberto
 
JavaME - Aula 2
JavaME - Aula 2JavaME - Aula 2
JavaME - Aula 2
 
JavaME - Aula 1
JavaME - Aula 1JavaME - Aula 1
JavaME - Aula 1
 
Apostila JavaME
Apostila JavaMEApostila JavaME
Apostila JavaME
 
Threads
ThreadsThreads
Threads
 
Sincronização - Glêdson Elias
Sincronização - Glêdson EliasSincronização - Glêdson Elias
Sincronização - Glêdson Elias
 

Recently uploaded

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.pdfHELENO FAVACHO
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAHELENO FAVACHO
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
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.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfHELENO FAVACHO
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxLuizHenriquedeAlmeid6
 
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
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.Mary Alvarenga
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfLuizaAbaAba
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasSocorro Machado
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfLeloIurk1
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfRavenaSales1
 
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.pptxLuizHenriquedeAlmeid6
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...azulassessoria9
 

Recently uploaded (20)

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
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIAPROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
PROJETO DE EXTENSÃO I - AGRONOMIA.pdf AGRONOMIAAGRONOMIA
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
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
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdfProjeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
Projeto_de_Extensão_Agronomia_adquira_ja_(91)_98764-0830.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptxSlides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
Slides Lição 05, Central Gospel, A Grande Tribulação, 1Tr24.pptx
 
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...
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
Atividade - Letra da música Esperando na Janela.
Atividade -  Letra da música Esperando na Janela.Atividade -  Letra da música Esperando na Janela.
Atividade - Letra da música Esperando na Janela.
 
atividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdfatividades_reforço_4°ano_231206_132728.pdf
atividades_reforço_4°ano_231206_132728.pdf
 
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para criançasJogo de Rimas - Para impressão em pdf a ser usado para crianças
Jogo de Rimas - Para impressão em pdf a ser usado para crianças
 
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdfENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
ENSINO RELIGIOSO 7º ANO INOVE NA ESCOLA.pdf
 
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdfGEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.pdf
GEOGRAFIA - COMÉRCIO INTERNACIONAL E BLOCOS ECONÔMICOS - PROF. LUCAS QUEIROZ.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
 
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...Considere a seguinte situação fictícia:  Durante uma reunião de equipe em uma...
Considere a seguinte situação fictícia: Durante uma reunião de equipe em uma...
 

SCJP Declarações e Controle de Acesso

  • 1. SCJP Declarações e Controle de Acesso Elenilson Vieira elenilson.vieira.filho@gmail.com
  • 2. Definições Básicas  Um programa Java é uma coleção de objetos se comunicando com outros objetos pela invocação de métodos  Classe: descreve um objeto de forma a explicitar seus tipos de comportamento e estado (variáveis de instância)  Objeto: a representação, em tempo de execução, da classe
  • 3. Definições Básicas  Estado (variáveis de instância): Cada objeto terá um único conjunto de variáveis de instância como descrito em sua classe e elas definirão o seu estado.  Comportamento (métodos): Onde a lógica da classe é colocada. São lá que os algoritmos são colocados e executados
  • 4. Herança  Códigos definidos em uma classe podem ser reusados em outras classes. Uma subclasse tem que explicitamente declarar que está herdando de uma superclasse mas uma superclasse nem sabe quem são suas herdeiras class A{ public int x = 10; } class B extends A{ public void b(){ System.out.println(x); } }
  • 5. Interface  De certa forma elas atuam como superclasses mas não há qualquer implementação dos métodos e estes devem ser implementados pelas classes que implementam a interface. Public interface A{ public void a(); } public class B implements A{ public void a{} }
  • 6. Identificadores Legais  Devem começar com letras, $ ou caractere de ligação (_)  Não há limites de quantos caracteres um identificador pode conter (achei estranho!)  identificadores são sensíveis a maiúscula e minúscula  não se pode usar palavras reservadas Ex: _a, $a, ___________2_w, .b, :a, e#.
  • 7. Arquivos Fonte  Pode conter apenas uma classe pública  Se há uma classe pública no arquivo, o nome do arquivo deve ser o mesmo seguido de “.java”  Se a classe faz parte de um pacote, a declaração deve ser a primeira linha antes de qualquer código
  • 8. Arquivos Fonte  Declarações import devem vir entre o local da declaração do package e o início da classe  Declarações import e package valem para todas as classes declaradas do arquivo de código fonte  Um arquivo pode ter mais de uma classe não pública
  • 9. Modificadores de Acesso  Uma classe A pode acessar uma classe B se A pode uma das 3 coisas:  Criar uma instância de B  Extender a classe B  Acessar determinados métodos e variáveis dentro da classe B
  • 10. Modificadores de Acesso: Default  Dá acesso apenas a classes que estejam dentro do pacote package cert; class Beverage { } package exam.stuff; import cert.Beverage; class Tea extends Beverage { } Can't access class cert.Beverage. Class or interface must be public, in same package, or an accessible member class. import cert.Beverage;
  • 11. Modificadores de Acesso: Public  Dá acesso a todas as outras classes que tentarem package eu; public class A{} package B; import eu.A; public class B{ A a = new A(); }
  • 12. Outros Modificadores de Acesso  Final  Abstract  Strictfp (não é necessário saber o que strctfp faz, mas saber que é um modificador para classe e métodos, não para variáveis).
  • 13. Outros Modificadores de Acesso  Final faz com que classes não possam ser especializadas. Usar final não vai contra o conceito de OO?  Usa-se final por segurança e apenas quando está certo que nenhum programador precisará extender sua classe.
  • 14. Classes Abstratas  Classes abstratas  Não podem ser instanciadas e sua única finalidade é ser extendida  Por que criar uma classe que não pode ser instanciada? Bem, poderíamos ter uma classe bem genérica dada como Carro, mas qual o motor desse carro? E o câmbio? Quantos cavalos de potência? Isso são características de modelos de carros, então uma classe BWM pode extender carro e implementar seus métodos abstratos
  • 15. Classes Abstratas  Se há algum método marcado como abstrato, a classe inteira deve ser abstrata  Uma classe abstrata pode conter métodos não abstratos  Não se pode marcar uma classe como abstract e final
  • 16. Interfaces  Pense em uma interface com 100% dos métodos marcados como abstratos  Uma interface pode ter apenas métodos abstratos  Todos os métodos de uma interface são implicitamente públicos e abstratos  Todas as variáveis definidas em uma interface devem ser públicas, estáticas e finais. Se você não explicitar, elas mesmo assim serão.
  • 17. Interfaces  Métodos de uma interface não podem ser estáticos  Uma interface não pode extender uma classe mas pode extender uma ou mais interfaces :O (pág 59)  Uma interface não pode implementar outra interface  Você pode tipar uma interface como abstract mas é redundante public abstract interface Rollable { } public interface Rollable { }
  • 19. Modificadores de Acesso  Default, public, protected, private  Classes podem usar apenas default e public mas membros podem usar os 4
  • 20. Modificadores de Acesso  Membros públicos  Significa que todas as outras classes tem acesso a esse membro seja usando o (.) ou extends
  • 21. Modificadores de Acesso  Membros private  Significa que apenas a própria classe tem acesso a esses membros  Um método private pode sofrer override em uma subclasse?
  • 22. Modificadores de Acesso  Protected e Default  São quase idênticos, mas há uma pequena e crítica diferença: no default os membros podem ser acessados apenas dentro do pacote e o protected é igual ao default mas suas subclasses podem acessar mesmo estando fora do pacote package tu; public class A{ void a(){} } package nos; public class B extends A{ void b(){ a(); } }
  • 23. Relembrando  Variáveis Locais  Apenas o final é aplicado … public void a(){ final int c = 10; }
  • 24. Relembrando  Métodos final não podem ser sobrescritos  Métodos abstratos: são métodos sem implementação Assim? public abstract void vos(); Ou assim? public abstract void lalala(){}
  • 25. Definições Básicas  Estado (variáveis de instância): Cada objeto terá um único conjunto de variáveis de instância como descrito em sua classe e elas definirão o seu estado.  Comportamento (métodos): Onde a lógica da classe é colocada. São lá que os algoritmos são colocados e executados
  • 26. Métodos Synchronized  Indicam que o método pode ser acessado por uma única thread no tempo. public synchronized void c(){}
  • 27. Métodos Native  Indica que o método é dependente de plataforma. Não é necessário saber como funciona, apenas que é um modificador
  • 28. Métodos strictfp  Faz com que seja usado o padrão IEE754 para operações com ponto flutuante (mais precisão e mais velocidade nas operações
  • 29. Argumentos Variáveis  Usamos os …; Pode haver outros argumentos mas esses devem vir antes e o var-arg deve vir por último. Não pode ter mais de um var-arg Sintaxe: void a(int... x); // Legal void b(char c, int... y); // legal void c(int... u, String a);//Ilegal void d(int u...);//Ilegal
  • 30. Construtores  Devem ter o mesmo nome da classe e JAMAIS ter tipo de retorno. Não podem ser assinalados como static, final ou abstract. public class Elenilson{ public Elenilson(String nome){} }
  • 31. Variáveis Primitivas  Podem ser de 8 tipos e podem ser declaradas como variáveis de classe, de instância, argumentos de métodos e variáveis locais  Não é necessário saber calcular a faixa dos tipos mas saber que os tipos inteiros na sequencia são byte, short, int, long e os de ponto flutuante são float e double  Os tipos tem sinais e o bit mais a esquerda indica se é positivo ou negativo (1 e 0) e os outros indicam o valor.
  • 33. Variáveis de Instância  São declarados dentro da classe mas fora de qualquer método. São inicializadas apenas na instanciação da classe
  • 34. Variáveis Locais  Tem seu tempo de vida no início do método e são destruídas no término do métodos. Não pode ter modificadores de acesso e podem ser apenas assinaladas como final public void a(){ int x = 10; }
  • 36. Arrays  São objetos Int x[]; int[] y = new int[10];  Pode-se declarar arrays multidimensionais int a[][][]; char[] b[];
  • 37. Final, Transient, Volatile e Static  Variáveis final  não podem ter seus valores alterados. Final pode ser usado para classes, métodos e variáveis  Variáveis e métodos static  São pertencentes às classes e existem independentemente da instanciação
  • 39. Final, Transient, Volatile e Static  Variáveis transiente  indica para a JVM não salvar o valor de uma variável em uma serialização  Volatile:  Indica para a JVM que sempre que precisar consultar o valor da variável que a busque na cópia principal (não use a cópia do registrador como otimização)
  • 40. Enum  Restringe variáveis a um número fechado de valores que são definidos pelo programador enum CoffeeSize { BIG, HUGE, OVERWHELMING }; CoffeeSize cs = CoffeeSize.BIG
  • 41. Enum
  • 42. Enum