A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC

Apresentações semelhantes


Apresentação em tema: "3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC"— Transcrição da apresentação:

1 3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC E-Mail: carlamw@inf.ufsc.br URL: http://moodle.inf.ufsc.br INE5402/5603-D (20072) - Programação Orientada a Objetos I

2 2 Tipos Referência Tipos ReferênciaTipos Referência – Todos os demais tipos de Java! – Definidos a partir de declarações de classes Quando uma variável em Java é declarada como sendo do tipo de uma classe, esta variável é considerada como sendo do tipo referência – Declaração e inicialização: String str = “Entendendo Strings”; Banco brasil = new Banco (“Brasil”); – Diferentemente das variáveis de tipos primitivos, que armazenam um valor, variáveis do tipo referência armazenam um ponteiro para um objeto em memória

3 3 Strings StringsStrings – São seqüências de caracteres delimitados por “” – Representadas por instâncias da classe String (pacotes java.lang) – Declaração e Inicialização: String saudacao = “Bom dia!”; Variável saudacao conterá um ponteiro (referência) para um objeto do tipo String que estará em memória e que “armazenará” a informação “Bom dia!” – Exemplo: String s1 = “string1”; String s2 = “string2”; String s3 = new String(“s1”); char data[] = { ‘a’, ‘b’, ‘c’ }; String cc = “ab”+ “cde”; – As strings podem ser concatenadas através do operador +

4 4 Strings Strings: ComparaçãoStrings: Comparação – Não use o operador == para comparar Strings – O operador == testa referências quando utilizado com objetos, ou seja, testa se os objetos “apontam” para mesma posição de memória – Use o método equals() da classe String – Use o método equalsIgnoreCase() da classe String se não for importante a caixa (maiúsculas ou minúsculas) String nome = “Lisa”; if(!nome.equals(“Bart”)) If(“Lisa”.equals(nome))

5 5 Classe Math Expressões MatemáticasExpressões Matemáticas – Os métodos da classe Math permitem realizar cálculos comuns necessários em expressões matemáticas. – Exemplos de chamadas de métodos da classe Math: Função raiz quadrada: double y = Math.sqrt(10.0); Função mínimo: double z = Math.min(x,10); Os métodos da classe Math são métodos estáticosOs métodos da classe Math são métodos estáticos – não necessitam de objetos da classe para sua chamada – você deve preceder as chamadas dos métodos com o nome da classe seguido de ponto

6 6 Classe Math Chamada de MétodosChamada de Métodos – Métodos podem ser chamados em declarações de variáveis ou como parâmetros de outros métodos float z = Math.sqrt(4.0*x); System.out.println(Math.sqrt(x+y*f)); A classe Math possui duas constantes importantes em programas matemáticos:A classe Math possui duas constantes importantes em programas matemáticos: – Math.E = 2.7282818284590452354 // valor base de logaritmos naturais – Math.PI = 3.14159265358979323846 // relação entre a circunferência e o diâmetro de círculos

7 7 Método abs( x ) ceil ( x ) cos( x ) exp( x ) floor( x ) log( x ) max( x, y ) min( x, y ) pow( x, y ) sin( x ) sqrt( x ) tan( x ) Exemplo pow (2.0, 7.0) é 128.0; pow (9.0,0.5) é 3.0 sin (0.0) é 0.0 sqrt (900.0) é 30.0; sqrt (9.0) é 3.0 tan (0.0) é 0.0 tangente trigonométrica de x (x em radianos) abs (23.7) é 23.7; abs (0.0) é 0.0; abs (-23.7) é 23.7 ceil (9.2) é 10.0; ceil (-9.8) é -9.0; cos (0.0) é 1.0 exp (1.0) é 2.718281828 floor (9.2) é 9.0; floor (-9.8) é -10.0 log (2.718282) é 1.0; log (7.389056) é 2.0 max ( 2.3, 12.7) é 12.7; max (-2.3;-12.7) é -2.3 min ( 2.3, 12.7) é 2.3; min (-2.3;-12.7) é -12.7 menor valor entre x e y (também em versões para float, int e long ) x elevado à potência y (x y ) seno trigonométrico de x (x em radianos) raiz quadrada de x método esponencial e x arredonda o valor de x para o maior inteiro menor que x logaritmo natural de x (base e) maior valor entre x e y (também em versões para float, int e long ) Descrição valor absoluto de x (tem versões para float, int e log ) arredonda o valor de x para o menor inteiro maior que x co-seno trigonométrico de x (x em radianos) Classe Math round( x ) round (9.2) é 9.0; round (-9.8) é -10.0 arredonda o valor de x inteiro mais próximo

8 Importando Pacotes Pacotes (Packages)Pacotes (Packages) – Conjunto de classes relacionadas é chamado de pacote Grupo de todos os pacotes é conhecido como biblioteca de classe java ou Java API (Java applications programming interface) – Scanner está no pacote java.util – Os nomes dos pacotes Java começam com Java (pacotes do núcleo da linguagem) ou Javax (extensões ao núcleo) 8

9 9 Importando Pacotes Exemplos de pacotes Java:Exemplos de pacotes Java: – java.lang: Tipos e funcionalidades básicas da linguagem. Inclui, entre outras, as classes String, Math, Integer e Thread. É importada automaticamente em seus programas Java; – java.util: classes para tarefas gerais, tais como vetores e string de tokens. – java.net: recursos de rede (sockets e URLs); – java.io: classes para escrita e leitura em arquivos; – java.awt: componentes gráficos originais da linguagem (Abstract Window Toolkit); – javax.swing: pacote de extensão aos componentes gráficos com melhoramentos à biblioteca AWT – java.applet: classes específicas para tratamento de applets;

10 10 Importando Pacotes Nome completo de uma classe: nome do pacote + nome da classeNome completo de uma classe: nome do pacote + nome da classe – Ex.: java.lang.String -> nome completo da classe String Sentença import:Sentença import: – Permite a utilização de membros de pacotes sem a necessidade de referenciá-los a partir do seu nome completo – import ; A importação pode ser de:A importação pode ser de: – Apenas um membro do pacote Ex.: import java.util.Scanner; – Todos os membros do pacote Ex.: import java.util.*; Se não forem usadas todas as classes desse pacote, o compilador vai descobrir quais foram as classes usadas e as importá-las em tempo de compilação – O pacote java.lang é sempre importado import java.lang.*;

11 11 Leitura do Teclado Para ler de forma confortável texto do canal de entrada padrãoPara ler de forma confortável texto do canal de entrada padrão – É preciso criar primeiro um Scanner passando o canal System.in que esta associado ao teclado Para cada um dos tipos primitivos há um método correspondente com a assinatura nextXxx() que retorne um valor desse tipo.Para cada um dos tipos primitivos há um método correspondente com a assinatura nextXxx() que retorne um valor desse tipo. – Se a string não puder ser interpretada como sendo deste tipo, é lançado uma exceção do tipo InputMismatchException. Exemplos de algumas leituras de tokens:Exemplos de algumas leituras de tokens: – String aToken = input.next() ; //Lê um token string – int num1 = input.nextInt() ; //Lê um token inteiro – double num2 = input.nextDouble() ; //Lê um token real – String linha = input.nextLine() ; //Lê uma linha Scanner input = new Scanner(System.in);

12 12 Impressão Formatada dados formatados printfprintf – Primeiro argumento é a string formatada (texto fixo e especificadores de formato) – Especificadores de formato começam com (%) e são seguidos por um caractere que representa o tipo de dado %s para uma string –System.out.printf( "%s\n%s\n", " Bem vindo", " a Java!" ); %d para um decimal %f para um número ponto flutuante System.out.printf( "A soma eh %d\n", soma ); // apresenta soma

13 13 Exemplo: Soma // Programa de adição que apresenta a soma de dois números. import java.util.Scanner; // programa usa a classe Scanner da package java.util public class Soma { // método main inicia a execução da aplicação Java public static void main( String args[] ) { // cria objeto da classe Scanner para obter entradas do teclado Scanner input = new Scanner( System.in ); Scanner input = new Scanner( System.in ); int numero1; // declara variável: primeiro numero a somar int numero2; // declara variável: segundo numero a somar int soma; // declara variável: soma de numero1 com numero2 System.out.print( "Digite o primeiro inteiro: " ); // prompt System.out.print( "Digite o primeiro inteiro: " ); // prompt numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner numero1 = input.nextInt(); // lê primeiro número via método nextInt da classe Scanner System.out.print( "Digite o segundo inteiro: " ); // prompt System.out.print( "Digite o segundo inteiro: " ); // prompt numero2 = input.nextInt(); // lê segundo numero numero2 = input.nextInt(); // lê segundo numero soma = numero1 + numero2; // adiciona números soma = numero1 + numero2; // adiciona números System.out.printf( "A soma eh %d\n", soma ); // apresenta soma System.out.printf( "A soma eh %d\n", soma ); // apresenta soma } // fim do metodo main } // fim da classe Soma

14 14 Exercícios Exercício 1Exercício 1 – Escreva um programa que calcula a média de três números reais digitados pelo usuário Utilize a classe Scanner e printf

15 15 Caixa de Dialogo: Caixa de Mensagem Classe JOptionPaneClasse JOptionPane – Oferece caixas de diálogo pré-empacotadas que permitem aos programas apresentarem janelas contendo mensagens para o usuário – Faz parte do pacote javax.swing Pacote que contém várias classes que ajudam o programador a criar GUIs (Graphical User Interfaces) // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialogo1 { public static void main( String args[] ) { // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null, " Bem vindo\na\nJava" ); }}

16 16 Caixa de Dialogo: Caixa de Mensagem Classe JOptionPaneClasse JOptionPane – Método JOptionPane.showMessageDialog Método estático: não requer a instanciação de um objeto Argumentos –Primeiro usado para posicionamento na tela »Null para colocar a caixa no centro da tela do frame default –Segundo é a String a apresentar // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialogo1 { public static void main( String args[] ) { // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null, " Bem vindo\na\nJava" ); }}

17 17 Caixa de Dialogo: Caixa de Mensagem Classe JOptionPaneClasse JOptionPane – Método JOptionPane.showMessageDialog Argumentos –Primeiro usado para posicionamento na tela »Null para colocar a caixa no centro da tela do frame default –Segundo é a String a apresentar –Terceiro é o título da janela –Quarto é o tipo de mensagem // Imprime linhas na caixa de dialogo import javax.swing.JOptionPane; // importa classe JOptionPane public class Dialogo2 { public static void main( String args[] ) { // apresenta um dialogo com a mensagem JOptionPane.showMessageDialog( null, "Bem vindo\na\nJava", "Titulo", JOptionPane.INFORMATION_MESSAGE); "Titulo", JOptionPane.INFORMATION_MESSAGE);}}

18 18 Caixa de Dialogo: Digitando texto Classe JOptionPaneClasse JOptionPane – Método JOptionPane.showInputDialog import javax.swing.JOptionPane; public class BoasVindas { public static void main( String args[] ) { // solicita a digitação do nome String nome = JOptionPane.showInputDialog("Qual é seu nome?" ); // cria a mensagem // cria a mensagem String mensagem = String.format("Bem vindo, %s, a Desenvolvimento orientado a objetos!", nome ); // Apresenta a mensagem de boas vindas JOptionPane.showMessageDialog( null, mensagem ); }}

19 19 Caixa de Dialogo: Digitando texto Método showInputDialog()Método showInputDialog() – Variáveis informadas aos programas Java são sempre Strings que devem ser convertidas. – Erros de entradas inesperadas (tipos incompatíveis com as conversões) devem ser tratados pelo usuário (veremos como em tratamento de exceções). import javax.swing.JOptionPane; public class EntradaInteiro { public static void main( String args[] ) { // solicita a digitação de um inteiro String sInt = JOptionPane.showInputDialog("Digite Inteiro?" ); // recupera a informação como um numero inteiro // recupera a informação como um numero inteiro int numero = Integer.parseInt( sInt); }}

20 20 Exercícios 2.Modifique o programa de adição de maneira a utilizar entradas baseada em diálogos com JOptionPane ao invés de usar entrada baseada em console 3.Escreva uma instrução (ou comentário) para realizar cada uma das seguintes tarefas: a)Declarar as variáveis x,y e z e resultado como tipo int b)Declarar as variáveis xVal, yVal e zVal como do tipo String c)Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em xVal d)Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em yVal e)Solicitar ao usuário para inserir o 1o valor, ler o valor e armazenar em zVal f)Converter xVal em um int e armazenar o resultado na variável x g)Converter yVal em um int e armazenar o resultado na variável y h)Converter zVal em um int e armazenar o resultado na variável z i)Computar o produto dos três inteiros contidos em x,y e z e atribuir o resultado à variável resultado j)Exibir um diálogo contendo a mensagem “O Produto é” seguindo do valor da variável resultado k)Retornar um valor a partir do programa para indicar que o mesmo foi finalizado com sucesso.

21 21 Estrutura de Seleção if SintaxeSintaxe if (condição) comando Java; [ou {bloco de comandos Java;}] Exemplo:Exemplo: Se a média das notas do aluno for maior ou igual a 6 Imprimir “Aprovado” if (media >= 6) System.out.println(“Aprovado”); System.out.println(“Aprovado”); if (media >= 6) { System.out.print(“O Aluno está”); System.out.print(“O Aluno está”); System.out.println(“Aprovado”); System.out.println(“Aprovado”);} Media >=6 Imprimir “Aprovado” verdadeiro falso

22 22 Estrutura de Seleção if

23 23 Operadores Lógicos Operador Condicional AND (&&)Operador Condicional AND (&&) – Usado para testar se duas condições são verdadeiras Operador Condicional OR (||)Operador Condicional OR (||) – Usado para testar se uma das condições são verdadeiras Adotam circuito curtoAdotam circuito curto – AND: Verifica segundo operando apenas se o primeiro é verdadeiro – OR: Verifica segundo operando apenas se o primeiro é falso if (sexo == MASC) && (idade >= 65) ++homemIdoso; if (media >= 6) || (recuperacao >= 6) ++numAprovados;

24 24 Operadores Booleanos AND (&) e OR (|)AND (&) e OR (|) – Similar aos operadores lógicos, com uma exceção: os operadores lógicos boleanos sempre avaliam os dois operandos – Útil para evitar efeitos colaterais no circuito curto quando existir modificação de valores de variáveis no segundo operando Garante que ++idade >= 60 será avaliado e a idade será incrementada if (vendido == true) | (++idade >= 60)

25 25 Estrutura de Seleção if/else SintaxeSintaxe if (condição) comando Java; [ou {bloco de comandos Java;}] else comando Java; [ou {bloco de comandos Java;}] System.out.print(“O Aluno está”); if (media >= 6){ System.out.println(“ Aprovado”); } // fim do bloco if else { System.out.println(“ Reprovado”); } // fim do bloco else Media >=6 Imprimir “Aprovado” verdadeiro falso Imprimir “Reprovado”

26 26 Estrutura de Seleção if/else Estrutura aninhadaEstrutura aninhada Media >=9 A verdadeiro falso Media >=7 B verdadeiro falso Media >=6 C verdadeiro D falso if (media >= 9) System.out.print(“O Conceito é A”); System.out.print(“O Conceito é A”); else if (media >= 7) System.out.print(“O Conceito é B”); System.out.print(“O Conceito é B”); else if (media >= 6) System.out.print(“O Conceito é C”); System.out.print(“O Conceito é C”);else System.out.print(“O Conceito é D”); System.out.print(“O Conceito é D”);

27 27 Exemplo: Estrutura if // Compara inteiros usando a estrutura de controle if, operadores relacionais // e operadores de igualdade. import java.util.Scanner; // programa usa a classe Scanner public class Compara { // método main inicia a execução do programa Java public static void main( String args[] ) { // cria objeto Scanner para obter entradas do teclado Scanner input = new Scanner( System.in ); int numero1, numero2; // primeiro e segundo numero a comparar System.out.print( "Digite primeiro numero: " ); // prompt numero1 = input.nextInt(); // lê o primeiro numero System.out.print( "Digite segundo numero: " ); // prompt numero2 = input.nextInt(); // lê o segundo numero

28 28 Exemplo if ( numero1 == numero2 ) System.out.printf( "%d == %d\n", numero1, numero2 ); if ( numero1 != numero2 ) System.out.printf( "%d != %d\n", numero1, numero2 ); if ( numero1 < numero2 ) System.out.printf( "%d < %d\n", numero1, numero2 ); if ( numero1 > numero2 ) System.out.printf( "%d > %d\n", numero1, numero2 ); if ( numero1 <= numero2 ) System.out.printf( "%d <= %d\n", numero1, numero2 ); if ( numero1 >= numero2 ) System.out.printf( "%d >= %d\n", numero1, numero2 ); } // fim do método main } // fim da classe Compara


Carregar ppt "3. Conceitos Básicos de Programação 4. Desenvolvimento de Programas Orientados a Objetos Carla Merkle Westphall INE-CTC-UFSC"

Apresentações semelhantes


Anúncios Google