FJ-11 - Java e Orientação a Objetos (Noturno)
Rua do Ouvidor 50 - Sobreloja 201 - Centro - Rio de Janeiro/Rio de Janeiro - Brasil
Descrição
Carga Horária: 40 horas aula
O intuito do curso é quebrar o paradigma procedural, apresentando aos poucos seus problemas e as soluções através da orientação a objetos. Introduz a linguagem Java apresentando e ensinando suas vantagens, boas práticas e convenções de código. Durante o curso aprende-se também os recursos da poderosa plataforma do Eclipse 3, a IDE líder de mercado.
Ao final do curso, você estará apto a desenvolver seus sistemas utilizando o paradigma da orientação a objetos, utilizar as facilidades do java e do Eclipse 3, e também estará preparado para desvendar qualquer outra biblioteca disponível, baseando-se na documentação de sua API, seja para gerar relatórios em PDF ou gráficos de torta 3D.
Esse curso faz parte da Formação Consultor Java junto com o FJ-16 e o FJ-21.
Pré-requisitos:
Lógica de programação e conhecimento de alguma linguagem de programação (Visual Basic, Delphi, C, PHP, ASP, etc).
Conteúdo detalhado:
Como Aprender Java
- O que é realmente importante?
- Sobre os exercícios
- Tirando dúvidas
- Bibliografia
O que é Java
- Java
- Máquina Virtual
- Java lento? Hotspot e JIT
- Versões do Java e a confusão do Java2
- JVM? JRE? JDK? O que devo baixar?
- Onde usar e os objetivos do Java
- Especificação versus implementação
- Como o FJ-11 está organizado
- Compilando o primeiro programa
- Executando seu primeiro programa
- O que aconteceu?
- Para saber mais: como é o bytecode?
- Exercícios: Modificando o Hello World
- O que pode dar errado?
- Um pouco mais...
- Exercícios adicionais
Variáveis primitivas e Controle de fluxo
- Declarando e usando variáveis
- Tipos primitivos e valores
- Exercícios: Variáveis e tipos primitivos
- Discussão em aula: convenções de código e código legível
- Casting e promoção
- O If-Else
- O While
- O For
- Controlando loops
- Escopo das variáveis
- Um bloco dentro do outro
- Para saber mais
- Exercícios: Fixação de sintaxe
- Desafios: Fibonacci
Orientação a objetos básica
- Motivação: problemas do paradigma procedural
- Criando um tipo
- Uma classe em Java
- Criando e usando um objeto
- Métodos
- Métodos com retorno
- Objetos são acessados por referências
- O método transfere()
- Continuando com atributos
- Para saber mais: Uma Fábrica de Carros
- Um pouco mais...
- Exercícios: Orientação a Objetos
- Desafios
- Fixando o conhecimento
Um pouco de arrays
- O problema
- Arrays de referências
- Percorrendo uma array
- Percorrendo uma array no Java 5.0
- Exercícios: Arrays
- Um pouco mais...
- Desafios
- Testando o conhecimento
Modificadores de acesso e atributos de classe
- Controlando o acesso
- Encapsulamento
- Getters e Setters
- Construtores
- A necessidade de um construtor
- Atributos de classe
- Um pouco mais...
- Exercícios: Encapsulamento, construtores e static
- Desafios
Orientação a Objetos - herança, reescrita e polimorfismo
- Repetindo código?
- Reescrita de método
- Invocando o método reescrito
- Polimorfismo
- Um outro exemplo
- Um pouco mais...
- Exercícios: Herança e Polimorfismo
- Discussões em aula: Alternativas ao atributo protected
Eclipse IDE
- O Eclipse
- Apresentando o Eclipse
- Views e Perspective
- Criando um projeto novo
- Criando o main
- Rodando o main
- Pequenos truques
- Exercícios: Eclipse
- Discussão em aula: Refactoring
Orientação a Objetos - Classes Abstratas
- Repetindo mais código?
- Classe abstrata
- Métodos abstratos
- Aumentando o exemplo
- Para saber mais...
- Exercícios: Classes Abstratas
- Desafios
Orientação a Objetos - Interfaces
- Aumentando nosso exemplo
- Interfaces
- Dificuldade no aprendizado de interfaces
- Exemplo interessante: conexões com o banco de dados
- Um pouco mais...
- Exercícios: Interfaces
- Exercícios avançados opcionais
- Discussão em aula: Favorecer composição em relação à herança
Controlando os erros com Exceções
- Motivação
- Exercício para começar com os conceitos
- Exceções de Runtime mais comuns
- Outro tipo de exceção: Checked Exceptions
- Um pouco da grande famíla Throwable
- Mais de um erro
- Lançando exceções
- O que colocar dentro do try?
- Criando seu próprio tipo de exceção
- Para saber mais: finally
- Exercícios: Exceções
- Desafios
- Discussão em aula: catch e throws em Exception
Pacotes - Organizando suas classes e bibliotecas
- Organização
- Diretórios
- Import
- Acesso aos atributos, construtores e métodos
- Usando o Eclipse com pacotes
- Exercícios: Pacotes
Ferramentas: jar e javadoc
- Arquivos, bibliotecas e versões
- Gerando o JAR pelo Eclipse
- Javadoc
- Gerando o Javadoc
- Exercícios: Jar e Javadoc
O pacote java.lang
- Pacote java.lang
- Um pouco sobre a classe System
- java.lang.Object
- Casting de referências
- Métodos do java.lang.Object: equals e toString
- Integer e classes wrappers (box)
- Autoboxing no Java 5.0
- java.lang.String
- java.lang.Math
- Exercícios: java.lang
- Desafio
- Discussão em aula: O que você precisa fazer em Java?
Pacote java.io
- Conhecendo uma API
- Orientação a objetos no java.io
- InputStream, InputStreamReader e BufferedReader
- Lendo Strings do teclado
- A analogia para a escrita: OutputStream
- Uma maneira mais fácil: Scanner e PrintStream
- Um pouco mais...
- Exercícios: Java I/O
- Discussão em aula: Design Patterns e o Template Method
Collections framework
- Arrays são trabalhosos, utilizar estrutura de dados
- Listas: java.util.List
- Listas no Java 5.0 com Generics
- A importância das interfaces nas coleções
- Ordenação: Collections.sort
- Exercícios: Ordenação
- Conjunto: java.util.Set
- Principais interfaces: java.util.Collection
- Percorrendo coleções no Java 5
- Para saber mais: Iterando sobre coleções com java.util.Iterator
- Mapas - java.util.Map
- Para saber mais: Properties
- Para saber mais: Equals e HashCode
- Para saber mais: Boas práticas
- Exercícios: Collections
- Desafios
Programação Concorrente e Threads
- Threads
- Escalonador e trocas de contexto
- Garbage Collector
- Para saber mais: problemas com concorrência
- Para saber mais: Vector e Hashtable
- Um pouco mais...
- Exercícios
- Exercícios avançados de programação concorrente e locks
E agora?
- Praticando Java e usando bibliotecas
- Web
- Certificação
- Revistas
- Grupos de Usuários
- Falando em Java - Próximos módulos
Apêndice - Sockets
- Motivação: uma API que usa os conceitos aprendidos
- Protocolo
- Porta
- Socket
- Servidor
- Cliente
- Imagem geral
- Exercícios: Sockets
- Desafio: Múltiplos Clientes
- Desafio: broadcast das mensagens
- Solução do sistema de chat
Apêndice - Instalação do Java
- Escolhendo a VM
- Instalando no Ubuntu e outros Linux
- No Mac OS X e Solaris
- Instalação do JDK em ambiente Windows
Apêndice - Debugging
- O que é debugar
- Debugando no Eclipse
- Perspectiva de debug
- Debug avançado
- Profiling
- Profiling no Eclipse TPTP
* Os apêndices listados são conteúdos adicionais que não fazem parte do curso regular.
Localização
Contato
Preencha os campos abaixo para enviar e-mail ao organizador.
