Baixe o app para aproveitar ainda mais
Prévia do material em texto
LINGUAGEM DE PROGRAMAÇÃO AULA 1: INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA Nesta aula, você irá: 1.Identificar a importância das linguagens de programação; 2.Identificar as características da linguagem de programação java; 3.Conhecer os tipos de programas java; 4.Identificar os requisitos necessários para se programar; 5.Construir um ambiente de programação para a linguagem java; 6.Desenvolver pequenos programas com estruturas básicas. Introdução Às Linguagens De Programação Linguagem de Programação: Conjunto de regras sintáticas e semânticas, utilizados para se estabelecer comunicação entre o programador e o computador. São usadas para se escrever programas ou softwares. Métodos de implementação de Linguagens de Programação: É a forma como uma linguagem de programação se comunica (é entendida e executada) com o computador. O computador possui uma linguagem de máquina de nível baixo que oferece operações primitivas. O software de sistema deve criar uma interface com os programas de nível mais alto. O sistema operacional e as implementações de linguagens são dispostos em camadas sobre a interface de linguagem de máquina de um computador. Introdução ao Java Linguagem de programação orientada a objetos desenvolvida por um time de programadores, liderados por Patrick Naughton, Mike Sheridan e James Gosling, na empresa Sun Microsystems. Linguagem de Alto desempenho, suporta multithreading, compilação just-in-time e utilização de código nativo. É uma linguagem que é compilada para um “bytecode”, que é interpretada por uma máquina virtual – JVM. Principais características: PORTABILIDADE O Java pode ser executado em qualquer plataforma ou equipamento que possua um in terpretador Java e que tenha s ido especialmente compilado para o sistema a ser utilizado. ORIENTADA A OBJETOS Contém a sintaxe similar a linguagem C/C++, mas é baseada no modelo Simula67 SEGURANÇA Pode ser executado via rede, com restrições de execução, além de proteger o sistema do c l iente contra poss íve is a taques não intencionais. Por que estudar Java? • Orientação a Objetos: totalmente 00 - permitindo herança e reutilização de código de forma dinâmica e estática. • Dinamismo: permite ser aumentado durante a execução. • Facilidade: Derivada do C/C++ - Bem familiar. O ambiente ret i ra do programador a responsabilidade de gerenciar a memória e os ponteiros. Utilizações E Aplicações Do Java: • Desenvolvimento de aplicativos corporativos de grande porte • Desenvolvimento de aplicativos WEB • Fornecimento de aplicativos para dispositivos voltados para consumo popular (celulares, pagers, PDAs, etc.) • Muitos outros propósitos Funcionamento De Um Programa Java EDITOR É a escrita ou desenvolvimento do programa – código fonte. Faz-se necessário um editor de texto simples como o bloco de notas do Windows ou o vi do Linux. Existem os ambientes de desenvolvimento i n t e g r a d o ( I D E – IntegratedDevelopmentEnviroment) que fornecem muitas ferramentas de suporte ao processo de desenvolvimento de software em Java e outras linguagens. - NetBeans - Eclipse - JCreator - BlueJ COMPILADOR O compilador Java converte o código-fonte Java em bytecodes, que representam as tarefas a serem realizadas durante a fase de execução. Os bytecodes são executados pela Java Virtual Machine (JVM) – uma parte do JDK e a base da plataforma Java. A maquina virtual Java (VM – virtual machine) é um aplicativo de software que simula um computador, mas oculta o sistema operacional e o hardware subjacentes dos programa que interagem com a VM. CARREGADOR Todo programa deve ser colocado na memória antes de poder executar. O carregador de classe transfere os arquivos .class contendo os bytecodes do programa para a memória principal. O carregador de classe também carrega qualquer arquivo .class fornecido pelo Java que seu programa utiliza. Os arquivos .class podem ser carregados a partir de um disco em seu sistema ou em uma rede. VERIFICADOR Enquanto as classes são carregadas, o verificador de bytecode examina os códigos para assegurar que eles são válidos e não violam restrições de segurança do Java. O Java impõe uma forte segurança para certificar-se de que os programas Java que chegam pela rede não danifiquem os arquivos de sistema. INTERPRETADOR Execução A JVM executa o programa interpretando o bytecodes gerado na fase de compilação. Com isso, sequênc ias de ações espec i f i cadas pe lo programado são, enfim, executadas. Atualmente, as JVM utilizam uma combinação de interpretação e de compilação just-in-time (JIT). Nesse processo, a JVM analisa os bytecodes à medida que eles são interpretados. Procurando hot spots (pontos ativos) – parte dos bytecodes, que são executadas com frequência. Para essas partes, um compilador JIT, conhecido como compilador Java HotSpot, traduz os bytecodes para a linguagem de máquina do computador subjacente. Ambiente De Programação Em Java O ambiente de desenvolvimento de software Java, Java SDK (antigamente, JDK), é formado, essencialmente, por um conjunto de aplicativos que permite, entre outras tarefas, realizar a compilação e a execução de programas escritos na linguagem Java. Este ambiente pode ser baixado gratuitamente a partir do site da Sun Microsystems http://java.sun.com. As ferramentas básicas do kit de desenvolvimento Java são: • O compilador JAVA. javac • O interpretador de aplicações Java (máquina virtual),java. • O interpretador de applet Java, appletviewer. ENTENDENDO AS SIGLAS DO AMBIENTE JAVA: J2SE Java2 Standard Edition – Fornece as principais APIs e enfoca o desenvolvimento de aplicações na arquitetura Cliente – Servidor. Não permite distribuição de objetos nem oferece suporte a tecnologias para Internet. J2EE Java2 Enterprise Edition – Fornece um conjunto de APIs para o desenvolvimento corporativo e enfoca na integração entre sistemas. Disponibiliza alta distribuição de objetos e o ferece tota l suporte a tecnologias para Internet. J2ME Java2 Micro Edition – Fornece as APIs para o desenvolvimento de aplicações para compu tação móve l , em pequenos dispositivos ou tecnologias embarcadas. Tipos De Programas Java Stand - alone – Aplicações baseadas na J2SE que tem total acesso aos recursos do sistema, memória, disco, rede, dispositivos, etc. Java applets - Pequenas aplicações que não têm acesso aos recursos de hardware, necessitando de um navegador com suporte a J2SE para serem executados. Java servlets - Programas desenvolvidos para serem executados em servidores Web, baseados na J2EE, comumente usados para gerar conteúdos dinâmicos para websites. J a v a m i d l e t s - P e q u e n a s a p l i c a ç õ e s , extremamente seguras e construídas para serem executadas dentro do J2ME. JavaBeans - São componentes de software escritos em Java que podem ser manipulados visualmente com a ajuda de uma ferramenta de desenvolvimento. Construindo Um Ambiente Para Programação Em Java Para desenvolver programas em Java, precisamos obter o Kit de Desenvolvimento Java, que é gratuito e disponível para download no seguinte endereço: http://java.sun.com/javase/downloads/index.jsp Neste link, a Sun disponibiliza uma série de kit’s para cada perfil. Sugerimos o JDK – JRE. É necessário, ainda, que o usuário escolha a plataforma (o computador e sistema operacional) onde o kit será instalado. Para instalar, clique no arquivo baixado e siga as instruções do site para efetuar a correta instalação. Escrevendo E Executando O Primeiro Programa 1 . Abra o bloco de notas e digite o código public class PrimeiroPrograma{ public static void main(String args[]){ System.out.println(“Bem vindo ao Mundo Java”); } } 2 . Em Java, uma classe pública deve ser salva em um arquivo com o mesmo nome, com a extensão .java. Como nossa classe se chama PrimeiroPrograma, devemos salvar este arquivo como PrimeiroPrograma.java. Muita atenção com a caixada letra, pois o Java faz diferença entre letras maiúsculas e minúsculas. 3. Abra o prompt do DOS. Para compilar o código, iremos usar uma ferramenta SDK, o compilador javac. Isso faz com que o bytecode seja gerado. E s t e p r o c e s s o f a z c o m q u e o a r q u i v o PrimeiroPrograma.class seja gerado. 4. Observe na figura abaixo que estamos na pasta o n d e s a l v a m o s o n o s s o a r q u i v o PrimeiroPrograma.java. O comando javac foi executado, nenhum erro foi encontrado e foi gerado o arquivo PrimeiroPrograma.class. 5 . Para executar este código, temos que chamar a máquina virtual. Para isso, basta: java PrimeiroPrograma 6 . Observe que não há necessidade de colocar a extensão neste passo. Parabéns, você conseguiu executar seu primeiro programa! SÍNTESE DA AULA Nesta aula, você: • Compreendeu a importância das linguagens de programação; • Conheceu o ambiente de programa java; • Se familiarizou com os diversos tipos de plataformas java; • Entendeu o funcionamento de um ambiente java; • Aprendeu a montar um ambiente de programação e testes para a linguagem de programação java REGISTRO DE PARTICIPAÇÃO 1. Não é um ambiente de desenvolvimento de software Java. 1) JVM 2) J2SE 3) J2EE 4) J2ME 2. Escolha a opção que não é uma característica do Java. 1) Linguagem de programação estruturada 2) Portabilidade 3) Reutilização de código 4) Facilidade de entendimento por derivar de outras liguagens AULA 2 TIPOS DE DADOS E ESTRUTURAS BÁSICAS DE PROGRAMAÇÃO Nesta aula, você irá: 1.Identificar os tipos de dados primários; 2.Utilizar tipos de dados primitivos, variáveis simples; 3.Aplicar as estruturas de decisão em java; 4.Aplicar as estruturas de repetição em java; 5.Desenvolver, ler e interpretar pequenos programas java, com estruturas básicas e seus tipos de dados; AS CONVENÇÕES DO JAVA A linguagem de programação Java é “Case Sensitive”. Existem várias convenções utilizadas. São elas: • Nomes de variáveis e métodos começam com letras maiúsculas • Nomes de c lasses in ic iam com letras maiúsculas • Nomes compostos: utilizar letras maiúsculas para iniciais das palavras • Letras maiúsculas para constantes Comentários em Java Existem três formas de se inserir comentários: 1.// comentário em uma linha 2./* comentário em uma ou mais linhas */ 3./** Documento Comentário*/ Quando este tipo de comentário é colocado imediatamente acima da declaração (de uma função ou variável), indica que o comentário poderá ser incluído automaticamente em uma página HTML (gerado pelo comando javadoc - gerador de documentação do java) TIPOS DE DADOS EM JAVA O Java é uma linguagem de programação fortemente tipada, ou melhor, necessita que todas as variáveis tenham um tipo declarado. Existem 8 tipos primitivos. Seis deles são numéricos, um é o caractere e o último é o booleano. DECLARANDO E ATRIBUINDO VALORES A VARIÁVEIS A declaração de variáveis em Java exige que o tipo da variável seja declarado. Você inicia a declaração, indicando o tipo da variável e o nome desejado, como nos exemplos a seguir: int x, y; //declarando duas variáveis inteiras x = 6; //atribuindo valores a variáveis y = 1000; float f = 3,141516f; //ponto flutuante double w = 3,2310834; //ponto flutuante de dupla precisão char ch = ‘a’; //Caractere f inal int MAX = 9; Define a constante MAX com o valor de 9 OPERADORES ARITMÉTICOS E RELACIONAIS OPERADOR ARITMÉTICOS OPERADORES RELACIONAIS O operador ! é chamado de not ou negado. ESTRUTURAS BÁSICAS DE PROGRAMAÇÃO Os comandos da linguagem permitem controlar o fluxo do programa e expressões condicionais. BLOCOS Conjunto de linhas de códigos situadas entre um abre e um fecha chaves( {} ). É permitido criar blocos dentro de blocos. { //início de bloco ... /*bloco de comandos*/ ... } //fim de bloco ESCOPO DAS VARIÁVEIS Escopo de uma variável indica em que parte do código ou bloco de comandos do programa que podemos utilizar ou enxergar a variável. Existem variáveis locais e variáveis globais. O escopo define também quando a variável será criada e destruída da memória. As locais estão visíveis apenas dentro do bloco enquanto as globais estão disponíveis em qualquer bloco do programa. Observação: escopo é diferente de visibilidade, o qual se aplica as variáveis de classe e tem a ver com a utilização destas fora da classe. COMANDO CONDICIONAL Desvia o fluxo natural do programa de acordo com um teste lógico. if (expressão booleana) comando1 ou {bloco de comandos1} else comando2 ou {bloco de comandos2} Quando o programa encontra um comando if, a expressão booleana é avaliada. Caso a expressão seja verdadeira o comando 1 é executado e o comando 2 não. Caso a expressão seja falsa o comando 2 é executado e o comando 1 não. Vale lembrar que o else é opcional. Quando existe um conjunto de opções, podemos utilizar a estrutura switch-case switch(variável) { case(valor1):comando1;break; case(valor1):comando1;break; case(valor1):comando1;break; … default:comando_genérico; break; } Nesta estrutura, o programa avalia a variável. Caso o valor seja o valor1, o comando 1 é executado; caso seja o valor 2, o comando 2 é executado; e assim sucessivamente… Caso não seja encontrado o valor, o comando genérico é executado. DESVIO DE FLUXO Existem dois comandos de desvios de fluxo break continue; break; O comando termina a execução de um loop sem executar o resto dos comandos e força a saída do laço. continue; O comando termina a execução de um laço sem executar o resto dos comandos, voltando ao início do laço para uma nova iteração. ESTRUTURAS DE REPETIÇÃO OU LAÇO 1. while(expressão) comando ou {bloco de comandos} Enquanto a expressão for verdadeira, o comando será executado. Quando a expressão for falsa o programa segue para o seu caminho normal. 2. do comando ou {bloco de comandos} while(expressão); Faz o comando,, enquanto a expressão for verdadeira. Quando a expressão for falsa o programa segue para o seu caminho normal. A grande diferença entre o do-while e o while é que no laço do-while o programa executa pelo menos uma vez o comando do laço. 3. for(inicialização; expressão; incremento) comando ou {bloco de comandos} O comando for executa o laço enquanto a expressão for verdadeira, só que pode ser controlada por um contador. Esta expressão permite que o usuário inicialize e incremente o contador no controle do laço MANIPULANDO COM STRINGS Java é uma linguagem totalmente orientada a objetos. Então, todos os valores utilizados são objetos descritos por classes. Os tipos primitivos de dados permitem que possamos criar todos os tipos de objetos necessários para se implementar qualquer sistema. Um dos objetos mais utilizados é o String (com S maiúsculo porque, como vimos nas convenções, String é uma classe). String é uma sequência de caracteres. Ex.: String um = “Curso”; String dois = “Java”; ATENÇÃO Objetos da classe String não devem ser comparados usando os operadores relacionais, porque são objetos. Existem métodos especiais para executar tais funções. O objeto String em Java possui mais de 50 métodos diferentes. MANIPULANDO COM VETORES Vetores são estruturas utilizadas para armazenar um conjunto de dados do mesmo tipo. Esses podem ser de qualquer tipo, desde variáveis primitivas até objetos complexos. A sua alocação na memória é sempre contínua. CONVERSÃO ENTRE TIPOS DE DADOS Quando trabalhamos com expressões, o resultado de uma expressão pode ser de um tipo diferente dos seus operandos. Ou ainda, temos dois tipos de dados diferentes e queremos efetuar uma operação. Não é possível efetuar comparações ou operações com tipos diferentes. Para resolver este problema, podemos converter os tipos de dados. Existem, basicamente, dois tipos de conversões de dados. A conversão implícita e a explícita de dados. IMPLÍCITA O primeiro caso ocorre sem a necessidade do programadorinterferir. Os valores são convertidos automaticamente. Isso ocorre na conversão de inteiro para real, de números para strings ou com o uso de operadores unários. Ex.: double x; int i = 20; x = i; // x recebe um valor inteiro System.out.print(“i= ” + x); /* O valor de x é convertido para string e concatenado com a outra string para ser apresentada na tela */ EXPLÍCITA O segundo caso, o programador controla a conversão informando qual tipo será utilizado, através de um operador unário. Ex.: float eventos = 25.7; float dias = 7.2; x = (int) (eventos / dias); // O resultado é o inteiro 3, pois 25/3 é 3.57 Exercícios 1) Com o seu ambiente de programação Java, escreva o programa abaixo no bloco de notas, salve em uma pasta de trabalho. No prompt de comando, vá até a pasta de trabalho e compile (utilizando o javac) seu programa. Execute o programa (utiliza java <nome da classe>) e veja o resultado. Além disso, faça as alterações abaixo e veja o resultado: REGISTRO DE PARTICIPAÇÃO 1. O programa abaixo converte um inteiro em um byte. Qual o resultado apresentado como saída? Marque a opção correta. public class TesteConvByte{ public static void main(String args[]){ int l=300; byte b; b=(byte) l; System.out.println("O valor de b é "+b); } } 1) 300. 2) -300. 3) 44. 4) -44. AULA 3 INTRODUÇÃO AS INTERFACES GRÁFICAS Nesta aula, você irá: 1.Identificar e utilizar ides; 2.Utilizar netbeans; 3.Criar interfaces básicas, realizando operações simples; 4.Entender a hierarquia do pacote swing. Introdução As Ides IDE, do inglês Integrated Development Enviroment ou Ambiente Integrado de Desenvolvimento, é um software que engloba características e ferramentas para o desenvolvimento de programas. As IDEs facilitam a técnica de RAD que tem como principal objetivo a maior produtividade de seus desenvolvedores. Existem várias IDEs disponíveis. Abaixo, a lista de algumas IDEs RAD- Rap id App l i ca t i on Deve lopment – Desenvolvimento Rápido de Aplicativos. CONHECENDO A IDE NETBEANS O NetBeans é uma IDE gratuita e de código aberto, totalmente escrito em Java para desenvolvedores de software na linguagem Java, C/C++, PHP, Groovy, Ruby e muito mais. Por ser escrito em Java, é multi-plataforma, ou melhor, funciona em vários ambientes como Windows, Linux, Solaris e M a c O S . O N e t B e a n s I D E o f e r e c e a o s desenvolvedores ferramentas necessárias para criar aplicativos profissionais de desktop, empresariais, Web e móveis. Com projeto iniciado em 1996 por dois estudantes tchecos, teve como primeiro nome Xelfi, em alusão ao Delphi, porém foi totalmente desenvolvido em Java. Em 1999, o projeto já havia evoluído para uma IDE p ropr i e tá r i o , com o nome de NetBeans DeveloperX2, nome este que veio da idéia de reutilização de componentes, que era a base do Java. Nessa época, a empresa Sun Microsystems havia desistido de sua IDE Java Workshop e, procurando por novas iniciativas, adquiriu o projeto NetBeans DeveloperX2 ,incorporando-o a sua linha de softwares. Por alguns meses, a Sun mudou o nome do projeto para Forte for Java e o manteve por um bom tempo como software proprietário, porém, em junho de 2000, a Sun disponibilizou o código fonte do IDE NetBeans tornando-o uma plataforma OpenSource. Desde então, a comunidade de desenvolvedores que utilizam e contribuem com o projeto não parou de crescer, tornando-se uma das IDE´s mais populares atualmente. O NetBeans é considerado a melhor IDE para desenvolvedores iniciantes, pois, facilita o processo de programação, compilação e execução dos programas. Este sistema cria um ambiente completo de teste. O único problema é que para montar todo este ambiente, esta IDE exige uma configuração de hardware um pouco melhor, principalmente a quantidade de memória. Existem várias opções de download. A partir desta aula, iremos utilizar o NetBeans 6.9.1 Para fazer o Download da IDE, basta ir ao endereço: http://netbeans.org/ Utilizando o NetBeans Para utilizar o NetBeans, é necessário criar um projeto, e, para isto, siga os passos a seguir: 1º Passo: No menu Arquivo, clique em Novo projeto. 3º Passo: É aberta então a tela do NetBeans onde será criado o arquivo.java (arquivos fontes). 4º Passo: Note que, na janela pertencente à aba Main.java, está o método: public static main(String[] args){ //TODO code application logic here } Este é o método inicial, então escrevemos alguns comandos de maneira a realizar a primeira execução de um programa em Java. 5º Passo: Agora digite o código abaixo no método main. public static main(String[] args){ //TODO code application logic here int num1=2; int num2=8; int soma; soma = num1+num2; System.out.println(“A soma é %d\n”, soma); } 6º Passo: Com o código fonte digitado, vamos executar o projeto principal. Para isso, podemos utilizar a tecla de atalho – F6, ou apertar no botão executar. 7º Passo: Note na janela saída, na parte inferior da tela, a execução do projeto e a apresentação do resultado de modo semelhante ao que ocorria quando executávamos no terminal da console. Agora você está apto a executar um programa nesta IDE, basta explorar mais a ferramenta para tirar o máximo de proveito de seus recursos e facilidades. INTRODUÇÃO A CONCEPÇÃO DE INTERFACES GRÁFICAS Muitos dos programas conhecidos interagem com os usuários através da troca de informações. O meio pelo qual a parte humana solicita ao programa a execução de tarefas, alguma resposta, ou qualquer comunicação entre as partes é feito pela Interface. Muitas vezes confundida com o programa em si. A interface gráfica com o usuário (GUI) fornece a um programa um conjunto consistente de componentes intuitivos, familiarizando o usuário com as diversas funções e diminuindo o tempo de aprendizado da nova ferramenta. As GUIs são construídas a partir de componentes GUI, que são objetos com o qual o usuário interage através dos dispositivos de entrada, ou seja, o mouse, o teclado, a voz, etc. Imagine que construir interfaces consiste em colar adesivos em uma tela de vidro ou colocar componentes em um contêiner de componentes. Antes de tudo, é necessário possuir uma tela, que será representada pelos contêineres. Também dispor de adesivos de diversos tamanhos que podem ser distribuídos e anexados livremente pela superfície do vidro. Tais adesivos elementares serão os painéis. Além disso, dispor de adesivos mais elaborados que já estão pré-definidos com figuras de botões, rótulos, etc. Estes podem ser colados diretamente no vidro, ou sobre os outros adesivos rudimentares (painéis), tal qual é a nossa vontade, embora se limitando à capacidade do espaço físico disponível. Na imagem você pode ver alguns dos componentes que estudaremos mais a frente. CRIAÇÃO DE INTERFACES GRÁFICAS Em Java, as classes necessárias para criação de componentes gráficos, bem como para fornecer- lhes funcionalidade, estão agrupadas em dois grandes pacotes: java.awt (pacote do núcleo)e javax.swing (pacote de extensão). Os dois pacotes definem componentes com peculiaridades distintas e que serão discutidas a seguir. COMPONENTES SWING O pacote javax.swing foi criado em 1997 e inclui os componentes GUI que se tornaram padrão em Java a partir da versão 1.2 da plataforma Java 2. A maioria dos componentes Swing é escrita, manipulada e exibida completamente em Java, estes são conhecidos como componentes Java puros. Isso oferece a eles um maior nível de portabilidade e flexibilidade. Os nomes de tais componentes recebem um “J”, como, por exemplo: JLabel, JButton, JFrame, JPanel, etc. Tal peculiaridade se justifica para diferenciar esses componentes dos que serão mencionados logo adiante. Os componentes Swing fornecem funcionalidade e aparência uniforme em todas as plataforma, sendo denominada de aparência de metal. O Swing também fornece flexibilidade parapersonalizar a aparência e o comportamento dos componentes de acordo com o modo particular de cada plataforma, ou mesmo alterá-los enquanto o programa está sendo executado. As opções são a personalização com o estilo do Microsoft Windows, do Apple Macintosh ou do Motif (UNIX). metal look-and-feel COMPONENTES BÁSICOS O esquema a seguir mostra a maioria das classes que compõem o Java Swing e mostra também a relação entre as classes AWT (claro) e as classes Swing (escuro): PAINÉIS são áreas que comportam outros componentes, inclusive outros painéis. Em outras palavras, são elementos que fazem a intermediação entre um container e os demais GUI anexados. São criados com a classe JPanel, que é derivada da classe Container. A classe JPanel não tem painel de conteúdo como JFrames, assim, os elementos devem ser diretamente adicionados ao objeto painel. Além de agregar um conjunto de componentes GUI para fins de layout, pode-se criar áreas dedicadas de desenho e áreas que recebem eventos do mouse. Criando O Primeiro Formulário Componentes SWING import javax.swing.*; public class Frm01 { public void criaTela() { JFrame f= new JFrame(); f.setSize(290,100); f.setTitle("Cadastro"); f.setLocation(10,10); f.setDefaultCloseOperation(JFra me.EXIT_ON_CLOSE); f.setVisible(true); } } Componentes básicos public class TestaFrm01 { public static void main(String []args){ Frm01 tela = new Frm01(); tela.criaTela(); } } A saída deste programa é: O método setDefaultCloseOperation()também pode ser executado com outras constantes como argumento: • DISPOSE_ON_CLOSE - Destróia a janela • HIDE_ON_CLOSE - Apenas fecha a janela • DO_NOTHING_ON_CLOSE - Desabilita opção • EXIT_ON_CLOSE - Encerra a aplicação INSERINDO COMPONENTES NA TELA import javax.swing.*; public class Frm02 { public void criaTela() { //criando o Frame JFrame f= new JFrame(); f.setSize(300,100); f.setTitle("Cadastro de Categorias"); f.setLocation(150,200); f.setDefaultCloseOperation(JFrame.EXIT_O N_CLOSE); //criando o Painel JPanel pl = new JPanel(); pl.setLayout(null);// gerenciador de Layout //Criando os componentes: //Label JLabel meuLabel = new JLabel("Código"); meuLabel.setBounds(10, 10, 60, 20); // Campo de Texto JTextF ie ld meuCampoTexto = new JTextField(" "); meuCampoTexto.setBounds(80, 10, 60, 20); // Botão J B u t t o n m e u B o t a o = n e w JButton("NomeBotão"); meuBotao.setBounds(150, 10, 100, 20); //colando os componentes no Painel pl.add(meuLabel); pl.add(meuCampoTexto); pl.add(meuBotao); //colando o painel no frame f.add(pl); f.setVisible(true); } } Saída do programa: Nesta aula, você: • Identificou a importância das ides; • Utilizou uma IDE chamada netbeans; • Manipulou interfaces gráficas; • Desenvolveu e executou pequenos programas com interfaces gráficas e dentro de uma IDE. Registro de Participação 1. Contêineres, painéis e botões são componentes: 1) Interfaces com usuários. 2) Páginas HTML. 3) Apenas da AWT 4) GUI. AULA 4 PRINCÍPIOS DA ORIENTAÇÃO A OBJETOS Nesta aula, você irá: 1.identificar os conceitos básicos da Orientação a Objetos; 2.criar e manipular classes e objetos em Java; 3.utilizar interfaces gráficas interagindo com objetos e classes previamente definidos; 4.implementar classes e instanciar objetos em Java. INTRODUÇÃO CLASSES E OBJETOS Todo sistema orientado a objetos pode ser definido como um conjunto de objetos que trocam mensagens entre si. Então, quando programamos em Java, que é uma linguagem de programação orientada a objetos, estamos escrevendo ou definindo um conjunto de objetos que trocam mensagens. Bom, mas o que é um Objeto? O que é uma classe? O que é mensagens? As classes definem a estrutura e o comportamento de um tipo de objeto. Observe a figura abaixo: A classe Árvore define um arcabouço de qualquer tipo de árvore. Uma árvore real, será um objeto com a estrutura definida pela classe, mas os valores de cada árvore serão únicas. CLASSES Um protótipo que define os atributos e os métodos comuns a todos os objetos de um determinado tipo e da própria classe, com a finalidade de servir de molde para a criação de objetos. OBJETOS São a representação de uma entidade do mundo real, que tem identificador único, propriedades embutidas e a habilidade de interagir com outros objetos e consigo mesmo. Um objeto é uma instância de uma classe. A classe descreve todas as características e funcionalidades de um objeto. Modelamos os objetos através das classes. ABSTRAÇÃO • Extrair tudo que for essencial e mais nada para o escopo do sistema; • É o processo de filtragem de detalhes sem importância do objeto real, para que apenas as características apropriadas que o descrevam e que tenham relevância para o sistema permaneçam; • Conceito aplicado a criação de software baseado em objetos, partindo do princípio que devemos considerar a essência de cada objeto e não pensar em todos os detalhes de implementação; CLASSES E OBJETOS EM JAVA • Na caixa de dialogo do novo projeto, escolhemos um aplicativo Java • Um programa Java é uma coleção de objetos que são descritos por um conjunto de arquivos texto, onde são definidas as classes. Pelo menos uma destas classes é “public” e contém o método main(), que possui esta forma específica: public sta+c void main(String [] args) { // aqui o programador insere os comandos } Como vimos nas aulas anteriores todos os programas feitos tinham esta estrutura. E o nome da classe era o nome do arquivo. Então, podemos concluir que uma classe em Java é construída dentro de um arquivo texto com o mesmo nome da classe e extensão .java. javac Oi.java java Oi Nos comandos acima, o compilador Java compila o arquivo texto Oi.java, gerando o bytecode. A máquina virtual interpreta a classe Oi, quando o comando java Oi é executado. Lembro que a classe que contém o método main() é chamada de classe principal. ENCAPSULAMENTO • Mecanismo utilizado em orientação a objetos para obter segurança, modularidade e autonomia dos objetos; • Implementamos através da definição de visibilidade privada dos atributos; • Então, devemos sempre definir os atributos de uma classe como privados; • Este mecanismo protege o acesso direto aos dados do objeto; • Permite acesso através dos métodos públicos; NÍVEL DE ENCAPSULAMENTO • É a disponibilização de uma interface pública, com granularidade controlada, para manipular os estados e executar as operações de um objeto ( * acesso permitido ). Modificadores Mesma classe Mesmo pacote Subclasses Universo private * <sem modif> * * protected * * * public * * * * Em outras palavras, os atributos e métodos de um objeto podem ser escondidos de outros objetos por uma interface pública de métodos, de modo a impedir acesso indevidos. Para definir diferentes níveis de encapsulamento, faz-se uso do conjunto de modificadores de acesso disponíveis no Java para os membros de classe, com mostrado na tabela. Definindo uma classe em Java • São definidas através do uso da palavra-chave class. • Construindo uma classe: • [modif] class NomeDaClasse { // corpo da classe... } • A primeira linha é um comando que inicia a declaração da classe. Após a palavra-chave class, segue-se o nome da classe, que deve ser um identificador válido para a linguagem. O modificador modif é opcional; se presente, pode ser uma combinação de public e abstract ou final. A definição da classe propriamente dita está entre as chaves { e }, que delimitam blocos na linguagem Java. CORPO DA CLASSE 1.As variáveis de classe (definidascomo static), ordenadas segundo sua visibilidade: iniciando pelas public, seguidos pelas protected, pelas com visibilidade padrão (sem modificador) e finalmente pelas private. 2.Os atributos (ou variáveis de instância) dos objetos dessa classe, seguindo a mesma ordenação segundo a visibilidade definida para as variáveis de classe. 3.Os construtores de objetos dessa classe. 4.Os métodos da classe, geralmente agrupados por funcionalidade. CRIANDO OBJETOS EM JAVA • Toda classe possui atributos e métodos. Em especial, toda classe tem um construtor, que é um método responsável pela instanciação do objeto. • Este processo faz com que o objeto seja criado com as características desejadas. • O construtor é o responsável por alocar a memória do objeto. • A criação de um objeto se dá através da aplicação do operador new. ClasseNome objeto = new ClasseNome(); O método a direita do operador new é o construtor da classe ClasseNome. Podemos instanciar quantos objetos forem necessários. Contanto que guardemos a referência para o objeto em questão. A referência é como poderemos acessar aquele objeto. Caso um objeto não tenha mais nenhuma referência para ele, o coletor de lixo (garbage collector - GC) elimina o objeto, liberando a memória. ATRIBUTOS E MÉTODOS • Atributos – Eles representam as características de um objeto. Devem ser privados, para manter o encapsulamento. A definição de atributos de uma classe Java reflete de forma quase direta a informação que estaria contida na representação da classe em um diagrama UML. • Métodos – Os métodos representam as funcionalidades que os objetos podem desempenhar. São essencialmente procedimentos que podem manipular atributos de objetos para os quais o método foi definido. Além dos atributos de objetos, métodos podem definir e manipular variáveis locais; também podem receber parâmetros por valor através da lista de argumentos. ATRIBUTOS • A sintaxe utilizada para definir um atributo de um objeto é: [modificador] tipo nome [ = default]; • Onde: – modificador é opcional, especificando a visibilidade diferente da padrão (public, protected ou private); – tipo deve ser um dos tipos primitivos da linguagem Java ou o nome de uma classe; – nome deve ser um identificador válido da linguagem Java; – valor default é opcional; se presente, especifica um valor inicial para a variável. Métodos Os métodos representam as funcionalidades que o s o b j e t o s p o d e m d e s e m p e n h a r. S ã o essencialmente procedimentos que podem manipular atributos de objetos para os quais o método foi definido. Além dos atributos de objetos, métodos podem definir e manipular variáveis locais; também podem receber parâmetros por valor através da lista de argumentos. • A forma genérica para a definição de um método em uma classe é [modificador] tipo nome(argumentos) { corpo do método } • Onde: – o modificador (opcional) é uma combinação de: public, protected ou private; abstract ou final; e static. – o tipo é um indicador do valor de retorno, sendo void se o método não tiver um valor de retorno; – o n o m e d o m é t o d o d e v e s e r u m identificador válido na linguagem Java; – os argumentos são representados por uma lista de parâmetros separados por vírgulas, onde para cada parâmetro é indicado primeiro o tipo e depois (separado por espaço) o nome. Uma boa prática de programação é manter a f unc i ona l i dade de um método s imp l e s , desempenhando uma única tarefa. O nome do método deve refletir de modo adequado a tarefa realizada. Se a funcionalidade do método for simples, será fácil encontrar um nome adequado para o método. Como ocorre para a definição de atributos, a definição de métodos reflete de forma quase direta a informação que estaria presente em um diagrama de classes UML, a não ser por uma diferença vital: o corpo do método. Métodos de mesmo nome podem co-existir em uma mesma classe desde que a l ista de argumentos seja distinta, usando o mecanismo de sobrecarga Exemplo: public class Ponto2D { private int x; private int y; public Ponto2D(int a, int b) { x = a; y = b; } public double distancia(Ponto2D p) { double distX = p.x - x; double distY = p.y - y; r e t u r n Math.sqrt(distX*distX + distY*distY); } } • Neste exemplo, definimos a classe Ponto2D com dois atributos e dois métodos. Os atributos são, x e y enquanto os métodos são: • Ponto2D – Construtor • distancia – método que calcula a distância entre o ponto e um outro dado. Nesta aula, você: • Identificou o que é programação orientada à objetos; • Identificou classes e objetos; • Aprendeu a manipular classes e objetos em java; • Desenvolveu e executou pequenos programas com orientação a objetos. REGISTRO DE PARTICIPAÇÃO 1. Um atributo encapsulado deve ter o seguinte modificador: 1) Public. 2) Private. 3) Protected. 4) Não definida. 2. Em Orientação a Objetos, um objeto é: 1) um conjunto de classes do mundo real. 2) um conjunto de objetos que trocam mensagens entre si. 3) uma instância de uma classe. 4) um conjunto de atributos armazenados que troca mensagens com o mundo externo. AULA 5 HERANÇA Nesta aula, você irá: 1.Apresentar os conceitos de herança; 2.Criar e manipular classes e objetos que se relacionem através de herança; 3.Sobrecarga de métodos; 4.Utilizar interfaces gráficas, interagindo com objetos e classes previamente definidos; 5.Explorar o conceito de herança, sobrecarga de métodos, em exemplos e exercícios; Herança • Significa a capacidade de incorporar as características e as funcionalidades de uma classe. Assim como a herança de todas as operações e dados, você pode especializar métodos da super classe e especificar novas operações e dados, para refinar, especializar, substituir ou estender a funcionalidade da classe progenitora. • Uma classe define um conjunto de dados – Atributos – e um conjunto de métodos • Todos os objetos de uma classe mantêm o mesmo conjunto de atributos e métodos. • Através do mecanismo de herança, tendo definido uma classe base é possível criar classes derivadas que: – herdam os atributos e métodos da classe base – definem novos atributos e métodos – podem redefinir os métodos herdados TERMINOLOGIAS • Estender – Criar uma nova classe que herda todo o conteúdo da classe existente. • Superclasse – Uma classe progenitora ou base. • Subclasse – Uma classe filha que herda ou estende uma superclasse CLASSE ABSTRATA • Uma classe abstrata em Java define atributos e métodos. • Numa classe abstrata, um método pode ser definido com o modificador “abstract”. Nesse caso: – A classe abstrata não implementa os método abstratos. – As classes derivadas devem implementar os métodos abstratos. • Uma classe abstrata é utilizada quando deseja- se fornecer uma interface comum a diversos membros de uma hierarquia de classes. Os métodos declarados na classe abstrata serão implementados em suas subclasses, através de polimorfismo. • Imagine uma classe que no seu sistema, a uma funcional idade existente em todas as subc l a s ses que r se r ap resen tada na superclasse. Este método é definido na superclasse como Abstract. Nas subclasses, estes métodos serão implementados, cada um com a sua peculiaridade. NOTAS IMPORTANTES • Como visto anteriormente, subclasses podem redefinir (sobrepor) um método de sua superclasse. • Para indicar que um método de uma classe deve necessariamente ser redefinido em cada uma de suas subclasses devemos usar o modificador abstract. • Uma classe que contém um ou mais métodos abstratos deve ser declarada explicitamente como abstrata. Essa classe, no entanto, pode ter construtores e métodos concretos (não- abstratos). • Se uma classe é declarada como abstract, não podem ser criados objetos desta classe. • Se uma subclasse é derivada de uma superclasse que contém um método abstratoe se esse método abstrato não for redefinido na subclasse, esse método permanece abstract na subclasse. Com isso, a subclasse deverá ser declarada explicitamente como abstract. • Declarar um método como abstrato é uma forma de obrigar o programador a redefinir esse método em todas as subclasses para as quais se deseja criar objetos. • Como um método abstrato deve ser redefinido nas subclasses, na superclasse ele não precisa ter implementação alguma. VAMOS IMAGINAR A SEGUINTE HIERARQUIA DE CLASSES: • onde Chefe, PorComissao, PorItem e PorHora são classes finais. • Todas essas subclasses vão precisar redefinir o método ganha(). Como se tratam de tipos diferentes de empregado, cada um ganha de uma forma: – Chefe: salário fixo e predefinido; – PorComissao: valor fixo + comissão * vendas; – PorItem: valor por produção * quantidade produzida; – PorHora: valor por hora * total de horas trabalhadas. POLIMORFISMO • É a capacidade que os métodos de mesmo nome têm de efetuarem tarefas diferentes. • O mesmo método com várias formas. • Acontece de duas maneiras em Java: quando os métodos são definidos em função da classe que os utiliza (sobreposição) ou dos diferentes conjuntos de argumentos definidos para cada método (sobrecarga). • Uso do “this” – Chamada para outro construtor da mesma classe. É um excelente artifício para combinar código dos construtores. EXEMPLO public class Cliente () { private String nome; //campo de instância private int numConta; //campo de instancia public Cliente(String n, int c) //Construtor da Classe { nome = n; numConta = c; } } EXEMPLO 2 public class Cliente ( ) { private String nome; //campo de instância private int numConta; //campo de instancia public Cliente(String n) //Construtor 1 da Classe Cliente { this(n, 0) //Chama o Construtor 2 da própria classe } public Cliente(String n, int c) { nome = n; numConta = c; } public int getNumConta () { return numConta; } public void setNumConta (int numero) { numConta = numero; } } EXEMPLO 3 public class ClienteOuro extends Cliente { private double limiteChequeEspecial; //Atributo da Classe public ClienteOuro (String n, int c, double limite) { super(n, c ); //precisa ser primeiro comando método limiteChequeEspecial = limite; } } Nesta aula, você: •Identificou o conceito de herança em orientação a objetos; •Criou e manipulou classes e objetos através da herança; •Utilizou interfaces gráficas, interagindo com objetos e classes, previamente definidos; •Identificou os conceitos de sobrecarga de métodos; •Desenvolveu e executou pequenos programas com orientação a objetos. REGISTRO DE PARTICIPAÇÃO 1. A superclasse pode ser entendida como: 1) Uma nova Classe que herda todo o conteúdo da classe existente. 2) Uma Classe progenitora ou base. 3) Uma Classe filha que herda. 4) Uma Classe filha que estende a sua progenitora. 2. Podemos entender como Herança: 1) A utilização do classificador this. 2) Capacidade de isolar os atributos dos Métodos. 3) Capacidade de incorporar os dados e métodos de uma classe previamente definida. 4) Capacidade de utilizar as características da classe progenitora sem poder alterar suas características.
Compartilhar