Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
PROGRAMAÇÃO DE
COMPUTADORES II
PROGRAMAÇÃO DE COMPUTADORES
• Existem duas formas importantes de
programação de computadores:
– A programação estruturada (PE)
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
PROGRAMAÇÃO ESTRUTURADA
• Na programação estruturada, a preocupação
maior é com as estruturas de controle, ou
seja, como construir programas usando as
estruturas de sequência, seleção e repetição.
– Assim, na programação estruturada, preocupa-se
com os algoritmos e cada módulo que compõe um
programa é um algoritmo específico.
EXEMPLO: PROGRAMAÇÃO ESTRUTURADA
(LINGUAGEM C)
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
PROGRAMAÇÃO ORIENTADA A
OBJETOS
• Na programação orientada a objetos, a
preocupação maior é com os dados que o
programa irá tratar. Assim, na programação
orientada a objetos, preocupa-se com as
estruturas de dados e com as operações que
podem ser executadas sobre estes dados.
• Na POO, cada estrutura de dados e suas
operações associadas é denominada classe.
Assim, na POO, cada módulo que compõe um
programa é uma classe.
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Objetos
Na programação orientada a objetos, o principal
conceito é o de objeto. Mas o que é um objeto?
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Programa Java
• Um programa Java é constituído por um
conjunto de classes. Essas classes podem ser
primitivas (Java API) ou construídas pelo
usuário.
• O programa corresponde à uma classe
executável: classe que contém o método
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
• Este programa Java é constituído por 2 classes: Primeira e Programa1.
• Cada uma destas classes deve ser escrita em um arquivo separado. Os nomes dos arquivos devem ser exatamente iguais aos nomes das classes, acrescentando-se a extensão .java, ou seja: Primeira.java e Programa1.java
• Primeira e Programa1 são identificadores (nomes
escolhidos pelo próprio programador). Identificadores
podem ser constituídos por letras, dígitos, sublinhados (_) e símbolos de cifrão ($) mas não podem iniciar com dígito e não podem conter espaços. Lembrar que Java faz distinção
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
• Este programa Java é constituído por 2 classes: Primeira e Programa1.
• Cada uma destas classes deve ser escrita em um arquivo separado. Os nomes dos arquivos devem ser exatamente iguais aos nomes das classes, acrescentando-se a extensão .java, ou seja: Primeira.java e Programa1.java
• Primeira e Programa1 são identificadores (nomes
escolhidos pelo próprio programador). Identificadores
podem ser constituídos por letras, dígitos, sublinhados (_) e símbolos de cifrão ($) mas não podem iniciar com dígito e não podem conter espaços. Lembrar que Java faz distinção entre letras maiúsculas e minúsculas.
Exemplo de um programa Java
• Uma das classes do programa (a classe
executável, ou seja, a classe que corresponde
ao programa em si) deve conter a declaração:
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Exemplo de um programa Java
• Cada classe define:
• Uma estrutura de dados: constituída por um conjunto de campos que caracterizam um particular tipo de dado.
• Operações possíveis: um conjunto de funções
(denominadas métodos) que implementam as operações possíveis sobre os dados armazenados nos campos.
• Assim, uma classe reúne em uma única entidade os
possíveis dados (valores dos campos) e instruções (funções que estabelecem o comportamento computacional) dos objetos da classe.
• A esta característica especial das classes dá-se o nome de encapsulamento.
Representação de uma Classe
• A esta característica especial das classes dá-se
o nome de encapsulamento. Para facilitar a
descrição de classes, vamos adotar a seguinte
notação gráfica para representar uma
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Objeto e Classe
• Um objeto é um exemplar de uma classe. Quantos exemplares uma classe pode ter?
• Exemplo:
• Portanto, se uma classe é uma entidade genérica, cada objeto desta classe é uma entidade específica,
caracterizado por:
– Seu estado: o conjunto dos valores específicos atribuídos aos campos do objeto;
– Seu comportamento: o conjunto de métodos (determinados pela classe) que tratam os dados específicos do objeto.
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Algumas classes da Java API
• A classe Math
– Contém valores de constantes e várias funções matemáticas.
– Faz parte do pacote java.lang (incluído automaticamente). A classe apresenta duas constantes:
• Math.PI (com o valor 3.14159265358979323846) • Math.E (com o valor 2.71828182845904523536)
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Algumas classes da Java API
• A Classe String
– Os objetos da classe String são imutáveis (uma vez criado, um objeto String não pode ser alterado). Toda operação sobre um objeto String gera um novo objeto String.
– Com a classe String, pode-se criar um objeto diretamente, sem usar o operador new.
• Exemplo: String nome = “Antonio Chaves”;
– A classe oferece diversos métodos que podem ser usados para manipulação de sequências de caracteres. Os métodos devem ser chamados por objetos da classe.
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Algumas classes da Java API
• A classe Scanner
– A classe Scanner permite a leitura de dados (de tipos primitivos ou Strings) a partir de arquivos.
– System.in é o arquivo padrão de entrada (teclado) e
System.out é o arquivo padrão de saída (área de saída do IDE)
– O método hasNext () indica se existe ou não um próximo token para ser lido. O método next() retorna um token (ou seja, um objeto da classe String).
– Outros métodos da classe Scanner são:
• hasNextXxx() (indica se o próximo token, caso exista, pode ser interpretado como do tipo Xxx, onde Xxx pode ser Int, Float, Double, Boolean)
Israel Morais PROGRAMAÇÃO DE COMPUTADORES II
Algumas classes da Java API
• Classes Wrapper (Invólucro)
– Em Java pode-se trabalhar com tipos primitivos (que não são objetos). Para facilitar a manipulação de dados destes tipos existem classes wrapper (do pacote java.lang) para cada tipo primitivo: Boolean (para boolean), Byte (para byte), Character (para char), Short (para short), Integer (para int), Long (para long), Float (para float) e Double (para double). Quase todas estas classes têm dois construtores definidos. Exemplo:
• Integer(String i) e Integer(int i).
– Classes wrapper constroem objetos imutáveis: uma vez que um valor primitivo é atribuído ao objeto esse valor não pode ser alterado.
– Classes wrapper são úteis na conversão de tipos pois disponibilizam diversos métodos para isto (verificar API).