Pplware

Programação em Java – Iniciação – Por Bruno Rodrigues

Este vai ser o meu primeiro artigo no Pplware, como tal, antes de mais peço desculpa por qualquer parte deste post “menos bem conseguida”. Quero-vos falar da Linguagem de Programação (LP) Java. O Java é uma LP object-oriented que surgiu no início dos anos 90, criada pela Sun.

Esta é uma LP muito popular no mundo da programação como podemos ver pela tabela seguinte:

Obviamente, dirão alguns, estas estatísticas poderão estar a mostrar resultados tendenciosos mas, o que é certo é que qualquer que seja a fonte que encontrem, encontrarão sempre o Java pelo menos no top 5, o que diz muito das suas potencialidades.

Principais Vantagens

Não basta dizer que Java é bom só porque sim, quanto a mim, eis as principais “virtudes” do Java enquanto LP:

O que eu preciso para programar em Java no meu PC

Para começar a programar em Java não precisa de muita coisa. Antes de mais precisa de fazer o download do JDK (atenção que somente o JRE – Java Runtime Environment – não serve) – Java Development Kit. Poderá fazê-lo do seguinte site: http://java.sun.com/products/archive/.

Em seguida, aconselho a instalação de um IDE – Integrated Development Environment – para desenvolver em Java. Para iniciar talvez um mais simples como o Notepad++ ou o GEdit seja o indicado, no entanto, se pretender avançar a fundo na programação em Java, deverá recorrer a uma ferramenta mais completa pois estas ajudam (e muito!) a aumentar a produtividade. Recomendo, pela minha experiência, o Netbeans (da Sun tal como o Java) ou, o meu preferido, Eclipse. Estes programas poderão ter uma curva de aprendizagem não muito acentuada inicialmente mas, o tempo investido nos mesmos acabará por compensar a longo prazo (no futuro vou tentar escrever uns quantos tutoriais acerca dos mesmos).

Estrutura e Sintaxe

Definição e Diferenças entre Classe e Objecto

Para programar em Java é fundamental perceber o que são classes e objectos. Sendo esta uma linguagem object-oriented, o que o programador faz é nada mais do que definir os objectos e as mensagens com que será possível comunicar com os primeiros.

Ou seja, poderemos considerar um objecto como que uma caixa enquanto que os métodos do objecto são os botões dessa caixa que ao “pressionar” despoletam acções dentro da mesma. Existem botões que poderão não estar disponíveis para carregar do exterior directamente pelo utilizador, só são pressionados pelas acções despoletadas internamente quando o utilizador carrega um dos botões a que tem acesso.

No caso da imagem anterior, o utilizador definiu o objecto tendo no seu interior os métodos A, B, C, D e E. Definiu que o utilizador teria acesso aos métodos A, B e C e, que ao “pressionar o botão A” este internamente accionaria o “botão D” e que, ao pressionar os “botões” B ou C, este accionam o “botão” E. Não é necessário haver acções internas interligadas, poderia-se definir um “botão F” possível de aceder do exterior da “caixa” que quando o utilizador pressiona-se limitava-se a realizar as suas acções.

Quanto às diferenças, se me perguntarem “O que entendes entre classe e objecto? Mas quais são as diferenças?”, eu diria que classe é um modelo ou especificação que define um tipo de objecto enquanto que o objecto em si é uma ferramenta, uma forma de comunicação entre o utilizador e o seu programa, ferramenta essa que apresenta um conjunto de variáveis e métodos definidos na classe. A comunicação é feita enviando mensagens para os objectos. Essas mensagens não são nada mais do que “chamar” os métodos que o objecto disponibiliza para o exterior.

Como definir uma classe

Uma classe em Java obedece – generalizando obviamente – à estrutura seguinte.

A primeira declaração é sempre o package onde a classe se insere (caso esteja dentro de algum obviamente). Em seguida são adicionados os imports de outras packages (bibliotecas) das quais pretendemos utilizar alguns objectos e respectivos métodos, na classe que estamos a definir.

O nome da classe é sempre igual ao nome do ficheiro onde ela está a ser criada (ou seja, o ficheiro teria o nome MinhaClasse.java).

O método com o mesmo nome da classe é nada mais do que o construtor desta. O construtor de uma classe é um método (função) especial que não retorna qualquer valor e que, é chamado sempre que se cria um objecto daquele tipo. Tudo o que estiver dentro do construtor é executado aquando da criação do objecto. Não é necessário definir um construtor uma vez que o Java assume um vazio por omissão. Ao invés, é possível definir vários construtores diferentes, ou seja, construtores que contenham diferentes argumentos de entrada.

E, para finalizar, declaramos e definimos todos os métodos da nossa classe. Caso este seja um ficheiro que será executado, deverá conter um método “especial”, o método main, que é declarado da forma indicada.

Comentários

Para comentar uma linha individualmente utiliza-se ‘//’, para comentar um bloco utiliza-se ‘/* texto a comentar */’.

Modificadores de Acesso

Os modificadores de acesso são palavras reservadas que, quando colocados na declaração de classes, métodos ou variáveis, modificam/limitam o modo como se pode aceder aos mesmos.

Existem os seguintes modificadores de acesso:

Juntamente com estes últimos, podemos ainda utilizar dois outros modificador: abstract e final.

O abstract quando se aplica a métodos, serve para indicar que o método em causa deverá ser definido nas suas subclasses (classes que herdem a classe onde o método foi definido). No caso das classes, indica que a classe não está completamente definida e como tal não pode ser instanciada (utilizado, por exemplo, em Interfaces).

Já o final, utiliza-se para declarar constantes, ou seja, valores que não são alterados durante a execução de um programa.

Declaração de variáveis

Vamos agora ver alguns aspectos relacionados com a síntaxe da linguagem. A declaração das variáveis obedece à seguinte forma:

Ou seja,

[modificador de acesso] tipoVar nomeVar[ = valorInicial]; Nos objectos que são estruturas de dados pode-se (deve-se – sempre que seja possível dentro do contexto – diria eu) definir a seguir ao tipo do objecto o tipo de dados que o objecto recebe entre . Para qualquer declaração de um objecto, deverá inicializar-se (não é obrigatório mas terá de ser feito antes de ser utilizado) o mesmo recorrendo ao método especial new(). 

Declarar e Utilizar Classes e Métodos

O que difere um método de outro em Java é a sua assinatura (nome, valor de retorno e parâmetros de entrada. Como tal, um método poderá ser definido da seguinte forma:

É possível utilizar-se um método de uma classe chamando o mesmo dentro dessa mesma classe se este for static ou, declarando um objecto do tipo ClasseDoMetodoAChamar e chamar o dito método (A.B – chama o método B sobre o objecto A, ou seja, o objecto A disponibiliza o método B para para ser invocado e nós invocamo-lo utilizando a notação objecto(ponto)método ).

Extends e Implements

Quando uma classe faz extends de uma outra classe, está a herdar todos os métodos e variáveis definidos na classe que foram criados nessa classe. No entanto, se essa última classe definir uma variável/método que já exista na classe herdada, será feito um override, ou seja, ignora a criação prévia na “classe pai” (o termo é superclasse). Vejam o exemplo seguinte:

O Java não suporta herança múltipla, ou seja, apenas pode “extender” uma classe. No entanto, pode implementar (implements) várias Interfaces como vamos ver.

Uma interface serve para “obrigar” uma classe a ter uma determinada estrutura que a implemente. Nesta apenas estão definidas as assinaturas dos métodos.

Nested Classes

São classes definidas dentro de classes e que serão utilizadas no contexto destas últimas.

Exemplos de Código

Mostro agora alguns exemplos de código Java:

Hello World

Soma 2 números

Compilar e executar os nossos programas

Para correr os programas que desenvolvemos, temos de primeiro compilar o ficheiro .java por nós criado e depois correr o executável gerado. Para tal:

Como compilar o programa?

% javac NomeFicheiro.java

Como executar o programa?

% java NomeFicheiro

Notas:
Notas Finais

Nos próximos tutoriais irei dar a conhecer alguns aspectos mais “avançados” não mencionados neste tutorial. Espero que tenham gostado e que seja útil a alguém.


Links Úteis:

Exit mobile version