25 maio 2012

Série sobre Programação Orientada a Objetos com Java (POO) (+ códigos fonte)

AULA 02 - Programação Orientada a Objetos - (POO)


Antes de mais nada, se deseja acompanhar meu twitter é só me seguir. Se preferir, sugiro acompanhar o canal no YouTube.


  • Você sabe codificar sem uma IDE?
  • Você sabe compilar sem o Eclipse? 
  • Sabe rodar sem o NetBeans?
  • Sabe definir uma classe?
  • Compreende as diferenças de usar uma classe pronta da linguagem Java e definir a sua própria? 
  • O que os objetos tem haver com isso?

Assista, pratique e descubra! :)


Objetivos vistos na aula 2:


1 - Entender o conceito de classe;
- discutido na aula 1;

2 - Criar uma classe para fazer algo;
2.1) mostrar na prática classe chamada Teste
2.2 - escrever na saída de dados um texto qualquer;
2.3 - Entender o processo Codificar/Compilar/Executar sem IDE :)















import java.util.Date;

public class Teste {

 public static void main(String[] argumentos) {

  // o programa ira comecar por essa classe

  System.out.println("Oi JAVA!! ");

  Date dataAtual = new Date();
  System.out.println("Data Atual é: " + dataAtual.toString());

  // criar um cliente
  // criar um objeto do tipo Cliente
  Cliente cliente1;
  cliente1 = new Cliente();
  cliente1.nome = "Douglas Frari";
  cliente1.CPF = "721.XXX.XXX.XX";
  cliente1.efetuarPedidoCompra();
  cliente1.efetuarPedidoCompra();
  cliente1.efetuarPedidoCompra();
  cliente1.efetuarPedidoCompra();
  
  // definicao do objeto
  Cliente cliente2;
  // instanciando objeto cliente
  cliente2 = new Cliente();
  
  // escrita no objeto (write)
  cliente2.nome = "Maria Eduarda";
  cliente2.CPF = "543.323.321.12";

  System.out.println("Nome do cliente 1: " + cliente1.toString());

  System.out.println("Nome do cliente 2: " + cliente2.toString());

 }

}




public class Cliente {


 // atributos para representar 
 // um cliente no sistema ATUAL
 String nome;
 String CPF;
 int quantidadePedidos;
 

 // operacoes que o cliente poderá
 // fazer neste sistema
 void efetuarPedidoCompra() {
  System.out.println("efetuando pedido de compra");
  quantidadePedidos++;
 }
 
 // imprimir os seus valores
 @Override
 public String toString() {
  String atributosClasse = "Nome: " + nome + ", CPF: " + CPF+
    " , quantidade pedidos: "+quantidadePedidos;
  return atributosClasse;
 }
 
 

}
Conclusão parcial Programar sem uma IDE é essencial. É claro que utilizar IDE torna o trabalho mais produtivo e a ideia é exatamente essa. Porém, como pretende ser um bom programador se não compreender o que essas ferramentas fazem sem que você perceba? Outro aspecto destacado foi o uso de classes em duas abordagens distintas. Veremos mais sobre isso nos próximas aulas. O código fonte refere-se as aulas 2, 3, 4 e 5. Porém, somente publiquei até o momento de hoje a aula 2. Em breve mais!

23 maio 2012

Programação Orientada a Objetos (POO) com JAVA

Apresento a todos a nova série de video-aulas sobre Programação Orientada a Objetos (POO).



Objetivos da série

  • Entender os principais conceitos de POO;
  • Aplicar os conceitos na linguagem Java;
  • Conceitos POO
    • Classes
    • Objetos
    • Encapsulamento
    • Herança
    • Polimorfismo


Perguntas iniciais

  1. Por que programação?
  2. Por que temos que codificar classes?
  3. Temos que entender de objetos?


As respostas dessas perguntas são discutidas no primeiro vídeo.


Os códigos fontes serão postados por aqui em breve. Na primeira aula discutimos o porquê precisamos codificar coisas na forma de Classes e utilizar Objetos.

Envie suas dúvidas pelo formulário:
http://migre.me/9aGqN (via googledocs)

17 maio 2012

8 ANOS como programador++

Hoje é um dia especial para mim. Estou completando 8 anos trabalhando na empresa mais legal do mundo (C.E.S.A.R). E se você pensa que estou exagerando é porque não sabes como me sinto em relação a isso!

Pois bem. Vou expressar aqui com minhas próprias palavras um pouco o porquê digo isso:

Em 11 de agosto de 2008 eu publiquei esse post:
A motivação no dia a dia: seja lá qual o seu trabalho...

Em 10 de setembro de 2009, publiquei um post:
Aviso de defesa de dissertação de mestrado (CIn/UFPE)

Em 30 de novembro de 2010, postei:
C.E.S.A.R vence Prêmio Finep 2010

No dia primeiro de março de 2011 estava bem resolvido com o Amor, então escrevi:
Feito amor

Em 29 de setembro de 2011, escrevi:
Caminho para ensinar programação ! ?

No ano de 2012, no dia 17/02/2012:
O Programador Pragmático (The Pragmatic programmer)

Recentemente, produzi e estou ainda produzindo coisas diferentes, como:
Curso Básico Criação Janelas Gráficas (GUI) com NetBeans (no YouTube)


E que tal trabalhar enquanto escuto um Podcast de empreendedorismo Nerd?


Onde eu estava quando fazia tudo isso (quase ao mesmo tempo)? 
Eu estava trabalhando na melhor empresa do mundo. Eu estou na empresa que me proporciona desafios aos problemas relevantes (alguns nem tantos), mas são SEMPRE bons PROBLEMAS para resolver. Só preciso torná-los úteis para aprender com eles

Conheça o C.E.S.A.R e venha trabalhar aqui!





Então, como vejo no geral a rotina


import java.util.ArrayList;

/**
 * 
 * @author Douglas Frari
 */
public class DiaADiaCesar {
    
    // as oportunidades sao compartilhadas
    public static ArrayList listaOportunidades = 
            new ArrayList();
    
    public static void main(String[] oportunidades) {
        
        if (oportunidades!=null && oportunidades.length > 0) {
            // estou VENDO oportunidades para aprender
            for (int i = 0; i < oportunidades.length; i++) {
                listaOportunidades.add(new Oportunidade(oportunidades[i]));                   
            }
        }
        
        // bater ponto de entrada no CESAR
        int horasProdutivas = 7;
        int horasInterativas = 1; // as vezes mais ou menos
        boolean queroContinuarTrabalhando = true;
        
        do {            
            
            fazerOquePrecisaSerFeito(horasProdutivas); // foco no problema
        
            interagirComPessoas(horasInterativas); // interações com colegas
        
            // 1 hora = 3 600 000 milisegundos
            Thread.sleep(3600000); 

            // o tempo passou ...
            horasProdutivas--;
            horasInterativas--;
            
            queroContinuarTrabalhando = vouContinuarMaisUmTempoTrabalhando();
            
        } while (queroContinuarTrabalhando);
        
        
        // bater ponto de saída / hora de sair da empresa
        
        if (listaOportunidades.size() > 0) {
            
            // que aprendizados eu tive hoje?
            // o que eu fiz de legal hoje?
            // como farei para resolver o problema?
            
            // etc.
            
        }
        
    }
    
}

Como vou iniciar o programa? 

 #java DiaADiaCesar oportunidade1 oportunidade2 oportunidadeX 

Cada um cria as suas próprias oportunidades ou não. Mas se criá-las, sei que no final terei aprendido melhor e isso me dá motivação extra para fazer muitas outras coisas que tenho vontade.

14 maio 2012

Criação de Interfaces Gráficas Java no NetBeans (com video-aulas)

Oi pessoal,

Estou fazendo umas video-aulas para novatos em programação ou para quem deseja utilizar o NetBeans para criação de telas visuais. Melhore sua produtividade! :)