SlideShare una empresa de Scribd logo
1 de 37
Molhando os pés
com Java
Maurício Linhares
Esse material é baseado no
que?
• Na segunda edição do livro Head First Java;

• Em português, o título do livro é Use a Cabeça Java;

• COMPREM O LIVRO 
O que é o Java?
• Uma linguagem imperativa e orientada a objetos;

• Uma plataforma de desenvolvimento independente de
  sistemas operacionais e arquiteturas de hardware;
Como é que funciona?
Exemplo de código compilável em Java

public class OlaMundo {

     public static void main( String[]
    args) {
       System.out.println("Este é o...");
       System.out.println("...meu primeiro
            programa em Java!");
    }

}
Como é que eu compilo?
javac OlaMundo.java

java OlaMundo

java OlaMundo “parametro”
Estrutura do código Java

                       Arquivo
                                            Nome da classe
Arquivo fonte   Isso é uma
                classe                           Nome do método
  Classe
                       //arquivo OlaMundo.java

  Método               public class OlaMundo {

                           public static void main( String[] args) {
                             System.out.println(“Olá Mundo!");
                           }
  Método
                       }
                     Comando no método
Uma leve repetição…

 public class DeclarandoVariaveis {
   public static void main(String[] args) {
     int x = 7;

         while ( x > 3 ) {
           System.out.println(x);
           x = x - 1;
         }

         while( x < 7 ) {
           System.out.println(x);
           x = x + 1;
         }
     }
 }
E agora uma condição
public class Condicoes {

    public static void main(String[] args) {
       int z = 23;
       if ( z == 10 ) {
         System.out.println( "z é igual a 10 :)" );
       } else {
         System.out.println( "z não é igual a 10"
    );
       }
       System.out.println("e isso é enrolação");
    }

}
Como implementar a música da cerveja?

99 cervejas na freezer.
Pego uma garrafa, passo pra frente.
Agora são 98 cervejas na freezer.

98 cervejas na freezer.
Pego uma garrafa, passo pra frente.
Agora são 97 cervejas na freezer.
Implementação básica
public class MusicaDaCerveja {

    public static void main(String[] args) {

        int cervejas = 10;
        String palavra = "cervejas";

        while (cervejas > 0) {
          System.out.println(cervejas + " " + palavra + " na freezer");
          System.out.println("Pego uma garrafa, passo pra frente");
          cervejas = cervejas - 1;
          System.out.println("Agora são " + cervejas + " " + palavra
              + " na freezer");
          System.out.println();
        }

    }

}
Qual é o erro?
Objetos – um mundo de
coisas
O que é um objeto?
• É uma coisa que tem comportamentos;

• É uma coisa que tem informações;

• É uma coisa que vem de uma fôrma, chamada de
  classe;
Fôrma – a classe
O que é uma classe
• É a definição da estrutura básica que um objeto deve
  seguir;

• Define os dados e ações que um objeto pode ter;

• É a forma utilizada para criar os objetos;
Objeto – a instância (também conhecido
como bolo)
O que é um objeto?
• É uma construção que representa uma entidade do
  problema da aplicação dentro de um sistema;

• Objetos contém dados (informações);

• Objetos contém comportamentos;
Uma classe…
public class Cachorro {

    String nome;

    public void late() {
       System.out.println( this.nome +
            “ latindo: Ruf! ");
    }

}
Os objetos trabalhando
public class CachorroTest {

    public static void main(String[] args) {
        Cachorro c = new Cachorro();
        c.nome = "Ralf";
        c.late();

        Cachorro outroCachorro = new Cachorro();
        outroCachorro.nome = "Lobão";
        outroCachorro.late();
    }

}
O operador “.”
• Ele é utilizado para acessar os dados ou invocar os
  métodos de um objeto;
• Quando após o operador houver apenas um nome, ele
  está acessando os dados (as variáveis de instância);
• Quando após o operador houver um nome e parênteses
  no fim ele está invocando as ações (os métodos);
O que é o “new”?
• É o operador utilizado para criar objetos;

• Após o “new” deve vir o nome de uma classe;

• O operador new retorna um objeto contruido para ser
  utilizado;
Prazer, meu nome é Array
public class ArraysTest {

    public static void main(String[] args) {
        int[] inteiros = { 1,2,3,4,5 };

        int[] maisInteiros = new int[4];
        maisInteiros[0] = 1;
        maisInteiros[1] = 5;
        maisInteiros[2] = 3;
        maisInteiros[4] = 9;
    }

}
Um array é um conjunto ordenado e objetos



  0     1      2      3      4     5




1 3 8 2 5 0
Array de cachorros
public class Carrocinha {

    Cachorro[] cachorros = new
       Cachorro[10];

}
Array de cachorros
public class CarrocinhaTest {

    public static void main(String[] args) {

        Carrocinha carrocinha = new Carrocinha();

        int x = 0;
        while ( x < carrocinha.cachorros.length ) {
               carrocinha.cachorros[x] = new Cachorro();
               x++;
        }

    }

}
Switchcase
• Estrutura de controle condicional;

• Usa comparação de valores de inteiros (ou
  caracteres) para selecionar uma posição na
  qual entrar;

• Se um case for selecionado, ele vai executar a
  partir do case selecionado até encontrar uma
  instrução de parada ( o “break”);

• Se nenhum dos cases for selecionado, ele
  procura por uma opção “default”;
Exemplo de switch
int x = 1;

switch (x) {
  case 1:
      System.out.println("deu um");
      break;
  case 2:
      System.out.println("deu 2");
  case 3:
      System.out.println("Continuando...");
      break;
  default:
      System.out.println("Não foi ninguém");
}
Em um switch…
• Só se usam   inteiros ou caracteres;
• Se não houver um “break” ele cai para o próximo
  case (ou default);

• Nunca esqueça de colocar os breaks;

• O default poder vir em qualquer lugar (e não só no
  final);
Passada rápida – classe
Scanner
• A classe Scanner implementa um leitor de uma
  interface de texto (como uma linha de comando);

• É um modo simples de se receber instruções de um
  usuário (ou de outro programa);

• Foi adicionada no Java 1.5;
Usando scanners
public class ScannerTest {

    public static void main(String[] args) {
        Scanner scanner = new Scanner( System.in );
        System.out.println("Escreva um inteiro");
        System.out.println("O inteiro lido foi -> " +
    scanner.nextInt());
        System.out.println("Escreva um double");
        System.out.println("O double lido foi -> " +
    scanner.nextDouble());
        System.out.println("Escreva qualquer coisa");
        System.out.println("O que você escreveu foi -> " +
    scanner.next());
    }

}
Exercícios
• Crie um projeto e coloque todos as classes dos exercícios
  juntos;

• Use um objeto Scanner para ler os dados que o usuário vai
  passar;

• Teste o seu código com várias entradas diferentes pra ter
  certeza que ele se comporta corretamente;
Exercícios - 1
• Crie um método que, dado um número, ele imprima na linha
  de comando todos os números de 1 até ele, um número por
  linha
  • Exemplo, se o número dado for 7, devem ser impressos no
    console 1, 2, 3, 4, 5, 6, 7
Exercícios - 2
• Escreva um programa que, ao receber um número, imprima se
  ele é par ou ímpar
Exercícios - 3
• Crie um array de objetos do tipo String com 10 elementos,
  imprima os elementos desse array de forma que apenas os
  strings que estão nas posições ímpares sejam impressos;
Exercícios - 4
• Crie uma classe Pessoa que tenha os atributos nome, cpf e rg
  (todos String) e crie um programa que seja capaz de
  preencher os campos de uma pessoa, use switch/case para
  selecionar qual campo da pessoa vai ser preenchido e crie
  uma opção para que seja impresso no console os dados que
  estão atualmente no objeto;
Exercícios - 5
• Escreva um programa que seja capaz de manter uma agenda
  de clientes (use a classe Pessoa do exercício anterior), o
  programa deve conter no máximo 10 clientes (use um array de
  10 posições). Deve ser possível adicionar um novo cliente ou
  editar um cliente que já esteja na lista. Deve haver uma opção
  para que sejam impressos todos os clientes que já estão
  cadastrados no sistema.
  • Dicas:
     • Você deve manter em algum lugar a quantidade atual de clientes,
       pra saber onde deve adicionar um novo cliente;
     • Arrays de objetos são sempre inicializados com null, então cuidado
       ao tentar acessar objetos;

Más contenido relacionado

La actualidad más candente

Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em PythonLuciano Ramalho
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compactoLuciano Ramalho
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Java Básico :: Classe Vector
Java Básico :: Classe VectorJava Básico :: Classe Vector
Java Básico :: Classe VectorWesley R. Bezerra
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetrosMaurício Linhares
 
Revisão de Classes e arquivos .java - Preparatório Certificação - OCAJP7 - Au...
Revisão de Classes e arquivos .java - Preparatório Certificação - OCAJP7 - Au...Revisão de Classes e arquivos .java - Preparatório Certificação - OCAJP7 - Au...
Revisão de Classes e arquivos .java - Preparatório Certificação - OCAJP7 - Au...Paulo Henrique Lerbach Rodrigues
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Luciano Ramalho
 
Threads 06: Coleções concorrentes
Threads 06: Coleções concorrentesThreads 06: Coleções concorrentes
Threads 06: Coleções concorrentesHelder da Rocha
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Natanael Fonseca
 
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Tchelinux
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaArthur Emanuel
 
Threads 07: Sincronizadores
Threads 07: SincronizadoresThreads 07: Sincronizadores
Threads 07: SincronizadoresHelder da Rocha
 

La actualidad más candente (18)

Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Orientação a Objetos em Python
Orientação a Objetos em PythonOrientação a Objetos em Python
Orientação a Objetos em Python
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 
Objetos Pythonicos - compacto
Objetos Pythonicos - compactoObjetos Pythonicos - compacto
Objetos Pythonicos - compacto
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Java Básico :: Classe Vector
Java Básico :: Classe VectorJava Básico :: Classe Vector
Java Básico :: Classe Vector
 
Curso java 03 - métodos e parâmetros
Curso java   03 - métodos e parâmetrosCurso java   03 - métodos e parâmetros
Curso java 03 - métodos e parâmetros
 
Aula05
Aula05Aula05
Aula05
 
Revisão de Classes e arquivos .java - Preparatório Certificação - OCAJP7 - Au...
Revisão de Classes e arquivos .java - Preparatório Certificação - OCAJP7 - Au...Revisão de Classes e arquivos .java - Preparatório Certificação - OCAJP7 - Au...
Revisão de Classes e arquivos .java - Preparatório Certificação - OCAJP7 - Au...
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Threads 06: Coleções concorrentes
Threads 06: Coleções concorrentesThreads 06: Coleções concorrentes
Threads 06: Coleções concorrentes
 
POO - 13 - Arrays em Java
POO - 13 - Arrays em JavaPOO - 13 - Arrays em Java
POO - 13 - Arrays em Java
 
Curso Java Básico - Aula 04
Curso Java Básico - Aula 04Curso Java Básico - Aula 04
Curso Java Básico - Aula 04
 
Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7Introdução a linguagem Python 2.7
Introdução a linguagem Python 2.7
 
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
Fugindo para as colinas com Python - Julio Biason - Tchelinux Bento Gonçalves...
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Threads 07: Sincronizadores
Threads 07: SincronizadoresThreads 07: Sincronizadores
Threads 07: Sincronizadores
 
Threads 09: Paralelismo
Threads 09: ParalelismoThreads 09: Paralelismo
Threads 09: Paralelismo
 

Destacado (9)

Análise de sistemas oo 1
Análise de sistemas oo   1Análise de sistemas oo   1
Análise de sistemas oo 1
 
Conhecendo o Decorator
Conhecendo o DecoratorConhecendo o Decorator
Conhecendo o Decorator
 
Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010Introdução ao desenvolvimento web - 2 - iDez 2010
Introdução ao desenvolvimento web - 2 - iDez 2010
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 
Apresentação sobre DB4O
Apresentação sobre DB4OApresentação sobre DB4O
Apresentação sobre DB4O
 
Migrando pra Scala
Migrando pra ScalaMigrando pra Scala
Migrando pra Scala
 
The Fast, The Slow and the Lazy
The Fast, The Slow and the LazyThe Fast, The Slow and the Lazy
The Fast, The Slow and the Lazy
 
Além do java
Além do javaAlém do java
Além do java
 
Banco de dados dbo4
Banco de dados dbo4Banco de dados dbo4
Banco de dados dbo4
 

Similar a Curso java 01 - molhando os pés com java

Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.pptEmerson Cardoso
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Javathomasdacosta
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - BrazilStephen Chin
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e ExercíciosArthur Emanuel
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doublePAULO Moreira
 
Threads 01: Criação e controle de threads
Threads 01: Criação e controle de threadsThreads 01: Criação e controle de threads
Threads 01: Criação e controle de threadsHelder da Rocha
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetosunifesptk
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02thomasdacosta
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Programação Concorrente - Gerenciamento de Threads - Parte I
Programação Concorrente - Gerenciamento de Threads - Parte IProgramação Concorrente - Gerenciamento de Threads - Parte I
Programação Concorrente - Gerenciamento de Threads - Parte IFabio Moura Pereira
 
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepCurso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepLoiane Groner
 

Similar a Curso java 01 - molhando os pés com java (20)

String e IO
String e IOString e IO
String e IO
 
Java aprendendo linguagem.ppt
Java aprendendo linguagem.pptJava aprendendo linguagem.ppt
Java aprendendo linguagem.ppt
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Curso de Java: Threads
Curso de Java: ThreadsCurso de Java: Threads
Curso de Java: Threads
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Java8
Java8Java8
Java8
 
java_avancado.pdf
java_avancado.pdfjava_avancado.pdf
java_avancado.pdf
 
Java - Visão geral e Exercícios
Java - Visão geral e ExercíciosJava - Visão geral e Exercícios
Java - Visão geral e Exercícios
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Linguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação JavaLinguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação Java
 
Classe integer-float-byte-short-long-double
Classe integer-float-byte-short-long-doubleClasse integer-float-byte-short-long-double
Classe integer-float-byte-short-long-double
 
Threads 01: Criação e controle de threads
Threads 01: Criação e controle de threadsThreads 01: Criação e controle de threads
Threads 01: Criação e controle de threads
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetos
 
Programação Concorrente - Aula 02
Programação Concorrente - Aula 02Programação Concorrente - Aula 02
Programação Concorrente - Aula 02
 
Threads
ThreadsThreads
Threads
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Programação Concorrente - Gerenciamento de Threads - Parte I
Programação Concorrente - Gerenciamento de Threads - Parte IProgramação Concorrente - Gerenciamento de Threads - Parte I
Programação Concorrente - Gerenciamento de Threads - Parte I
 
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleepCurso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
Curso Java Basico] Aula 67: Criando Threads + metodos start, run e sleep
 
Java5
Java5Java5
Java5
 
Palestra2009
Palestra2009Palestra2009
Palestra2009
 

Más de Maurício Linhares

Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropMaurício Linhares
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMaurício Linhares
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleçõesMaurício Linhares
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemMaurício Linhares
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Maurício Linhares
 
Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Maurício Linhares
 
Projeto e desenvolvimento de sistemas de informação 4 - computação em rede
Projeto e desenvolvimento de sistemas de informação   4 - computação em redeProjeto e desenvolvimento de sistemas de informação   4 - computação em rede
Projeto e desenvolvimento de sistemas de informação 4 - computação em redeMaurício Linhares
 
Relatório final do projeto de pesquisa e-Teacher
Relatório final do projeto de pesquisa e-TeacherRelatório final do projeto de pesquisa e-Teacher
Relatório final do projeto de pesquisa e-TeacherMaurício Linhares
 
Relatório Final - Biblioteca Digital Paulo Freire
Relatório Final - Biblioteca Digital Paulo FreireRelatório Final - Biblioteca Digital Paulo Freire
Relatório Final - Biblioteca Digital Paulo FreireMaurício Linhares
 
Relatório de Estágio da Graduação
Relatório de Estágio da GraduaçãoRelatório de Estágio da Graduação
Relatório de Estágio da GraduaçãoMaurício Linhares
 
Apresentação do relatório final de estágio
Apresentação do relatório final de estágioApresentação do relatório final de estágio
Apresentação do relatório final de estágioMaurício Linhares
 

Más de Maurício Linhares (20)

Mercado de TI
Mercado de TIMercado de TI
Mercado de TI
 
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDropUnindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
Unindo Ruby e Java através de uma arquitetura orientada a serviços na OfficeDrop
 
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDropMixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
Mixing Ruby and Java in a Service Oriented Architecture at OfficeDrop
 
Curso java 07 - exceções
Curso java   07 - exceçõesCurso java   07 - exceções
Curso java 07 - exceções
 
Curso java 08 - mais sobre coleções
Curso java   08 - mais sobre coleçõesCurso java   08 - mais sobre coleções
Curso java 08 - mais sobre coleções
 
Curso java 02 - variáveis
Curso java   02 - variáveisCurso java   02 - variáveis
Curso java 02 - variáveis
 
Feature Driven Development
Feature Driven DevelopmentFeature Driven Development
Feature Driven Development
 
Outsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvemOutsourcing e trabalho remoto para a nuvem
Outsourcing e trabalho remoto para a nuvem
 
Mercado hoje
Mercado hojeMercado hoje
Mercado hoje
 
Revisão html e java script
Revisão html e java scriptRevisão html e java script
Revisão html e java script
 
Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010Aulas de Java Avançado 2- Faculdade iDez 2010
Aulas de Java Avançado 2- Faculdade iDez 2010
 
Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010Aulas de Java Avançado 1 - Faculdade iDez 2010
Aulas de Java Avançado 1 - Faculdade iDez 2010
 
Projeto e desenvolvimento de sistemas de informação 4 - computação em rede
Projeto e desenvolvimento de sistemas de informação   4 - computação em redeProjeto e desenvolvimento de sistemas de informação   4 - computação em rede
Projeto e desenvolvimento de sistemas de informação 4 - computação em rede
 
Extreme programming explicada
Extreme programming explicadaExtreme programming explicada
Extreme programming explicada
 
Jdbc e hibernate
Jdbc e hibernateJdbc e hibernate
Jdbc e hibernate
 
Java wsdp
Java wsdpJava wsdp
Java wsdp
 
Relatório final do projeto de pesquisa e-Teacher
Relatório final do projeto de pesquisa e-TeacherRelatório final do projeto de pesquisa e-Teacher
Relatório final do projeto de pesquisa e-Teacher
 
Relatório Final - Biblioteca Digital Paulo Freire
Relatório Final - Biblioteca Digital Paulo FreireRelatório Final - Biblioteca Digital Paulo Freire
Relatório Final - Biblioteca Digital Paulo Freire
 
Relatório de Estágio da Graduação
Relatório de Estágio da GraduaçãoRelatório de Estágio da Graduação
Relatório de Estágio da Graduação
 
Apresentação do relatório final de estágio
Apresentação do relatório final de estágioApresentação do relatório final de estágio
Apresentação do relatório final de estágio
 

Curso java 01 - molhando os pés com java

  • 1. Molhando os pés com Java Maurício Linhares
  • 2. Esse material é baseado no que? • Na segunda edição do livro Head First Java; • Em português, o título do livro é Use a Cabeça Java; • COMPREM O LIVRO 
  • 3. O que é o Java? • Uma linguagem imperativa e orientada a objetos; • Uma plataforma de desenvolvimento independente de sistemas operacionais e arquiteturas de hardware;
  • 4. Como é que funciona?
  • 5. Exemplo de código compilável em Java public class OlaMundo { public static void main( String[] args) { System.out.println("Este é o..."); System.out.println("...meu primeiro programa em Java!"); } }
  • 6. Como é que eu compilo? javac OlaMundo.java java OlaMundo java OlaMundo “parametro”
  • 7. Estrutura do código Java Arquivo Nome da classe Arquivo fonte Isso é uma classe Nome do método Classe //arquivo OlaMundo.java Método public class OlaMundo { public static void main( String[] args) { System.out.println(“Olá Mundo!"); } Método } Comando no método
  • 8. Uma leve repetição… public class DeclarandoVariaveis { public static void main(String[] args) { int x = 7; while ( x > 3 ) { System.out.println(x); x = x - 1; } while( x < 7 ) { System.out.println(x); x = x + 1; } } }
  • 9. E agora uma condição public class Condicoes { public static void main(String[] args) { int z = 23; if ( z == 10 ) { System.out.println( "z é igual a 10 :)" ); } else { System.out.println( "z não é igual a 10" ); } System.out.println("e isso é enrolação"); } }
  • 10. Como implementar a música da cerveja? 99 cervejas na freezer. Pego uma garrafa, passo pra frente. Agora são 98 cervejas na freezer. 98 cervejas na freezer. Pego uma garrafa, passo pra frente. Agora são 97 cervejas na freezer.
  • 11. Implementação básica public class MusicaDaCerveja { public static void main(String[] args) { int cervejas = 10; String palavra = "cervejas"; while (cervejas > 0) { System.out.println(cervejas + " " + palavra + " na freezer"); System.out.println("Pego uma garrafa, passo pra frente"); cervejas = cervejas - 1; System.out.println("Agora são " + cervejas + " " + palavra + " na freezer"); System.out.println(); } } }
  • 12. Qual é o erro?
  • 13. Objetos – um mundo de coisas
  • 14. O que é um objeto? • É uma coisa que tem comportamentos; • É uma coisa que tem informações; • É uma coisa que vem de uma fôrma, chamada de classe;
  • 15. Fôrma – a classe
  • 16. O que é uma classe • É a definição da estrutura básica que um objeto deve seguir; • Define os dados e ações que um objeto pode ter; • É a forma utilizada para criar os objetos;
  • 17. Objeto – a instância (também conhecido como bolo)
  • 18. O que é um objeto? • É uma construção que representa uma entidade do problema da aplicação dentro de um sistema; • Objetos contém dados (informações); • Objetos contém comportamentos;
  • 19. Uma classe… public class Cachorro { String nome; public void late() { System.out.println( this.nome + “ latindo: Ruf! "); } }
  • 20. Os objetos trabalhando public class CachorroTest { public static void main(String[] args) { Cachorro c = new Cachorro(); c.nome = "Ralf"; c.late(); Cachorro outroCachorro = new Cachorro(); outroCachorro.nome = "Lobão"; outroCachorro.late(); } }
  • 21. O operador “.” • Ele é utilizado para acessar os dados ou invocar os métodos de um objeto; • Quando após o operador houver apenas um nome, ele está acessando os dados (as variáveis de instância); • Quando após o operador houver um nome e parênteses no fim ele está invocando as ações (os métodos);
  • 22. O que é o “new”? • É o operador utilizado para criar objetos; • Após o “new” deve vir o nome de uma classe; • O operador new retorna um objeto contruido para ser utilizado;
  • 23. Prazer, meu nome é Array public class ArraysTest { public static void main(String[] args) { int[] inteiros = { 1,2,3,4,5 }; int[] maisInteiros = new int[4]; maisInteiros[0] = 1; maisInteiros[1] = 5; maisInteiros[2] = 3; maisInteiros[4] = 9; } }
  • 24. Um array é um conjunto ordenado e objetos 0 1 2 3 4 5 1 3 8 2 5 0
  • 25. Array de cachorros public class Carrocinha { Cachorro[] cachorros = new Cachorro[10]; }
  • 26. Array de cachorros public class CarrocinhaTest { public static void main(String[] args) { Carrocinha carrocinha = new Carrocinha(); int x = 0; while ( x < carrocinha.cachorros.length ) { carrocinha.cachorros[x] = new Cachorro(); x++; } } }
  • 27. Switchcase • Estrutura de controle condicional; • Usa comparação de valores de inteiros (ou caracteres) para selecionar uma posição na qual entrar; • Se um case for selecionado, ele vai executar a partir do case selecionado até encontrar uma instrução de parada ( o “break”); • Se nenhum dos cases for selecionado, ele procura por uma opção “default”;
  • 28. Exemplo de switch int x = 1; switch (x) { case 1: System.out.println("deu um"); break; case 2: System.out.println("deu 2"); case 3: System.out.println("Continuando..."); break; default: System.out.println("Não foi ninguém"); }
  • 29. Em um switch… • Só se usam inteiros ou caracteres; • Se não houver um “break” ele cai para o próximo case (ou default); • Nunca esqueça de colocar os breaks; • O default poder vir em qualquer lugar (e não só no final);
  • 30. Passada rápida – classe Scanner • A classe Scanner implementa um leitor de uma interface de texto (como uma linha de comando); • É um modo simples de se receber instruções de um usuário (ou de outro programa); • Foi adicionada no Java 1.5;
  • 31. Usando scanners public class ScannerTest { public static void main(String[] args) { Scanner scanner = new Scanner( System.in ); System.out.println("Escreva um inteiro"); System.out.println("O inteiro lido foi -> " + scanner.nextInt()); System.out.println("Escreva um double"); System.out.println("O double lido foi -> " + scanner.nextDouble()); System.out.println("Escreva qualquer coisa"); System.out.println("O que você escreveu foi -> " + scanner.next()); } }
  • 32. Exercícios • Crie um projeto e coloque todos as classes dos exercícios juntos; • Use um objeto Scanner para ler os dados que o usuário vai passar; • Teste o seu código com várias entradas diferentes pra ter certeza que ele se comporta corretamente;
  • 33. Exercícios - 1 • Crie um método que, dado um número, ele imprima na linha de comando todos os números de 1 até ele, um número por linha • Exemplo, se o número dado for 7, devem ser impressos no console 1, 2, 3, 4, 5, 6, 7
  • 34. Exercícios - 2 • Escreva um programa que, ao receber um número, imprima se ele é par ou ímpar
  • 35. Exercícios - 3 • Crie um array de objetos do tipo String com 10 elementos, imprima os elementos desse array de forma que apenas os strings que estão nas posições ímpares sejam impressos;
  • 36. Exercícios - 4 • Crie uma classe Pessoa que tenha os atributos nome, cpf e rg (todos String) e crie um programa que seja capaz de preencher os campos de uma pessoa, use switch/case para selecionar qual campo da pessoa vai ser preenchido e crie uma opção para que seja impresso no console os dados que estão atualmente no objeto;
  • 37. Exercícios - 5 • Escreva um programa que seja capaz de manter uma agenda de clientes (use a classe Pessoa do exercício anterior), o programa deve conter no máximo 10 clientes (use um array de 10 posições). Deve ser possível adicionar um novo cliente ou editar um cliente que já esteja na lista. Deve haver uma opção para que sejam impressos todos os clientes que já estão cadastrados no sistema. • Dicas: • Você deve manter em algum lugar a quantidade atual de clientes, pra saber onde deve adicionar um novo cliente; • Arrays de objetos são sempre inicializados com null, então cuidado ao tentar acessar objetos;