O documento apresenta os conceitos básicos de Java e Orientação a Objetos, incluindo: 1) Java é uma linguagem de programação orientada a objetos desenvolvida pela Sun Oracle; 2) Orientação a Objetos modela o mundo real através de classes, herança, polimorfismo e encapsulamento; 3) Para ser desenvolvedor Java Júnior é necessário conhecimento de variáveis, controle de fluxo, classes, interfaces entre outros conceitos fundamentais.
2. Apresentação Frederico Maia Arantes Graduando em Tecnologia de Redes de Computadores 2 anos de estágio em desenvolvimento de sistemas IBM, Microsoft .Net e Java. Quase a um ano focado em desenvolvimento Java Atua como Analista Desenvolvedor Java Pleno Membro do grupo Gojava.
3. O que é Java? Desenvolvido e mantido pela Sun Oracle. Java é uma linguagem de programação orientada a objetos. Foi criada na década de 90 por uma equipe liderada por James Gosling (Pai do Java). A idéia inicial era criar um interpretador para pequenos dispositivos, facilitando a reescrita de software para aparelhos eletrônicos, como vídeo cassete, televisão e aparelhos de TV a cabo. Era muito cedo pra isso e ninguém acreditou em seu potencial.
4. Mais sobre o início... Em 1992 com o início da Web, a Sun percebeu um mercado em potencial. Criaram então os applets (pequenos aplicativos que rodam nos browsers não apenas renderizando html) e então lançaram o Java 1.0 ! Hoje em dia os applets não são o foco da Sun Oracle e são muito pouco utilizados. Temos a promessa do JavaFX, mas esse não é o assunto de hoje.
5. O que precisamos para usar Java? Para executar aplicações Java, precisamos do JRE (Java Runtime Enviroment). http://bit.ly/cKoUNV Para desenvolver aplicações, o JDK (Java Development Kit). http://bit.ly/a1w7OH Escolher uma IDE para desenvolvimento, sugerimos eclipse ou NetBeans. http://www.eclipse.org/downloads/ ou http://netbeans.org/downloads/
6. Clássico Hello World Um simples programa que apenas escreve na tela do computador “Hello World”. O método main é onde um programa Java inicia. public class Hello { public static void main(String args[]){ //comentários System.out.println(“Hello World”); } }
7. Variáveis Uma variável é utilizada para armazenar um valor que depois poderá ser manipulado. Devemos informar o tipo de valor, e o nome da variável, que deve ser único. Pode ser feita em qualquer linha de um bloco. int numero = 10; String nome = “Frederico”; Alguns tipos: int, double, float, long, boolean, char, String.
8. Capturando dados do Teclado Exemplo de captura de dados do teclado e armazenando em variáveis. String nome = “”; int idade = 0; Scanner sc = new Scanner(System.in); System.out.println(“Informe seu nome:”); nome = sc.nextLine(); System.out.println(“Informe sua idade:”); idade = sc.nextInt();
9. Operadores - Aritméticos Operadores são usados para manipular os valores das variáveis. Para realizar operações matemáticas podemos aplicar os operadores + (soma), - (subtração), * (multiplicação), / (divisão) e % (módulo). int num1 = 5 + 3; int num2 = 4 – 2; int num3 = 4*5/2; int num4 = 20%2;
10. Operadores –Igualdade e Relacionais Operadores de igualde são usados para verificar se uma variável tem valor igual ou diferente de outra. Operadores relacionais são usados para comparar valores. Sempre retornam true ou false. Operadores: == (igual), != (diferente), > (maior), < (menor), >= (maior ou igual), <= (menor ou igual). boolean teste1 = 5 == 3; // retorna false boolean teste3 = 5 > 3; // retorna true
11. Operadores – Lógicos Podem ser usados para combinar comparações. Retornam true ou false. Operadores: && ( e ), || (ou). int num1 = 10; boolean b1 = num1>1 && num1<20; //retorna true boolean b2 = num1!=0 || num1>10; // retorna true
12. If (se) e Else (senão) O comando if permite testar se um valor booleano é verdadeiro ou falso, caso seja verdadeiro, o bloco dentro do if é executado. Se for falso é executado o bloco dentro do else. if(media >= 7){ //se media maior ou igual a 7 System.out.println(“Aprovado!”); } else{ //senão System.out.println(“Reprovado!”); }
13. While (enquanto) Usado quando precisamos repetir o código várias vezes dependendo se uma condição é verdadeira ou falsa, e enquanto for, executa um laço. Vamos imprimir uma mensagem 10 vezes. int i = 0; while(i < 10){ //enquanto 1 for menor que 10 System.out.println(i+“ª vez!”); i++; //incrementa + 1 }
14. For (para) Usado nas mesmas condições do while verificando uma condição de verdadeiro ou falso. A diferença é que recebe três argumentos. É um while “melhorado”. //inicia a variável; verifica condição;incrementa for (int i=0;i<10;i++){ System.out.println(i+“ª vez!”); }
15. Orientação a Objetos Foi criada para tentar aproximar o mundo real do mundo virtual. A idéia fundamental é tentar simular o mundo real dentro do computador utilizando Objetos afinal, nosso mundo é composto de objetos.
16. Pensando em Objetos Pensar em termos de objetos é muito parecido a como faríamos na vida real. Por exemplo, vamos pensar em um carro...
18. Pensando em um carro... Quais as características de um carro? Quais as funcionalidades? Em um esquema orientação a Objetos o carro seria o objeto, as propriedades seriam as características e os métodos seriam as funcionalidades, as ações.
19. Java e Orientação a Objetos Em Java todos os objetos são manipulados através de uma referência (variável) e têm: estado (seus atributos), comportamento (seus métodos), identidade (a variável que contém sua referência). Valores unidimensionais não são objetos: números, booleanos, caracteres têm apenas identidade (nome da variável) e estado (valor da variável).
23. Encapsulamento Simplifica o objeto expondo apenas a sua interface essencial. Também para impedir o acesso direto ao atributo de um objeto, disponibilizando externamente apenas os métodos que alteram estes estados. Exemplo: fabricação das portas do carro, funcionamento do motor de um carro.
24. Encapsulamento Métodos e atributos que não devem ser usados externamente podem ter seu nível de acesso controlado através de modificadores: private: apenas acesso dentro da classe package-private (default): acesso dentro do pacote protected: acesso em subclasses public: acesso global
25. Interface É um contrato entre a classe e o mundo externo. Quando uma classe implementa uma interface, ela está comprometida a fornecer o comportamento publicado pela interface.
26. Orientação a Objetos Em orientação a objetos, implementamos um conjunto de classes que definem os objetos presentes no software. Cada classe determina o comportamento (definido nos métodos) e estados possíveis (atributos) de seus objetos, assim como o relacionamento com outros objetos.
27. Vantagens da POO Divisão do código mais lógica e melhor encapsulada do que a empregada nos sistemas não orientados a objetos. Manutenção e extensão do código mais fácil e com menos riscos de inserção de bugs. Também é mais fácil reaproveitar o código. UML, divisão em pacotes, divisão do trabalho.
28. O que preciso saber para ser um desenvolvedor Júnior? Java Básico e Orientação a Objetos Java Web (JSP e Servlets) Frameworks (Java Server Faces, Hibernate) Outros frameworks importantes: Spring, (Struts1 + Webwork) Struts 2, EJB, JPA, JasperReport, iReport...
31. SCJA OCJA Sun Oracle Certified Java Associate Voltada mais para quem atua como "Gerente de Projetos de Software". Este perfil tem um entendimento geral sobre OOP, as plataformas Java, tecnologias Java e UML sem se ater a detalhes de implementação deixado para os especialistas. Valor pequeno para desenvolvedores. Certificação opcional.
32. SCJP OCJP Sun Oracle Certified Java Programmer Programador profissional da linguagem Java. Grande valor de mercado para desenvolvedores. Obrigatória para as outras seguintes.
33. SCJDP OCJD Sun Oracle Certified Java Developer. Especialista em desenvolvimento de aplicativos Java para desktop. Pouco valor de mercado principalmente no Brasil.
34. SCWCD OCWCD Sun Oracle Certified Web ComponentDeveloper. Especialista em desenvolvimento Java de aplicativos e componentes web. (JSP e Servlets) Grande valor de mercado.
35. SCBCD OCBCD Sun Oracle Certified Business ComponentDeveloper Especialista em desenvolvimento de componentes/camada de aplicação de negócio distribuídos. (EJB)
36. SCDJWS OCDJWS Sun Oracle CertifiedDeveloper For Java Web Services Especialista em desenvolvimento de aplicações utilizando web services (paradigma SOA).
37. SCMAD OCMAD Sun Oracle CertifiedMobile Application Developer Especialista em desenvolvimento de aplicativos Java para dispositivos móveis.
38. SCEA OCEA Sun Oracle CertifiedMobile Application Developer Específico para o perfil de "Arquiteto de software". Acredito que seja a prova mais difícil composta não apenas detalhes gerais das plataformas Java, mas também por vários conceitos de engenharia de software. A prova possui 3 etapas.
39. Dicas de Estudo Apostilas da Caelum. Projeto JEDI mantido pela comunidade Java e a Sun Oracle. Fórum GUJ (Grupo de Usuários Java). Use a Cabeça Java – Kathy Sierra. Cursos especializados (diminuem bastante a curva de aprendizado).