JAVA: Conceitos Iniciais Introdução à Programação Orientada a Objetos Programa = algoritmo em alguma linguagem de programação Programar é conceber o código que implementará o algoritmo na linguagem escolhida Comandos e declarações da linguagem de programação Estabelecimento dos dados que serão usados, como eles serão transformados e como serão apresentados Boa programação é: conceber alg. apropriado – conhecer bem a linguagem que irá descrevê-lo Introdução à Programação Orientada a Objetos Um programa em qualquer linguagem, é um texto em que são escritos as declarações e os comandos necessários à execução do algoritmo que o programa implementa. Programa fonte Deve ser traduzido para um texto equivalente escrito na forma de comandos binários Compilação: processo de tradução – resulta no código binário. Link-edição: liga o código binário a outros códigos de que ele necessita. Programa executável Introdução à Programação Orientada a Objetos Para ser processado, o programa executável deve ser carregado para a memória e colocado sob o controle de um ambiente de execução, que fará com que cada comando seja executado pelo processador. Este ambiente é influenciado pela arquitetura e pelo sistema operacional do computador Todo programa deve ter uma estrutura que permita definir seu início e fim. Ponto de entrada e termino bem definidos. Programas Convencionais A estrutura dos programas convencionais consiste em uma rotina principal e, opcionalmente, várias rotinas auxiliares. Cada rotina consiste em uma seqüência de comandos, com início e fim bem definidos. As rotinas auxiliares são utilizadas para melhor estruturar o programa. Ex: cálculos repetidos várias vezes no custo do processamento. São acionadas sempre que necessário. Ambiente de execução subordinado ao sistema operacional do computador no qual o programa é executado. Programas Orientados a Objetos Estrutura baseada no conceito de classe Cada classe contém declarações e comandos que, em conjunto, implementam o algoritmo do programa Comandos organizados na forma de métodos Todo programa pelo menos uma classe deve possuir um método principal (ponto de início da execução) Ambiente de execução oferecida pela JVM Simula uma máquina real, com políticas de execução próprias, capaz de executar os programas Java Estrutura de um Programa Java Um programa Java consiste em consiste em um conjunto de unidades de compilação. Cada unidade de compilação contém a especificação de classes e interfaces, juntamente com a declarações necessárias à compilação. Quando compiladas, essas unidades geram arquivos com códigos binários referentes às classes e interfaces nelas descritas. Especificação de uma classe: <DeclClasse>::= [<Modificadores>] class <Indent> [Super] [Interfaces] <{CorpoClasse}> Escrevendo Programas Java A especificação das classes que compõem um programa Java pode ser feita usando-se editores de texto comuns e deve ser salva com a terminação “.java” Cada arquivo representa uma unidade de compilação, podendo conter a especificação de uma ou mais classes e interfaces. A compilação é feita através do comando javac seguido do nome do arquivo que contém as classes que devem ser compiladas Para cada classe contida no arquivo o compilador gera um arquivo com código binário correspondente à classe Os arquivos binários são gerados com o nome da classe .class Arquivos binários tem seus comandos executados pela JVM Passos para execução de Programas Java 1. Digite, em um editor de texto, a especificação da classe 2. Salve o arquivo com o nome ProgPrimeiro.java 3. No mesmo diretório onde o arquivo recém-criado está armazenado inicie o processo de compilação digitando o comando javac ProgPrimeiro.java Passos para execução de Programas Java Se tudo correr bem, a compilação terminará sem mensagem de erro. E ao final, será gerado um arquivo de nome ProgPrimeiro.class que contém o código binário da classe declarada no arquivo ProgPrimeiro.java 4 - A execução de um programa começa com o comando java <Classe>, neste caso java ProgPrimeiro. // Classe é a identificação da classe principal Método Main Este método deve estar sempre presente em uma classe para que ela possa ser executada pela JVM, o mesmo possui a seguinte sintaxe: <MétodoMain>::= public static void main (String [] <IdArgs>) {[<CorpoMetodo>]} --public diz que o método é publico, é necessário para que a maquina virtual possa referi-lo --static – método estático podendo ser chamado sem o concurso de outro objeto --void – método não retorna valor -- main – identifica o método --nos parâmetros do método temos a declaração de vetor cujos elementos são cadeias de caracteres e cujo identificador, <IdArgs> é qualquer identificador Java válido Método Main Declarações válidas Classe Declara{ public static void main (String [] arg) { } } Classe Declara{ public static void main (String [] maR23) { } } Usando Classes e Objetos Os conceitos de classe e objetos são centrais para a programação orientada o objetos. Cada objeto pertence a uma classe e possui: identificação única - atribuída pelo ambiente no momento de criação e um conjunto de atributos que assumem valores que compõem o estado do objeto Especificação : descreve as características de cada objeto, inerentes a cada classe, em termos de atributos e métodos Usando Classes e Objetos Exemplo Faça um programa que permita o registro de jogos de futebol, com a definição dos times e dos gols de cada time e a impressão do resultado final. Para solucionar esse problema, concebemos um objeto para representar um jogo de futebol. Cada objeto deve possuir um estado capaz de armazenar os nomes de cada time e deve modificar a quantidade de gols de cada time, além de imprimir o resultado do jogo. 1. 2. 3. 4. 5. class Jogo { String timeA; String timeB; int golTimeA; int golTimeB; 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. void defineTimeA (String time){ timeA= time; } void defineTimeB(String time){ timeB= time; } void marcaGolA(){ golTimeA = golTimeA +1; } void marcaGolB(){ golTimeB = golTimeB +1; } void impResultado (){ System.out.println(timeA+” “+ golTimeA+” x timeB+” “+ golTimeB+” ) } } O algoritmo A idéia é que cada jogo que queremos representar o programa crie um objeto da classe jogo, use os métodos defTimeA e defineTimeB para registrar os nomes dos times e os métodos golTimeA e golTimeB para registrar os gols de cada time. Nosso primeiro programa OO Elaborar um programa que imprima no monitor de vídeo a frase “primeiro programa” Temos que ter um objeto capaz de realizar a operação de impressão. Neste caso basta solicitar ao objeto que imprima o texto “primeiro programa”. O método main de nosso programa deve conter então: Nosso primeiro programa OO (a) Criar um objeto capaz de imprimir texto (b) Solicitar ao objeto criado, usando como argumento o texto “primeiro programa”, que execute o método que imprime textos. Obs: Já existe no ambiente Java um objeto capaz de imprimir mensagens – System.out -- e este objeto ao executar o método println imprime no monitor de vídeo o valor de seu argumento Codificar, Compilar e Executar Codificação : Use um editor de texto para digitar o programa a seguir, salvando – o com o nome ProgPrimeiro.?? class ProgPrimeiro{ public static void main (String [] arg) { System.out.println (“Meu primeiro programa”); } Compilação: use o comando javac ProgPrimeiro para compilar o programa. Como resultado será criado o arquivo binário ProgPrimeiro.class Codificar, Compilar e Executar Execução: Use o comando java ProgPrimeiro para executar o programa e como resultado será impresso no vídeo a mensagem Meu primeiro programa.