Escolar Documentos
Profissional Documentos
Cultura Documentos
Linguagem de Programao I
VOLUME 01
Governador | Eduardo Campos
Ementa
Paradigma Orientado Objetos. Elementos bsicos variveis e constantes.
Operadores e Expresses: Operao de atribuio; Operadores e expresses
relacionais e lgicas. Entrada e sada de dados por teclado e vdeo.
Comandos de Controle: Uso de estruturas de deciso e de repetio;
Estruturados de Dados: Vetores unidimensionais e multidimensionais;
Cadeias de caracteres; Conceitos de Programao Orientada a Objeto.
Abstrao, Encapsulamento. Classificao. Poliformismo. Herana. Conceitos
de Objetos, Classes e troca de Mensagens. Pacotes. Classes Abstratas e
Interfaces. Colees. Excees. Linguagem orientada a Objeto e Aplicao
de Tcnicas de Programao Orientada a Objeto.
Objetivo Geral
Capacitar o aluno no desenvolvimento de aplicaes utilizando os conceitos
de orientao a objetos.
Objetvos Especficos
1. Capacitao para o desenvolvimento de programas orientados a
objetos capazes de resolver problemas do mundo real
2. Capacitao no desenvolvimento de aplicaes de alta qualidade
utilizando os conceitos de modularidade, reusabilidade e
extensibilidade
Volume 1
1. Viso geral e conceitos bsicos
2. Vetores, matrizes e strings
3. Orientao a objetos
Volume 2
1. Aprofundando em Java
2. Aprofundando em orientao a objetos
3. Escrevendo melhores cdigos
Caro estudante!
Desejo um timo estudo nesta disciplina e espero que ela lhe estimule a
desenvolver muitos programas teis para voc, para a empresa em que voc
trabalhar e por que no tambm para todo mundo atravs da fcil divulgao
de programas atravs da Internet.
Um grande abrao!
Mrcio A. S. Bueno
Objetivos
Tecnologia Java
A tecnologia Java compreende a linguagem de programao Java e a
plataforma Java. As sees a seguir detalham estes dois conceitos.
Plataforma Java
A plataforma o ambiente de hardware ou o software em que um programa
roda. A maioria das plataformas uma combinao de sistema operacional
com o hardware necessrio para a sua execuo. A plataforma Java difere
das plataformas mais populares como Microsoft Windows, Linux e Mac Os,
pois ela s compreende o software que roda em cima de outras plataformas.
A plataforma Java tem dois componentes: a JVM e a API (Application
Programming Interface) do Java. A JVM, descrita anteriormente, a base da
plataforma Java e existem verses dela para diversos sistemas operacionais.
A API uma grande coleo de componentes de software j prontos e que
prov funcionalidades teis para o desenvolvedor. Elas so agrupadas em
bibliotecas de classes e interfaces relacionadas e algumas delas sero
detalhadas neste curso.
A Figura 1.1 mostra como a Plataforma Java isola um programa desenvolvido
e compilado, isto , um arquivo com a extenso .class, do hardware onde ele
ser executado. A API prov as funcionalidades que o programa pode utilizar
e a JVM traduz o cdigo intermedirio (bytecode) para o cdigo de mquina
nativo para aquele hardware especfico.
Ambiente de Desenvolvimento
Para compilar e executar programas em Java necessrio instalar no
computador o Java SE Java SE Development Kit (JDK) disponvel para
download em
http://www.oracle.com/technetwork/java/javase/downloads/index.html.
preciso ter o JDK para desenvolver aplicaes em Java, porm existe uma
verso para download apenas para a execuo de programas em Java
chamada JRE. O JRE serve para quem no deseja criar nenhum programa
em Java, mas quer executar o programa criado e compilado por um
desenvolvedor.
Porm, ao instalar o JDK na sua mquina, s ser possvel executar os
comandos para compilar e executar um programa em Java atravs do Prompt
de Comando, o que no interessante. Para isto, melhor tambm instalar
um ambiente de desenvolvimento integrado (Integrated Development
Environment IDE). A IDE que ser utilizada neste curso o Netbeans que
est atualmente na verso 6.8.
O Netbeans uma IDE gratuita de cdigo-aberto e est disponvel para
download em http://netbeans.org/downloads/index.html.
Tutorial: http://download.oracle.com/javase/tutorial/
Documentao do Java:
http://www.oracle.com/technetwork/java/javase/documentation.index.h
tml
Documentao do Netbeans: http://netbeans.org/kb/index.html>
Primeiro Programa
A seguir ser descrito um passo a passo para criar o programa Ol Mundo
utilizando o Netbeans 6.8:
1. Rode o Netbeans.
2. Abra o menu Arquivo e selecione Novo Projeto (figura 1.2).
5. Clique em Finalizar (ao clicar em finalizar voc dever ver uma tela como a
exibida na figura 1.5).
Variveis
So utilizadas para armazenar os dados do seu programa, a sintaxe para a
declarao de variveis igual a do C: tipo nomeDaVariavel;. Em Java
possvel declarar varivel em qualquer local de uma funo, no apenas no
incio, como em C.
A seguir esto alguns exemplos de delcarao de variveis:
int idade;
char estadoCivil;
double salario;
Nomes de variveis so identificadores e devem seguir as seguintes regras e
convenes:
S pode possuir letras, nmeros, cifro ($) ou sublinhado (_), porm a
recomendao que nunca se utilize o cifro ($), ficando este
reservado apenas para nomes de classes geradas automaticamente.
Obrigatoriamente deve comear com uma letra, cifro ($) ou
sublinhado (_), porm recomendado que nunca se utilize o cifro ($)
ou o sublinhado (_) para iniciar um identificador.
Tenha nome fcil de compreender. melhor utilizar um nome maior
do que utilizar abreviaes criptogrficas, por exemplo, estadoCivil
bem mais legvel que ec.
Se o nome escolhido consiste de uma nica palavra, coloc-la toda
em minscula. Se consistir de mais de uma palavra, coloque em
maiscula a primeira letra das palavras subsequentes, como por
exemplo, estadoCivil e salarioBruto. A exceo essa conveno
utilizar apenas letras maisculas quando se declarar uma constante,
como por exemplo, RAZAO_LITROS_METROS_CUBICOS e PI.
Tipos de Dados
Para se declarar as variveis preciso conhecer os tipos de dados existentes
em Java. Existem oito tipos de dados primitivos em Java que so:
byte: um inteiro que ocupa 1 byte e pode ter valores entre -128 e
+127 (inclusive). Normalmente s so utilizados quando se deseja
economizar memria (como em declarao de grandes vetores).
short: um inteiro que ocupa 2 bytes e pode ter valores entre -
32.768 e +32.767 (inclusive). Tambm s so utilizados quando
preciso economizar memria.
int: um inteiro que ocupa 4 bytes e pode ter valores entre -
2.147.483.648 e 2.147.483.647 (inclusive). o tipo padro para
valores inteiros e s no so utilizados pelas razes explicitadas
anteriormente. Se for necessrio utilizar um nmero inteiro ainda
maior, utilize long.
long: um inteiro que ocupa 8 bytes e pode ter valores entre -
9.223.372.036.854.775.808 e 9.223.372.036.854.775.807. S deve
ser utilizado quando precisa utilizar nmeros fora da faixa do int.
float: um valor real com preciso simples ocupando 4 bytes e pode
-45
ter valores entre 1,40129846432481707 x 10 e
+38
3,40282346638528860 x 10 (positivo e negativo). Tambm s so
utilizados quando necessrio economizar memria.
Literais
Literais so representaes de valores fixos no cdigo fonte da sua aplicao.
Portanto, pode-se utilizar literais para inicializar variveis ou para compor uma
expresso. Exemplos:
byte b = -32;
short s = b + 25743;
int i = 3 * 100000;
long l = 20000000000l;
float f = 178.3f;
double d = 279.5 / 39.7382;
boolean achou = false, terminou = true;
char c = 'z';
Com o seu conhecimento de C fica bem fcil escrever estes cdigos em Java,
porm preciso tomar cuidado com os seguintes detalhes:
1. Todo nmero real deve ser escrito com um ponto (.) para separar as
casas decimais, e no com a vrgula (,) como na lngua portuguesa;
2. Qualquer nmero real do tipo double, portanto preciso colocar o f
ao final do nmero, quando voc precisar utilizar um float, seno ir
acontecer um erro de compilao;
Ateno:
Operadores
Java possui os mesmos operadores que C, portanto abaixo segue uma lista
resumida para voc relembrar:
<Atividades de aprendizagem:
[int] 5 + 3
[int] utilize o operador ++ na varivel da letra anterior
[double] 8,7 / 38,4
[float] 3,4 * 3
[boolean] ((3 < 5) && (4 > 7) || (4,8 < 2 * 1,76))
[int] 7 / 2
[int] 7 % 2>
Condicionais
O primeiro condicional o comando if simples. Ele ser utilizado
quando voc s deseja executar um ou mais comandos em determinada
situao, e no quer executar nada nas outras situaes. O trecho de
cdigo a seguir (figura 2.1 linhas de 7 a 12) mostra um exemplo de
um funcionrio solicitando para um candidato a apresentao de alguns
documentos:
:
Captura de tela do Netbeans 6.8: Trecho de cdigo exibindo if-else
aninhados
Fonte: Conteudista
Ateno:
Esta forma de ler valores do teclado bem diferente da forma que voc j
estava acostumado no C, portanto demore um tempo maior estudando as
diferenas entre o Java e o C. A declarao da varivel entrada e a sua
associao com a entrada padro do Java (System.in que geralmente o
teclado) necessria sempre que voc quiser solicitar que o usurio digite
valores pelo teclado (linha 8 da figura 1.13). Para ler valores do teclado as
funes disponveis so:
nextShort(), nextInt(), nextLong(), nextFloat(),
nextDouble(), nextBoolean() e nextLine().charAt(0) para a
leitura de short, int, long, float, double, boolean e char,
respectivamente.
Como voc viu na linha 3 da figura 1.13, para poder utilizar o tipo Scanner
preciso informar que ele pertence a biblioteca util do Java, e para isto existe
o comando import do Java que parecido com o #include que voc j
conhece do C.
Na figura 1.14 voc pode ver o cdigo de um programa completo em Java
que solicita que o usurio digite um valor mximo (linha 11) para o somatrio
que que controla a condio do while (linha 12). Por exemplo, ao executar
Funes Matemticas
Algumas funes matemticas so muito teis e no esto disponveis como
operadores, como por exemplo, raiz quadrada, potenciao, etc. Para isto,
possvel utilizar as funes disponveis na class Math (vide quadro 1.1).
RESUMO
A plataforma Java prov todos os recursos para voc executar programas
Java. Para desenvolver programas em Java necessrio instalar a SDK do
Java. O Netbeans uma IDE open source que aumenta a sua produtividade
na hora de escrever os programas. O primeiro programa em Java demonstra
a estrutura de um programa Java.
Voc aprendeu os tipos primitivos, como declarar variveis, as estruturas de
controle e os comandos de entrada e sada do Java. Com isto possvel
reescrever a maioria dos programas que voc tinha feito em C.
<Atividades de aprendizagem:
Objetivos
Vetores
So variveis que permite o armazenamento de um conjunto de valores do
mesmo tipo dispostos em uma nica dimenso. As sintaxes para a
declarao de um vetor disponveis em Java so:
tipo[] nomeDaVariavel;
tipo nomeDaVariavel[];
A primeira forma s existe em Java e deve ser utilizada preferencialmente,
pois deixa bem claro que o tipo da varivel um vetor, enquanto que a
segunda forma s para se assemelhar com a disponvel em C, mas observe
atentamente que em nenhum momento informado o tamanho do vetor na
hora de declar-lo.
Antes de pode utilizar um vetor preciso inicializ-lo, passo que no existia
em C, e nesse momento que voc precisa informar o tamanho do vetor e
no obrigado a ser uma constante, voc pode utilizar uma varivel que
tenha o tamanho desejado. A sintaxe para inicializao a seguinte:
nomeDaVariavel = new tipo[tamanho];
Na figura 2.1 so mostrados exemplos de declaraes e inicializao de
vetores. Analise atentamente o cdigo desta figura para se acostumar com a
forma de declarao e inicializao de vetores em Java. Observe que ao
utilizar a forma no recomendada de declarao de vetores em Java
preciso colocar os [ ] aps cada vetor (vide linha 9), enquanto que na forma
recomendada voc s utiliza os [ ] junto com tipo da varivel, e no junto com
o nome de cada uma das variveis (vide linha 11).
possvel tambm s inicializar o tamanho do vetor (linhas 16 e 18), aps
solicitar o valor desejado pelo usurio (linha 14), pois em Java o tamanho do
vetor s definido quando o programa for executado, diferentemente de C,
36 Informtica | Linguagem de Programao I | Volume |
onde o tamanho do vetor definido no momento da compilao do programa
(isto , muito antes dele ser executado).
Matrizes
uma varivel que permite o armazenamento de um conjunto de valores do
mesmo tipo dispostos em duas dimenses. As sintaxes para a declarao de
uma matriz disponveis em Java so:
tipo[][] nomeDaVariavel;
tipo nomeDaVariavel[][];
Da mesma forma que em vetores, a primeira forma a recomendada. E
tambm preciso inicializar a matriz antes de utiliz-la, porm agora
precisamos informar a quantidade de linhas e a quantidade de colunas:
nomeDaVariavel = new
tipo[qtdLinhas][qtdColunas];
A figura 2.3 exibe a criao (linha 9) e inicializao de uma matriz (linha 15) a
partir de informaes digitadas pelo usurio (linhas 12 e 14). Como matrizes
tm duas dimenses, so utilizados dois for (um para linhas (linha 16) e outro
para colunas (linha 17)).
Strings
Em Java existe um tipo especfico para string que no existia em C. L era
necessrio utilizar um vetor de caracteres para representar uma string. Aqui
possvel utilizar o tipo String.
A figura 2.4 mostra algumas utilizaes de variveis do tipo String.
Observe que o tipo String comea com uma letra maiscula e utilizado para
criar objetos do tipo String. possvel formatar uma mensagem e, ao invs de
imprim-la na tela utilizando o System.out.printf, armazen-lo numa
String utilizando o mtodo format de String, utilizando as mesmas regras
de formatao do printf. Ao utilizar variveis do tipo double, tambm
utilizamos o %f, como voc fazia com o float em C.
Analise o cdigo da figura 2.5 com a sada que aparece na tela ao executar
este programa (figura 2.6).
<Atividades de aprendizagem:
1. Crie um programa em Java que solicite que o usurio digite um valor inteiro
entre 3 e 7 para definir o tamanho de dois vetores. Solicite que o usurio
digite valores para preencher estes dois vetores e imprima na tela:
a) O contedo de um novo vetor que contm a soma dos dois
primeiros vetores (ex: a primeira posio deste vetor possui a soma
dos valores contidos na primeira posio do vetor 1 e da primeira
posio do vetor 2)
b) O contedo de um novo vetor que contm a multiplicao dos dois
primeiros vetores
2. Crie um programa em Java pea para o usurio preencher numa tabela
(matriz em Java) as notas dos 50 alunos de um curso de ingls. Esta tabela
tem 6 linhas, cada um referete a 1 turma e 10 colunas cada uma
correspondente a um aluno de cada uma das 5 turma. Ao final, imprima na
tela a mdia das notas dos 10 alunos de cada turma, e alm da mdia geral
de todos os alunos do curso.
3. Crie um programa em Java que solicite que o usurio digite seu nome
completo, e ento imprima:
a) As 5 primeiras letras do nome completo
b) A posio do primeiro espao em branco
c) O primeiro nome da pessoa (utilize a informao da letra b para
poder realizar esta tarefa)>
Objetivos
Objetos
A programao orientada a objetos tenta trazer para o desenvolvimento de
programas conceitos j usuais no dia a dia das pessoas, que o conceito de
objetos. As pessoas utilizam objetos para realizarem as mais diversas tarefas,
como por exemplo, para assistir um filme, voc utiliza o DVD do seu filme
predileto (um objeto), um DVD Player (outro objeto) e uma televiso (um
terceiro objeto).
Voc interage com os objetos a partir das funcionalidades disponveis, por
exemplo, ao interagir com a televiso voc pode aumentar ou diminuir o seu
volume, alterar o canal assistido, deslig-la e tirar o som, entre outras.
Ao utilizar um carro, voc pode ligar, acelerar, trocar a marcha, freiar, girar a
direo, etc. Na realidade, voc pode imaginar quais objetos voc possui e
como voc interage com eles diariamente.
Como este conceito to simples e todo mundo j possui este conhecimento
inerentemente, busca-se fazer esta analogia ao tentar realizar a construo
de programas utilizando linguagens de programao orientadas a objetos.
Quando voc pensa em objetos, voc imagina um objeto especfico, como por
exemplo, a televiso, existem milhares de televises no mundo, mas voc
no pensou nestas outras televises, voc pensou na que voc possui. Em
orientao a objetos, cada objeto possui internamente um identificador nico,
pois mesmo que existam muitas televises iguais a sua, elas no so as
mesmas, pois cada uma possui uma identidade prpria apesar de ter as
mesmas caractersticas fsicas.
Um programa orientado a objetos possui diversos objetos que se comunicam
entre si para resolver o problema para o qual foram criados. Por exemplo, no
caso de uma biblioteca, existem livros, emprstimos, alunos e funcionrios.
Abstrao
um conceito importantssimo ao se trabalhar com orientao a objetos, pois
necessrio abstrair (esconder, desprezar) os detalhes irrelevantes na hora
da definio de uma classe.
Se voc comear a pensar em todos os atributos e mtodos que uma
televiso pode ter, pode ser a criao desta classe em Java se torne muito
difcil, ou at mesmo impossvel.
Construtores
Eles so chamados na hora da criao do objeto, servem para criar e
inicializar os objetos. Podem ser vistos como um tipo especial de mtodo que
no tem tipo de retorno e possui o mesmo nome da classe.
O cdigo do construtor deve ter comandos para inicializar todos os atributos
do objeto sendo criado. Voltando ao exemplo da televiso, quando um objeto
do tipo Televisao for criado preciso que este objeto tenha uma marca e
um modelo.
Veja a seguir a sintaxe para a criao de um construtor:
Como no se sabe a marca e o modelo deste objeto, ento ele foi inicializado
com uma String vazia (linhas 23 e 24 da figura 3.6). Se por acaso, voc no
escrevesse algum atributo, o Java inicializa os atributos automaticamente
com valores padres: zero (para nmeros inteiros e reais, e para caracteres),
false (para booleanos) e null (para objetos). Se por acaso voc s tivesse
colocado o seguinte construtor (s com abre e fecha chaves, sem nenhum
cdigo):
public Televisao() {
}
Utilizando Objetos
Para se criar objetos em Java, utiliza-se a palavra-chave new seguido de um
construtor e normalmente atribumos este objeto a uma varivel criada. Veja a
criao de dois objetos do tipo televiso dentro de um main (figura 3.8).
tv1 = tv2;
RESUMO
Nesta aula voc entendeu o que orientao a objetos e os conceitos de
classes e objetos, alm de como implementar estes conceitos utilizando a
linguagem de programao Java. Voc viu que vrios objetos similares
podem ser classificados em uma classe. Todo objeto possui caractersticas
que so representadas em Java atravs dos seus atributos e podem realizar
aes que so implementadas em seus mtodos. Para se criar um objeto
voc utiliza os construtores que alm de criar o objeto tambm servem para
inicializar os seus atributos. Na prxima aula voc ir aprofundar mais o seu
conhecimento sobre classes e objetos e tambm aprender novos conceitos
como herana.