(Parte 1 de 3)

Java: Introdução

Prof. Cláudio Luís V. Oliveira prof.claudioluis@fatecjd.edu.br

Java: Introdução

Prof. Cláudio Luís V. Oliveira prof.claudioluis@fatecjd.edu.br

Linguagens de Programação1
Visão Geral da Linguagem de Programação Java4
Ambientes de Desenvolvimento5
Conceitos Fundamentais da Orientação a Objetos8
Representação dos Dados12
Estrutura de um Programa Java14
Entrada e Saída de Dados15
Implementação das Estruturas de Controle16
Utilização de Vetores e Matrizes em Java2

Sumário Coleções ................................ ................................ ................................ ... 24

Java: Introdução – Prof. Cláudio Luís V. Oliveira 1

Java: Introdução

Prof. Cláudio Luís V. Oliveira prof.claudioluis@fatecjd.edu.br

Linguagens de Programação

Conforme ilustrado pela figura abaixo, a solução computacional de um determinado problema passa por duas etapas distintas que são a solução algorítmica, que foi o assunto abordado nesta obra até este momento, e o programa de computador, assunto que passaremos a discutir a partir deste tópico, com foco na utilização da linguagem de programação Java.

A elaboração de programas de computador nem sempre foi um tarefa simples. Nos primeiros computadores (décadas de 1940 e 1950) a tarefa de programação exigia profundos conhecimentos dos circuitos eletrônicos do equipamento utilizado, além disso, os programas escritos eram exclusivos para determinado equipamento. Neste contexto, eram utilizadas as linguagens de programação de baixo nível, também conhecidas como linguagem de montagem ou Assembly.

Abaixo podemos visualizar um exemplo de programa utilizando o

Java: Introdução – Prof. Cláudio Luís V. Oliveira 2

Assembly para a arquitetura Intel/AMD x86 de 16 bits:

org 100h mov dx,msg mov ah,9 int 21h mov ah,4Ch int 21h msg db 'Ola pessoal!',0Dh,0Ah,'$'

Nas décadas seguintes, com a evolução e barateamento dos componentes eletrônicos dos computadores, começam a surgir linguagens de passam a apresentar instruções independentes do hardware. Estas linguagens chamadas de linguagens programação de alto nível apresentam, como instruções, palavras utilizadas em línguas faladas, normalmente o inglês. A criação de programas de computador torna-se mais acessível e não é mais necessário o conhecimento de eletrônica. As linguagens de programação como Pascal, Cobol, C e Java dentre muitas outras podem ser citadas como exemplos de linguagens de programação de alto nível.

Desta forma, no exemplo a seguir temos o mesmo programa que foi apresentado anteriormente em Assembly, porém, desta vez, escrito em uma linguagem de programação de alto nível, mas especificamente a Linguagem C:

#include <stdio.h> main () { printf (“Olá pessoal!\n”); }

Neste momento é importante observar que as instruções de um programa escrito, em uma linguagem de programação de alto nível, não são reconhecidas pelo hardware do computador. Desta forma, torna-se necessário passar por um processo de “tradução” dessas instruções para um conjunto de instruções, que são efetivamente reconhecidas pelo hardware, este processo denomina-se compilação. Ou seja, considerando o exemplo acima em Linguagem C, o mesmo deverá ser compilado para dar origem a um programa de computador o qual poderá ser executado pelo computador.

Java: Introdução – Prof. Cláudio Luís V. Oliveira 3

Uma característica deste tipo de linguagem de programação é gerar um programa executável que é dependente de plataforma, ou seja, o programa apenas pode ser executado na arquitetura de hardware e no sistema operacional no qual foi compilado.

Considerando o exemplo anterior, poderíamos ter o mesmo programa desenvolvido utilizando a linguagem de programação Java:

public class Exemplo { public static void main (String args[])

{ System.out.println (“Olá pessoal!”); }

A linguagem de programação Java apresenta uma abordagem independente de plataforma, na qual após a compilação do código-fonte são gerados bytecodes, que consiste em um conjunto de instruções intermediárias entre a linguagem de programação e as instruções em código de máquina. Os bytecodes são similares a código de máquina, entretanto, não são específicos para um tipo particular de arquitetura de computador, de forma que programas em Java podem ser executados em arquiteturas distintas sem a necessidade de serem recompilados.

No momento da execução da aplicação os bytecodes são convertidos pela Java Virtual Machine (JVM) em código de máquina. Desta forma, os bytecodes podem ser executados em qualquer plataforma ou Sistema Operacional que possua uma JVM suportada.

Java: Introdução – Prof. Cláudio Luís V. Oliveira 4

Visão Geral da Linguagem de Programação Java

A linguagem de programação Java foi criada pela Sun Microsystems que, posteriormente, foi adquirida pela Oracle. O objetivo inicial do projeto era a criação de um software para produtos eletrônicos. Porém, as linguagens de programação existentes até então não eram adequadas, pois os programas escritos nestas linguagens têm de ser recompilados para cada microprocessador utilizado. Quando um novo processador é lançado grande parte dos programas devem ser recompilados para extrair o máximo de recursos deste novo processador.

Estruturalmente Java é considerada uma linguagem de alto nível, orientada a objetos, sendo sua sintaxe muito similar ao C++, sendo amplamente utilizada para o desenvolvimento dos mais diversos tipos de aplicações e também para uma grande variedade de plataformas. A seguir temos algumas de suas principais características:

Orientação a Objetos: O código Java é organizado em classes. Cada classe define um conjunto de métodos, e a partir destes métodos pode-se formar o comportamento de um objeto. Uma classe pode herdar comportamentos de outra classe. Com exceção de tipos simples, como números e variáveis booleanas, a maior parte das coisas em Java são objetos.

Tipos de Dados Estáticos: Em um programa Java todo objeto deve ser definido antes de utilizado.

Diversidade de Tipos de Aplicações: A linguagem Java permite a criação de aplicações console (modo texto), gráficas (AWT e SWING), para a Internet (Applets, Servlets e JSP Java Server Pages) e para dispositivos portáveis ou móveis (J2ME).

Independência de Arquitetura: Como já explicamos anteriormente os programas Java são compilados em bytecodes, desta forma os programas podem rodar em qualquer plataforma que suporte Java, sem a necessidade de serem recompilados. A linguagem Java é a mesma em qualquer computador. Por exemplo, tipos de dados simples não variam: um inteiro tem sempre 32 bits e um inteiro longo tem sempre 64 bits.

Java: Introdução – Prof. Cláudio Luís V. Oliveira 5

Ambientes de Desenvolvimento

O NetBeans é uma opção de ambiente para desenvolvimento de aplicações em Java com distribuição gratuita. Está disponível para download no endereço http://www.oracle.com/technetwork/java/javase /downloads/index.html. O NetBeans necessita da instalação do Java Development Kit (JDK), também disponível no mesmo endereço.

Figura 1: Janela de Abertura do IDE NetBeans

O NetBeans é um tipo de programa chamado de IDE, do inglês

Integrated Development Environment ou Ambiente Integrado de Desenvolvimento, pode ser entendido como um programa de computador que reúne características e ferramentas de apoio ao desenvolvimento de programas como, por exemplo, editor de texto, compilador, debugger e ambiente de execução entre outras.

Após iniciar o programa deve-se criar um projeto. Para isso, é necessário escolher a opção do menu File e depois New Project, conforme Figura 2 a seguir.

Java: Introdução – Prof. Cláudio Luís V. Oliveira 6

Figura 2: Construindo novo projeto na IDE NetBeans

A seguir, conforme Figura 3, o primeiro passo consiste em escolher o tipo de aplicação que será gerada, neste exemplo será criada um Aplicativo Java, em seguida o botão Próximo deverá ser pressionado.

Figura 3: Escolhendo o tipo de aplicação na IDE NetBeans

Esta próxima janela irá permitir a definição do nome do projeto, a localização dos arquivos e a definição da classe principal, ou seja, aquela que irá conter o método main e que será executada quando o programa for iniciado.

Java: Introdução – Prof. Cláudio Luís V. Oliveira 7

Após preencher esses campos deve-se pressionar o botão Finalizar.

Agora será exibido um modelo básico de aplicação, conforme Figura 4 a seguir, no qual deverão ser digitadas as instruções do programa que será desenvolvido.

Figura 4: Interface da IDE NetBeans para programação em Java

Digite dentro do método main a seguinte instrução sem se preocupar, por enquanto, com a sua função:

System.out.println("Olá pessoal!");

Salve o programa e depois a compilação da aplicação deve ser realizada utilizando-se a opção do menu Depurar e depois Depurar Projeto Principal (F11).

Para executar a aplicação a opção do menu Executar e Executar

Projeto Principal deverá ser usada, sendo que o resultado da aplicação (F6), quando em modo console, será exibida na janela posicionada na parte inferior do NetBeans, conforme ilustrado pela Figura 5 a seguir.

Figura 5: Resultado de compilação na IDE NetBeans

Java: Introdução – Prof. Cláudio Luís V. Oliveira 8

Conceitos Fundamentais da Orientação a Objetos

O paradigma de Orientação a Objeto trouxe uma nova forma de projetar e de desenvolver programas de computadores. Enquanto que o projeto e a programação estruturada focam a redução dos problemas computacionais a apenas três estruturas básicas, que é sequência, decisão e interação, e na qual, procedimentos, funções e estruturas de dados apresentam ligações e relacionamentos tênues. Por outro lado, a Orientação a Objeto estabelece um forte relacionamento entre os diversos componentes de um determinado problema computacional através da adoção de dois conceitos chave: classe e objeto.

Na programação orientada a objetos implementa-se um conjunto de classes que permitem a definição dos objetos presentes no projeto do sistema.

Cada classe tem por objetivo determinar o comportamento, que são definidos pelos métodos, e estados possíveis, descritos pelos atributos que compõem e caracterizam os objetos, além de permitir a definição do relacionamento com outros objetos.

Conforme mencionado acima, a orientação a objeto, pode ser entendida através da definição de dois dos elementos chave:

O primeiro é o conceito de classe, que pode ser entendido como a descrição de um ou mais objetos através de um conjunto uniforme de atributos e métodos;

O segundo conceito é o do próprio objeto, que pode ser definido como uma abstração de algo que existe dentro do domínio de um problema ou na sua implementação, sendo que todo objeto é a instância de uma classe. Ilustrando estes conceitos, considere uma determinada classe chamada pessoa, os objetos dessa classe são os indivíduos que a compõem, por exemplo, José e Maria entre outros.

Desta forma, em síntese, podemos definir:

Classe: determina o comportamento dos objetos, que são definidos pelos métodos, e estados possíveis, descritos pelos atributos que

Java: Introdução – Prof. Cláudio Luís V. Oliveira 9 compõem e caracterizam esses objetos;

Objetos: pode ser entendido como uma abstração de algo que existe dentro do domínio de um problema ou na sua implementação, sendo que todo objeto é a instância de uma classe.

Para um perfeito entendimento da orientação a objeto torna-se necessário definir os demais elementos que compõem a classe:

Atributo: define um conjunto padrão de características específicas para uma determinada classe. Os valores (estados) que estes atributos recebem, quando a classe é instanciada, permitem caracterizar um objeto. Considerando uma determinada classe pessoa, os atributos poderiam ser nome, endereço e telefone entre outros.

Método: solicitação a um objeto invocando um de seus métodos, método este que ativa um determinado comportamento descrito pela classe que deu origem ao objeto em questão. Usando como exemplo a classe pessoa, poderíamos definir métodos para alterar o nome, o endereço ou o telefone de determinado indivíduo.

Método Construtor: é um método especial, que deve apresentar o mesmo nome da classe, sendo executado somente no momento em que o objeto é criado, ou seja, quando uma classe é instanciada.

Encapsulamento: consiste na separação de características internas e externas de um determinado objeto. Este recurso é comumente utilizado para evitar o acesso direto aos atributos desse objeto, permitindo desta forma que apenas os métodos consigam alterar esses atributos. O encapsulamento é implementado através da definição da “visibilidade” de atributos e métodos através do uso das palavrasreservadas public, private ou protected.

Getters e Setters: dentro do conceito de encapsulamento é comum definirmos os atributos como privados, desta forma, para os atributos que precisam receber valores provenientes de fora da classe é necessário implementar um método de atribuição, normalmente conhecido como Setter. Por outro lado, atributos que precisam ter o seu conteúdo consultado por outras classes deverão implementar um método Getter.

Java: Introdução – Prof. Cláudio Luís V. Oliveira 10

Adotando estes conceitos, e considerando que o conteúdo dos atributos nome, endereço e telefone precisam ser acessados por outras classes, a classe Pessoa poderia ser escrita da seguinte forma:

public class Pessoa { private String nome; private String endereco; private String telefone; public Pessoa() { } public Pessoa(String nome, String endereco,

String telefone) { this.nome = nome; this.endereco = endereco; this.telefone = telefone; } public void setNome(String nome) { this.nome = nome; } public String getNome() { return (nome); } public void setEndereco(String endereco) { this.endereco = endereco; } public String getEndereco() { return (endereco); } public void setTelefone(String telefone) { this.telefone = telefone; } public String getTelefone() { return (telefone);

Java: Introdução – Prof. Cláudio Luís V. Oliveira 1

Palavra-reservada this: é utilizada para referenciar um atributo ou método da própria classe evitando ambiguidade em relação aos parâmetros ou variáveis declaradas dentro de um método da classe. Por exemplo, o construtor da classe Pessoa pode utilizar this para diferenciar os atributos dos parâmetros:

public Pessoa(String nome, String endereco,

String telefone) { this.nome = nome; this.endereco = endereco; this.telefone = telefone; }

Ou seja, this.nome faz a referência ao atributo nome enquanto nome identifica o parâmetro que foi passado no método construtor.

Método toString(): esse método é bastante utilizado em programação, sua principal função é o retorno de uma determinada String. Um detalhe é que String é uma classe e caso seja necessário receber informações desta classe, esse método permite o retorno das informações dela mesma. Seguindo o raciocínio deste método, pode-se observar o exemplo a seguir considerando que o conteúdo de um objeto da classe Pessoa seja acessado através do método.

public String toString(){ return nome + ", " + endereco + ", " + telefone; }

(Parte 1 de 3)

Comentários