-
Identificadore (1)
Os identificadores podem começar com uma letra, um underscore, ou um caracter monetário.
-
Identificadore (2)
Depois do primeiro caracter, os identificadores podem incluir também dígitos.
-
Identificadore (3)
Os identificadores podem ter qualquer extensão.
-
Identificadore (4)
Os métodos JavaBeans devem ser nomeados usando-se camelCase e, dependendo do propósito do método devem começar com set, get, is, add ou remove.
-
Regras de Declaração (1)
Um arquivo de código-fonte só pode ter uma classe pública.
-
Regras de Declaração (2)
Se o arquivo de código-fonte tiver uma classe pública, seu nome terá que coincidir com o dessa classe.
-
Regras de Declaração (3)
O arquivo só pode ter uma instrução package, porém, várias de import.
-
Regras de Declaração (4)
A instrução de package (se houver) deve ficar na primeira linha (fora os comentários) do arquivo de código-fonte.
-
Regras de Declaração (5)
A instrução import (se houver) deve vir depois de package e antes da declaração class.
-
Regras de Declaração (6)
Se não houver instrução package, as instruções import terão que ser as primeirs (fora os comentários) do arquivo de código-fonte.
-
Regras de Declaração (7)
As instruções package e import são aplicadas a todas as classes do arquivo.
-
Regras de Declaração (8)
O arquivo pode ter mais de uma classe não publica.
-
Regras de Declaração (9)
Os arquivos que não tiverem classes public não apresentarão restrições de nomeação.
-
Modificadores de acesso a Classe (1)
Há três modificadores de acesso: public, protected e private.
-
Modificadores de acesso a Classe (2)
Há quatro níveis de acesso: public, protected default e private.
-
Modificadores de acesso a Classe (3)
As classe só podem ter acesso public ou default.
-
Modificadores de acesso a Classe (4)
Uma classe com acesso default pode ser visualizada somente por outra classe no mesmo pacote.
-
Modificadores de acesso a Classe (5)
Uma classe com acesso public pode ser visualizada por todas as classes a partir de todos os pacotes.
-
Modificadores de acesso a Classe (6)
A visibilidade das classes gira em torno de se o código de uma classe pode: (1) criar uma instância de outra classe, (2) Estender (ou criar subclasses) outra classe e (3) Acessar métodos e variáveis de outra classe.
-
Modificadores de Classse (1)
As classes também podem ser alteradas com final, abstract ou strictfp.
-
Modificadores de Classse (2)
Uma classe não pode ser final e abstract.
-
Modificadores de Classse (3)
Uma classe final não pode ter subclasses.
-
Modificadores de Classse (4)
Uma classe abstract não pode ser instanciada.
-
Modificadores de Classse (5)
Uma classe com somente um método abstract significa que a classe inteira deve ser abstract.
-
Modificadores de Classse (6)
Uma classe abstract pode ter métodos abstract ou não.
-
Modificadores de Classse (7)
A primeira classe concreta a estender uma classe abstract terá que implentats.
-
Implentação de Interfaces (1)
As interfaces são contratos que definem o que a classe pode fazer, mas não dizem nada sobre a maneira pela qual ela deverá fazê-lo.
-
Implentação de Interfaces (2)
As interfaces podem ser implentadas por qualquer classe, de qualquer árvore de herança.
-
Implentação de Interfaces (3)
A interface é como uma classe 100% abstract, e será implicitamente abstract caso você digite ou não o modificador abstract na declaração.
-
Implentação de Interfaces (4)
Uma interface só pode criar métodos abstract, nenhum método concreto é permitido.
-
Implentação de Interfaces (5)
Os métodos das interfaces são, por padrão, public e abstract - a declaração explícita desses modificadores é opcional.
-
Implentação de Interfaces (6)
As interfaces podem ter constantes, que são sempre implicitamente public, static e final.
-
Implentação de Interfaces (7)
As declarações da constante de interface com public, static e final são opcionais em qualquer combinação.
-
Implentação de Interfaces (8)
Uma classe de implentação não-abstract fornecerá implentações concretas dos métodos da interface.
-
Implentação de Interfaces (9)
Uma classe de implentação não-abstract deve seguir todas as regras de sobrecarga válidas para os métodos que implementa.
-
Implentação de Interfaces (10)
Uma classe de implentação não-abstract não deve declarar nenhuma exceção nova do método implentado.
-
Implentação de Interfaces (11)
Uma classe de implentação não-abstract não deve declara nenhuma exceção que seja mais abrangente do que as declaradas no método da interface.
-
Implentação de Interfaces (12)
Uma classe de implentação não-abstract pode declarar exceções de tempo de execução em qualquer implentação de método da interface, independente do que constar na declaração da interface.
-
Implentação de Interfaces (13)
Uma classe de implentação não-abstract deve manter a assinatura (são permitidos retornos covariantes) e o tipo de retorno exatos dos métodos que implementa (mas não precisa declarar as exceções da interface).
-
Implentação de Interfaces (14)
Uma classe que estiver implementando uma interface pode ela própria ser abstract.
-
Implentação de Interfaces (15)
Uma classe de implentação abstract não precisa implementar os métodos da interface (mas a primeira subclasse concreta precisa).
-
Implentação de Interfaces (16)
A classe só pode estender uma classe (sem herança múltipla), porém, pode implentar várias interfaces.
-
Implentação de Interfaces (17)
As interfaces pode estender uma ou mais interfaces.
-
Implentação de Interfaces (18)
As interfaces não podem estender uma classe ou implementar uma classe ou interface.
-
Implentação de Interfaces (19)
Quando fizer o exame, verifique se as declarações de interface e classe são válidas antes de verificar outras lógicas do código.
-
Modificadores de Acesso a Membros (1)
Os métodos e as variáveis de instância (não locais) são conhecidos como "membros".
-
Modificadores de Acesso a Membros (2)
Os membros podem usar todos os quatros níveis de acesso: public, protected, default e private.
-
Modificadores de Acesso a Membros (3)
O acesso aos membros se dá de duas formas: (1) o código de uma classe pode acessar um membro de outra classe e (2) uma subclasse pode acessar um membro de sua superclasse.
-
Modificadores de Acesso a Membros (4)
Se uma classe não puder ser acessada, seus membros também não poderão.
-
Modificadores de Acesso a Membros (5)
A visibilidade da classe deve ser determinada antes da dos membros.
-
Modificadores de Acesso a Membros (6)
Os membros public podem ser acessados por todas as outras classes, mesmo de pacotes diferentes.
-
Modificadores de Acesso a Membros (7)
Se um membro da superclasse for public, a subclasse o herdará - independente do pacote.
-
Modificadores de Acesso a Membros (8)
Os membros acessados sem o operador ponto (.) têm que pertencer a mesma classe.
-
Modificadores de Acesso a Membros (9)
this sempre referenciará o objeto que estiver sendo executado no momento.
-
Modificadores de Acesso a Membros (10)
this.aMethod() é o mesmo que simplesmente chamar aMethod().
-
Modificadores de Acesso a Membros (11)
Os membros private só podem ser acessados por um código da mesma classe.
-
Modificadores de Acesso a Membros (12)
Os membros private não ficam visíveis para as subclasses, portanto, não podem ser herdados.
-
Modificadores de Acesso a Membros (13)
Os membros default e protected só diferem quando subclasses estão envolvidas.
-
Modificadores de Acesso a Membros (14)
Os membros default só podem ser acessados por outras classes do mesmo pacote.
-
Modificadores de Acesso a Membros (15)
Os membros protected podem ser acessados por outras classes do mesmo pacote, além de por subclasses, independente do pacote.
-
Modificadores de Acesso a Membros (16)
protected = pacote + filhos (subclasses)
-
Modificadores de Acesso a Membros (17)
Por subclasses externas ao pacote, o membro protected só pode ser acessado através da herança: uma subclasse externa ao pacote não pode acessar um membro protected usando a referência a uma instância da superclasse
-
Modificadores de Acesso a Membros (18)
Um membro protected herdado por uma subclasse de outro pacote não pode ser acessado por nenhuma outra classe do pacote da subclasse, exceto pelas próprias subclasses dessa.
-
Variáveis Locais (1)
As declarações de variáveis locais (de método, automáticas, de pilha) não podem ter modificadores de acesso.
-
Variáveis Locais (2)
final é o único modificador disponível para variáveis locais.
-
Variáveis Locais (3)
As variáveis locais não recebem valores padrão, portanto, devem ser inicializadas antes do uso.
-
Outros Modificadores (1)
Os métodos final não podem ser substituídos em uma subclasse.
-
Outros Modificadores (2)
Os métodos abstract são declarados, com uma assinatura, um tipo de retorno e uma cláusula throws opcional, mas não são implementados.
-
Outros Modificadores (3)
Os métodos abstract terminam com um ponto-e-vírgula, e não chaves.
-
Outros Modificadores (4)
Há três maneiras de identificar um métodos não abstrato: (1) não é marcado como abstract, (2) possui chaves e (3) possui código entre as chaves.
-
Outros Modificadores (5)
A primeira classe não-abstrata (concreta) a estender uma classe abstrata deve implementar todos os métodos abstratos dessa.
-
Outros Modificadores (6)
Os modificadores synchronized só é aplicado a métodos e a blocos de código.
-
Outros Modificadores (7)
Os métodos synchronized podem ter qualquer controle de acesso e também serem marcados como final.
-
Outros Modificadores (8)
Os métodos abstract devem ser implementados por uma subclasse, portanto, têm de ser herdados. Por essa razão: (1) os métodos abstract não podem ser private e (2) os métodos abstract não podem ser final.
-
Outros Modificadores (9)
O modificador native só é aplicado a métodos.
-
Outros Modificadores (10)
O modificador strictfp só é aplicado a métodos.
-
Métodos com Arguementos Variáveis (var-args) (1)
A partir de Java 5 os métodos podem declarar um parâmetro que aceita de zero a muitos argumentos, é o chamado var-arg.
-
Métodos com Arguementos Variáveis (var-args) (2)
- Um parâmetro var-arg é declarado com a sintaxe tipo... nome; por exemplo:
- doStuff(int... x){}
-
Métodos com Arguementos Variáveis (var-args) (3)
Um método var-arg só pode ter um parâmetro var-arg.
-
Métodos com Arguementos Variáveis (var-args) (4)
EM métodos com parâmetros normais e uma var-arg, o var-arg deve vir por último.
-
Declaraçõe de Variáveis (1)
As variáveis de instância podem: (1) ter qualquer tipo de controle de acesso e (2) serem marcadas como final ou transient.
-
Declaraçõe de Variáveis (2)
As variáveis de instância não podem ser declaradas com abstract, synchronized, native ou strictfp.
-
Declaraçõe de Variáveis (3)
É valido declarar uma variável local com o mesmo nome de uma variável de instância; isso é chamado de "sombreamento" (shadowing)
-
Declaraçõe de Variáveis (4)
As variáveis final apresentam as seguintes propriedades: (1) não podem ser reinicializadas, uma vez que tiverem um valor atribuído, (2) as variáveis de referência final não podem referenciar um objeto diferente se já tiverem um objeto atribuído a elas e (3) as variáveis de referência final devem ser inicializadas antes que a execução do construtor seja concluída.
-
Declaraçõe de Variáveis (5)
Não existem objetos final. Uma referência a objeto marcada como final não significa que o objeto propriamente dito seja inalterável.
-
Declaraçõe de Variáveis (6)
O modificador transient só pode ser aplicado a variáveis de instância.
-
Declaraçõe de Variáveis (7)
O modificador volatile só pode ser aplicado a variáveis de instância.
-
Declarações de Arrays (1)
Arrays podem conter primitivas ou objetos, mas o array em si é sempre um objeto.
-
Declarações de Arrays (2)
Ao declarar um array, os colchetes podem estar à esquerda ou à direita do nome da variável.
-
Declarações de Arrays (3)
Nunca é valido incluir o tamanho do array em sua declaração.
-
Declarações de Arrays (4)
Um array de objetos pode conter qualquer tipo que passe no teste de IS-A (ou instanceof) para o tipo declarado no array
-
Variáveis e métodos estáticos (1)
NJão estão ligados a qualquer instância específica de uma classe.
-
Variáveis e métodos estáticos (2)
Não é preciso qualquer instância para usar membros static de uma classe.
-
Variáveis e métodos estáticos (3)
Existe apenas uma cópia de uma variável e/ou classe estática, que é compartilhada por todas as instâncias.
-
Variáveis e métodos estáticos (4)
Métodos static não tem acesso direto a métodos não-estático.
-
Enums (1)
Um enum especifica uma lista de valores constantes que podem ser atribuídos a um determinado tipo.
-
Enums (2)
Um enum não é uma String nem um int; o tipo constante de um enum é o tipo do próprio enum.
-
Enums (3)
Um enum pode ser declarado fora ou dentro de uma classe, mas não em um método.
-
Enums (4)
Um enum declarado fora de uma classe não pode ser marcado com static, final, abstract, protected ou private.
-
Enums (5)
Os enums podem conter construtores, métodos, variáveis e corpos de classes constantes.
-
Enums (6)
As constantes enum podem enviar arguementos para o construtor enum.
-
Enums (7)
Os construtores enums podem conter argumentos e podem ser sobrecarregados.
-
Enums (8)
Os construtores enum nunca podem ser chamados diretamente no código. Eles são sempre chamados automaticametne quanto um enum é inicializado.
-
Enums (9)
O ponto-e-vírgula ao final da declaração enum é opcional.
-
Enums (10)
MyEnum.values() retorna um array dos valores de MyEnum.
|
|