sexta-feira, 11 de março de 2011

OCJP- Oracle Certified Java Programmer

Sun Certified Java Programmer (SCJP) é um certificado internacional oferecido pela Sun MicroSystems para candidatos interessados em comprovar a proeficiência nos fundamentos de programação Java. Com aquisição da SUN pela Oracle essa certificação mudou de nome para OCJP "Oracle Certified Java Programmer" contudo seu conteúdo permanece o mesmo.Atualmente estou estudando para obtenção da certificação java, e estarei postando alguns conceitos aprendidos no livro de estudo para o exame 310-055. A obtenção da certificação é altamente recomendável para se tornar um profissional mais valorizado e competente. Quem se interessar em maiores informações, formar grupos de estudos e fazer um contato profissional aqui é o lugar certo:

20 comentários:

Jean Cristian disse...

A Sun recomenda fortemente a utilização dos padrões de nomeação JavaBeans. Um dele é de que o arquivo-fonte da classe public deve ter o mesmo nome da mesma.Não se deve utilizar as palavras reservadas no decorrer do código para nomeação de métodos, variáveis etc.

Jean Cristian disse...

A linguagem de programação java é totalmente orientada a objetos-O.O, é fortemente recomendado conhecer tais conceitos e metodologias para melhor entendimento.

Jean Cristian disse...

Visto que o foco é a obtenção da certificação SCJP, presumimos que o leitor já detenha conhecimentos fundamentais da linguagem Java.
Caso ainda não tenha indico estes livors:
http://books.google.com.br/books?id=uIVJiAPlBq0C&printsec=frontcover&source=gbs_ge_summary_r&cad=0#v=onepage&q&f=false

http://books.google.com.br/books?id=Ww1B9O_yVGsC&printsec=frontcover&dq=java&hl=pt-BR&ei=yxh-Te29NI_rgQfXrMjNBw&sa=X&oi=book_result&ct=book-thumbnail&resnum=1&ved=0CCwQ6wEwAA#v=onepage&q&f=false

E como guia de estudo para certificação:

http://books.google.com.br/books?id=Eh5NcvegzMkC&printsec=frontcover&dq=SCJP&hl=pt-BR&ei=Ahl-TfKtOs2ugQf407HjBw&sa=X&oi=book_result&ct=book-thumbnail&resnum=1&ved=0CDEQ6wEwAA#v=onepage&q&f=false

Jean Cristian disse...

No decorrer dos estudos encontraremos os pontos chaves e fundamentais explícitos no livro, servindo como um guia rápido para estudo e revisão dos conhecimentos da certificação.
Regras básicas e obrigatórias -Declaração de Classes:
.Não se pode declarar 2 classes públic no mesmo arquivo fonte.
.Em um único arquivo-fonte pode ter várias classes (não public), juntamente com uma public.
.É altamente recomendado a utilização dos Pakages(pacotes), para melhor organização das classes.

Jean Cristian disse...

Modificadores de Acesso:
As classes possuem modificadores de acesso, onde podemos exemplificar os três existentes public, protected, private.

Outros modificadores(não são de acesso): Strictfp, Final e Abstract.

Observações sobre os modificadores:
Uma classe public estará disponível(visível) para todos as outras do projeto. Isso significa que pode-se utilizar suas variáveis, métodos e criar objetos dela(Instâncias).

O modificador protected deixará visível o atributo para todas as outras classes e subclasses que pertencem ao mesmo pacote. A principal diferença é que apenas as classes do mesmo pacote tem acesso ao membro. O pacote da subclasse não tem acesso ao membro.

O modificador private deixará visível o atributo apenas para a classe em que este atributo se encontra.

Sem Modificador (Padrão)

Por padrão(default), a linguagem Java permite acesso aos membros apenas ao pacote em que ele se encontra.

O final impede que o método seja sobrescrito (overriding) na subclasse. Ele também pode ser utilizado nos argumentos do método, significando que estes não poderão ter seu valor ou referência alterados. O abstract indica que método não foi implementado. Neste caso é necessário utilizar ponto e vírgula ao invés das chaves na sua declaração. Existindo algum método abstrato, a classe também deve ser declarada abstrata. A primeira subclasse concreta será obrigada a implementar os métodos abstratos, seguindo exatamente a mesma assinatura do método. Métodos abstratos não podem ser static, final, private, synchronized, strictfp ou native. Um método synchronized só pode ser acessado por uma thread de cada vez. O native indica que o método é implementado em uma linguagem dependente de plataforma. E strictfp força o método a aderir as regras IEE754, como explicado para as classes.

Jean Cristian disse...

Para compreendermos melhor os modificadores de acesso:
As classes só podem ser public ou default(padrão).
Enquantos os membros(variáveis ou métodos não locais)podem ter todos eles.
Um membro declarado como public pode ser acessado por qualquer outra classe do projeto.
Um membro private é de uso exclusivo da própria classe e só pode ser acessado através da mesma.
Os modificadores de acesso protected e default são parecidos. Eis algumas diferenças fundamentais:
Um membro com modificador default(padrão), pode ser acessado por referência a classe através do caractere ponto "." ou através da herança, deste que tais classes estejam no mesmo package.
Enquanto um modificador protected pode ser acessado na mesma classe da mesma forma que o default e também pode ser acessado através da herança, mesmo estando em outro package.Definitavamente não pode ser acessado através de referência a classe.
Resumindo os modificadores de acesso:
Public - pode ser acessado por todos.
Private - Apenas pela própria classe
Default- é o padrão quando não se indica explicitamente um modificador. E se pode ser acessado se estiver no mesmo package.
Protected- Pode ser acessado dentro do package e através da herança fora dele.
Enfim terminamos aqui os modificadores de acesso.

Jean Cristian disse...

As variáveis locais não podem ter modificadores de acesso.
Apesar de poderem ser acessadas de forma direta, é altamente recomendável a utilização de métodos para a obtenção (getter) e para modificação (setter), fortalecendo a idéia de encapsulamento, podendo validar as variáveis e permissões de acesso a elas e tornando seu código mais seguro e padronizado.

Jean Cristian disse...

Métodos setters devem ser públicos, retornando void e
recebendo um argumento com o tipo da propriedade alvo:
public void setCpf(String newCpf) {
cpf = newCpf;
}
Métodos getters devem ser públicos, sem argumentos, e
retornam um tipo compatível com o argumento recebido
pelo método setter:
public String getCPF() {
return cpf;
}

Jean Cristian disse...

Os métodos classificados com o modificador final, podem ser acessados e utilizados, porém jamais modificado. Este tipo de classificador é muito utilizado para se manter o comportamento do método comum para quem o querer utilizar. Mas deve-se tomar muito cuidado ao utilizá-lo pois ele invalida o benefício de estensabilidade da orientação objeto.

Um método classifcado como abstract é obrigado ser implementado na subclasse concreta(não-abstract), funcionando como um maneira de contrato.Na sua especificação não pode haver as chaves e sempre terminam com ponto e vírgula. Caso a classe que herdá-lo seja também abstratc ela poderá optar em implementá-lo ou não.

CUIDADO: Não se pode utilizar estes modificadores juntos:
Private e abstract
final e abstract
static e abstract

A seguir aprenderemos sobre o modificar static:

Jean Cristian disse...

Método Synchronized-> Inidca que o método em questão só poderá ser acessado por um thread de cada vez.

Método Native-> O método em questão possui código nativo implementado, geralmente em C++. Para o exame é importante saber que é uma palavra reservada apenas.

Método Strictfp-> Ele coloca o comportamento dos pontos futuantes de acordo com as normas do IEEE. Pode haver um método declaro como strictfp sem que a classe esteja.

Jean Cristian disse...

Construtores Declaração:
class Aluno {
protected Aluno() {} // Construtor da classe Aluno
protected void Aluno() {}
// Método válido (!)
}
* Um construtor nunca tem um tipo de retorno
* Pode ter ou não argumentos
* Todos os modificadores de acesso são permitidos
* Um construtor deve ter o mesmo nome da classe
* Construtores não podem ser static, final e abstract

Jean Cristian disse...

Existem três tipos distintos de variáveis: as Primitivas, referências e Arrays.

Irei explicar cada um deles.
Tipos primitivos.
Podem ser variáveis de classe (estáticas), de instância,
parâmetros de métodos, tipos de retorno e variáveis
locais e todos os primitivos são signed

Jean Cristian disse...

Enums
* Permitem especificar um domínio de valores para
uma variável
* Declaração básica:
enum DiaDaSemana
{ SEGUNDA, TERCA, QUARTA, QUINTA,
SEXTA, SABADO, DOMINGO };
* SEGUNDA, TERCA, QUARTA, etc. são do tipo
DiaDaSemana
*Como obter um dia da semana?
DiaDaSemana d = DiaDaSemana.SEGUNDA;

Jean Cristian disse...

Construtores:

Os construtores possuem uma sintaxe muito parecida com a dos métodos, porém seu funcionamento é distinto. Um construtor nunca possui tipo de retorno.
E sua função é a de construir o objeto com determinadas características.
O construtor pode ter os 4 modificadores de acesso (pode ser definido por 3, pois o default não é explícito).

Unknown disse...

Parabens pela iniciativa.
Tenho umas observações:
Variaveis Locais podem receber o modificador Final.
Um atributo com o modificador protected pode ser acessado atraves de herança por uma subclasse em outro pacote, porem na mesma subclasse o atributo nao pode ser acessado atraves de uma referencia a superclasse que contem o atributo.

Jean Cristian disse...

Muito obrigado Pires, pelas suas observações. Sempre que puder, coloque mais uns posts,afinal divulgando o conhecimento se aprende mais.

Abraços

Jean Cristian disse...

Referências:
*Uma variável de referência é utilizada para acessar um
objeto
*Podem ser variáveis de classe (estáticas), de instância,
parâmetros de métodos, tipos de retorno e variáveis
locais
*Exemplos:
Object o;
Animal meuAnimal;
String s1, s2, s3; // declara três
variáveis String

Jean Cristian disse...

Arrays:
*Todo array é um objeto em Java
* Um array pode armazenar tipos primitivos ou referências para
objetos
* Podem ser variáveis de classe (estáticas), de instância, parâmetros
de métodos, tipos de retorno e variáveis locais
* Exemplos:
int[] chaves; // array de primitivos
Animal listaAnimais[]; // array de referências (a objetos da
classe animal)
String[][][] multiDimensionalArray1;
String[] multiDimensionalArray2[]; //permitido!

Jean Cristian disse...

Construtores, métodos e variáveis no enum
enum TamanhoPizza {MEDIA(4), GRANDE(8), GIGANTE(16);
TamanhoPizza(int fatias) { // construtor do enum
this.fatias = fatias; }
private int fatias; // variável de instância que cada valor do enum
possui
public int getFatias() { return fatias; }
}
class Pizza {
TamanhoPizza fatias; // cada Pizza tem o seu enum de tamanho
public static void main(String[] args) {
Pizza p1 = new Pizza();
p1.fatias = TamanhoPizza.MEDIA;
Pizza p2 = new Pizza();
p2.fatias = TamanhoPizza.GIGANTE;
System.out.println(p1.fatias.getFatias()); // 4
System.out.println(p2.fatias.getFatias()); // 16
}
}

Jean Cristian disse...

Criador do Java é a nova contratação do Google

James Gosling, o homem que criou a linguagem de programação Java, acaba de entrar para o Google. A contratação foi uma grande vitória para a empresa, que está envolvida em uma ação judicial com a proprietária da linguagem, a Oracle, sobre o uso do Java no Android.

Gosling disse em seu blog, “Eu não sei no que vou trabalhar. Espero que um pouco de tudo”, mas acreditamos que o criador do Java vai estar trabalhando para a plataforma Android, ele também comentou que havia recusado várias proposta excelentes antes de assinar com o Google.

Confira matéria completa em:

http://mundoconectado.net/?p=1974