Programação Orientada a Objetos Prof. André Argeri [email protected] Ribeirão Preto, Agosto 2009 Apresentação da Disciplina Conteúdo Programático – Introdução à Linguagem de Programação Java • Estrutura Básica de um Programa Java • Tipos de Dados, Variáveis e Constantes • Operadores • Estruturas de Controle (Seleção e Repetição) • Métodos • Vetores e Matrizes • Fundamentos POO • • • • • Classes e Objetos Atributos e Métodos Construtores Herança e Polimorfismo Interfaces Apresentação da Disciplina • Objetivo Geral – Desenvolvimento de Aplicações utilizando a linguagem Java e Programação Orientada a Objetos Apresentação da Disciplina • Bibliografia – Sun Developer Network http://java.sun.com/javaee/ – DEITEL, H.M.; DEITEL, P.J. Java Como Programar 6ª Edição. São Paulo: Prentice Hall, 2005. – CORNELL, G. Core Java 2: Fundamentos – Volume 1; São Paulo: Markon Books, 2000. – BARNES, D.; KÖLLING, M. Programação Orientada a Objetos com Java (4ª Edição). São Paulo: Pearson, 2008. INTRODUÇÃO Máquina Virtual Java ou Java Virtual Machine (JVM) – Permite que aplicações Java “rodem” independente da plataforma na qual foram desenvolvidas • Multiplataforma – Cada Sistema Operacional (SO) possui sua própria JVM – Em linhas gerais funciona como “um computador dentro do seu computador” INTRODUÇÃO Máquina Virtual Java ou Java Virtual Machine (JVM) INTRODUÇÃO • Processo de Compilação/Execução de um programa Java – Compilador: javac – Interpretador: java • Exemplo – javac olamundo.java • Produz o arquivo olamundo.class – java olamundo INTRODUÇÃO O que você precisa para programar Java? – Java Development Kit • Java SE – Standard Edition – Aplicações Desktop – http://java.sun.com/javase/downloads/index.jsp • Java EE – Enterprise Edition – Web Services, Aplicações Web, Gerenciamento, etc. – http://java.sun.com/javaee/downloads/ • Java ME –Micro Edition – Aplicações Móveis (celular, pda, etc) – http://java.sun.com/javame/downloads/index.jsp INTRODUÇÃO - Ambiente de Programação • Eclipse: http://www.eclipse.org/ • NetBeans: http://www.netbeans.org/ http://www.netbeans.org/downloads/index.html • Bloco de notas • Entre outros INTRODUÇÃO • O que você precisa para rodar uma aplicação Java? – Java Runtime Environment (JRE) • http://java.sun.com/javase/downloads/index.jsp NetBeans – Criando Projetos Arquivo; Novo Projeto; Clique em próximo; Definir Nome do projeto (Ex01); Clique em finalizar; NetBeans – Codificação • Java é case sensitive; NetBeans – Executando Para rodar o projeto devemos clicar no botão play, ou pressionar a tecla F6; Note que quando executamos o projeto ele aparece logo abaixo (na saída); NetBeans – Conhecendo o ambiente • Editor – Code Completion • CTRL+Space • Exemplo: IF, FOR – Code Generation Dialogs • ALT+INSERT – Duplicar Linhas • CTRL+SHIFT + Up ou Down – Mover Linhas • ALT+SHIFT + Up ou Down - Renomear CTRL+R Exemplo: Variáveis Fundamentos • Convenções:Todos os nomes de classes em Java iniciam com uma letra maiúscula e tem uma letra maiúscula para cada palavra no nome da classe. Ex: NomeDaClasse • Estrutura Básica de um Programa Java – Importante!!! • O nome do arquivo .java deve ter o mesmo nome da classe. • Exemplo: – public class NomeDaClasse {} – Nome do arquivo NomeDaClasse.java Fundamentos • Estrutura Básica de um Programa Java – public class NomeDaClasse • Define o início da classe, todos os métodos que fazem parte da classe devem ser definidos entre o início “{“ (abre chave) e o fim “}” (fecha chave). – public static void main(String[] args) • Determina o ponto de início da execução da classe • É possível escrever classes sem o métodos main – No entanto para utiliza-lá é preciso instanciar esse classe em um outra classe que possua o método main • Um projeto pode ter um único método main Fundamentos Identificadores Válidos – Os identificadores em Java consistem em letras, dígitos, sublinhados (“_”) e sinais de cifrão (“$”), – Não podem iniciar com um digito – Não podem conter espaços em branco. – Identificadores válidos: – Valor1, $Valor1, _Valor1 – Identificadores inválidos: – 1Valor, Valor 1 Essa regra aplica-se a: Nome de classes, nome de variáveis e nome de métodos Fundamentos • Comentários – Múltiplas linhas: /* ... */ – Uma linha: // /* Este programa tem como objetivo principal a exibição na tela da mensagem "Olá Mundo!!!“ */ public class Main { // Início da Classe // Método Principal public static void main(String[] args) { // Escrita da mensagem na tela System.out.println("Olá Mundo!!! "); } } // Final da Classe Variáveis • A declaração de variáveis em Java utiliza o seguinte formato <tipodedados> <nomedavariável> • Exemplo: – int x; – float y; – double z; Constantes • As constantes em Java são declaradas através do modificador final e utilizam o seguinte formato final <tipodedados> <nomedaconstante> • Exemplo – final int x = 10; – final float valor = 1.58; Atribuição • Comandos de Atribuição – Utilizado para atribuir valores a variáveis, sendo representado pelo símbolo = (igual) • Exemplo 1: – x = 10; // atribui o valor 10 a variável x Tipos de Dados Primitivos Palavras Reservadas • Como em qualquer linguagem de programação, Java também possui um conjunto de palavras reservadas. • Essas palavras não podem ser utilizadas como nomes de identificadores, tais como: – Nome da classe – Nome de variável ou constante – Nome de métodos – Nome de objetos Palavras Reservadas Comandos de Saída São utilizados para exibição de informações na tela em modo console – Comandos • System.out.print • System.out.println • System.out.printf Comandos de Saída public class Main { public static void main(String[] args) { System.out.print("Eu estou "); System.out.print("programando em Java !!!"); } } Atividade: • Modifique o programa para utilizar a função println Comandos de Saída • Códigos de Barra Invertida – \n = nova linha – \r = enter – \t = tabulação (tab) – \b = retrocesso – \” = aspas – \\ = barra Atividade: • Modifique o programa para utilizar a função printf Comandos de Saída • Os comandos de saída também podem ser utilizados para exibição de informações através de caixas de diálogo Comandos de Saída /* * Para utilização do métodos JOptionPane é * necessária a inclusão do pacote abaixo. */ import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { JOptionPane.showMessageDialog(null,"Eu estou programando em Java!"); } } Pacotes • Os pacotes ou packages Java são um conjunto pré-definido de classes • Cada pacote tem um grupo de classes que possui algum tipo de relação. • Exemplo: – O pacote javax.swing possui classes para construção de interfaces gráficas. – A classe JOptionPane está dentro do pacote javax.swing Pacotes • Nomenclatura – Pacotes Principais (Core Packages) • Começam sempre com java • Fazem parte do Java SDK – Pacotes de Extensões (Extension Packages) • Começam com javax • São desenvolvidos pela Sun ou por outros programadores. Comandos de Entrada • São utilizados para leitura de informações do teclado. • Para o modo console a leitura pode ser feita através dos métodos do pacote java.util.Scanner • Scanner entrada = new Scanner( System.in ); – entrada.nextInt(); – entrada.nextFloat(); – entrada.nextDouble(); – entrada.next(); Comandos de Entrada import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner entrada = new Scanner( System.in ); int num1, num2, soma; System.out.print("Informe o primeiro número: "); num1 = entrada.nextInt(); System.out.print("Informe o segundo número: "); num2 = entrada.nextInt(); soma = num1+num2; System.out.print("Resultado = " + soma); } } Comandos de Entrada • A entrada de informações também pode ser feita através de Caixas de Diálogos. • Essas caixas estão disponíveis também no pacote javax.swing.JOptionPane Comandos de Entrada String str_n1, str_n2; int n1, n2, soma; str_n1 = JOptionPane.showInputDialog("Primeiro número: "); str_n2 = JOptionPane.showInputDialog("Segundo número: "); // conversao String-->Integer n1 = Integer.parseInt(str_n1); n2 = Integer.parseInt(str_n2); soma = n1+n2; JOptionPane.showMessageDialog(null,"Soma de " + n1 + " e " + n2 + " é igual a " + soma,"Resultado", JOptionPane.PLAIN_MESSAGE); Comandos de Entrada • Ícones para Caixas de Diálogo Exercícios 1 – Faça um programa para mostrar o resultado da multiplicação de 3 números. 2 – Faça um programa para mostrar o resultado de dois números. Exercícios 3 – Faça um programa para calcular o novo salário de um funcionário. Sabe-se que os funcionários que recebem atualmente salário de até R$ 500,00 terão aumento de 20%, enquanto os demais terão aumento de 10%. Exercícios 4 – Faça um programa que verifica se um número é par ou impar. 5 – Faça um programa que receba quatro números inteiros, calcule e mostre a soma desses números. (utilizar o comando for) Exercícios 6 – Faça um programa que calcule os seguintes dados: a – Calcular área. (altura * largura) b – Calcular perímetro. (2 * altura + 2 * largura) c – Mostrar os resultados obtidos. Exercícios 7 – Faça um programa que faça uma divisão entre dois números e mostre o número com duas casas decimais. 8 – Faça um programa que receba o salário base de um funcionário, calcule e mostre o salário a receber, sabendo-se que o funcionário tem gratificação de 5% sobre o salário base e paga imposto de 7% sobre esse salário. Exercícios 9 – Crie um programa que leia um número indeterminado de alunos. Você deve solicitar ao usuário o nome e as suas respectivas notas. Calcule a média e informe se ele está aprovado ou não, sendo a nota de aprovação sendo 7 Exercícios 10 – Escreva um programa que solicite ao usuário: – Nome completo String – Ano de Nascimento int – Sexo (M ou F) char – Salário float • Calcule e escreva na tela a seguinte saída: – Nome = João da Silva – Idade = 25 anos – Sexo = M – Salário = R$ 650,00