Aumente seu rendimento
Enfim criei coragem para começar a estudar. Decidi voltar minha atenção para certificações JAVA e começarei com a SCJP 6.0.
Inicio, portanto, uma série de dicas e conceitos que podem ajudar os candidatos à certificação. Afirmo, porém, que os posts têm como objetivos principais: fixar conceitos, criar discussões e favorecer o compartilhamento de informações. Dessa forma, se porventura alguma idéia equivocada for apresentada, peço que os leitores ajudem e acrescentem a sua opinião sobre o assunto.
Pois bem, abordarei os assuntos conforme o livro da Kathy Sierra entitulado “Sun Certified Java Programmer for Java 6 – Study Guide”. Acrescentarei, contudo, a minha opinião sobre a leitura e diversas informações adicionais. Mãos à obra.
Conceitos Iniciais
Classe: Modelo que descreve os atributos e o comportamento de um determinado tipo de objeto.
Objeto: Cada objeto criado (new) tem seu próprio estado e acessa todos os atributos e comportamento contidos na classe que o define.
Estado ( instance variables ): Cada objeto tem seu próprio conjunto de variáveis definidas na classe. Os valores associados à essas variáveis produzem o “estado do objeto”.
Comportamento ( methods ) : Ao desenvolver uma classe, o programador cria métodos para ela, os quais definem o comportamento de um objeto. Nos métodos se encontram a lógica da classe, os algoritmos a serem executados e o local onde os dados serão manipulados.
Identificadores e palavras chaves
Todas as classes, variáveis e métodos precisam ser nomeadas. Esses nomes são chamados de identificadores e, para serem válidos, devem seguir algumas regras, definidas por convenção. Esta define quais identificadores são válidos para nomear métodos, variáveis e classes.
Identificadores válidos
Abaixo, uma lista retirada da bibliografia, mostrando as regras para identificadores:
- Devem começar com uma letra, um caracter que represente moeda ($) ou um caracter de conexão, tal como “_”. Identificadores não podem começar com números;
- Depois do primeiro caracter, os identificadores podem ter qualquer combinação de letras, caracter de moeda, caracter de conexão e números;
- Não existe limite para o número de caracteres que um identificador pode ter;
- Identificadores são case-sensitive, ou seja, variable e VARIABLE são diferentes.
Uma outra restrição para os identificadores são as chamadas bult-in keywords, as quais não podem ser utilizadas pelo programador.
O Conceito de herança
Permite que classes filhas utilizem métodos e atributos existentes na classe pai. Nesse caso, classe pai significa uma super classe geral, a qual define uma “estrutura comum” de um objeto. As classes filhas “herdam” essa estrutura, podendo implementar novos comportamentos e, até mesmo, sobrescrever algum método herdado. Para exemplificar, podemos representar a classe Professor como superclasse. Dessa forma criaremos professorHorista e professorCLT como classes filhas.
Professor.java
1 2 3 4 5 6 7 8 9 10 | public class Professor { private String nome; private int matricula; public Professor(String nome, int matricula) { this.nome = nome; this.matricula = matricula; } } |
ProfessorCLT.java
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class ProfessorCLT extends Professor { private float salario; public ProfessorCLT(String nome, int matricula, float salario) { super(nome, matricula); this.salario = salario; } public float getSalario() { return salario; } } |
ProfessorHorista.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class ProfessorHorista extends Professor { private int horasTrabalhadas; private float salarioHora; public ProfessorHorista(String nome, int matricula, int horasTrabalhadas, float salarioHora) { super(nome, matricula); this.horasTrabalhadas = horasTrabalhadas; this.salarioHora = salarioHora; } public float getSalario() { return salarioHora * horasTrabalhadas; } } |
Interfaces
São superclasses abstratas que definem o comportamento de outras classes, sem especificar, no entanto, o modo como esse comportamento deve ser feito. Isso significa que a tarefa de criar a lógica de execução de um método definido pela interface, fica a cargo da classe que a implementa. Para exemplificar, criaremos a interface Player e uma classe Mp3Player, a qual implementa Player.
Player.java
1 2 3 4 5 6 7 8 | public interface Player { public void play(); public void pause(); public void stop(); } |
Mp3Player.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | public class Mp3Player implements Player { //Tipo Music usado para facilitar o exemplo... private Music music; public Mp3Player(Music music) { this.music = music; } public void play() { music.play(); } public void pause() { music.pause(); } public void stop() { music.stop(); } } |
Continuando o estudo
Nos próximos artigos, falaremos sobre Java Code Conventions e JavaBeans Standards.

14/04/2010 em