Programação Voltada A Objetos
Programação Voltada A Objetos
PROGRAMAÇÃO VOLTADA A
OBJETOS
AULA 1
CONVERSA INICIAL
linguagem de
programação Java. Falaremos sobre os diferentes paradigmas de programação com
Quadro
1 – Objetivos
Objetivos Avaliação
1
– Contextualização sobre o paradigma de programação orientado a objetos e à Questionário
e questões
Linguagem
de programação Java dissertativas
2
– Capacidade de criar projetos Java simples dentro da IDE Eclipse Questionário
e questões
dissertativas
3
– Desenvolver programas básicos utilizando Java Questionário
e questões
dissertativas
computadores na
década de 1940, já existiam modelos e regras formais para descrever algoritmos
https://univirtus.uninter.com/ava/web/roa/ 2/19
07/10/2022 11:17 UNINTER
pensado e
descrito por meio da resolução de funções matemáticas. Esse paradigma facilita
o
na inteligência artificial.
As linguagens modernas de
programação se inspiram e combinam esses paradigmas oferecendo
diversas opções
de estratégias para o desenvolvimento de algoritmos.
https://univirtus.uninter.com/ava/web/roa/ 3/19
07/10/2022 11:17 UNINTER
As soluções aplicadas em um
paradigma podem ser de forma direta ou indireta representadas
em outro, tornando
cada paradigma ótimo para um tipo de situação diferente. Um programador
versado
em diversos paradigmas terá um ferramental maior na hora de gerar soluções para
problemas complexos.
necessitam de
constante manutenção e ampliação.
Fonte:
Gomes, 2020.
mudanças de
estado sequencial de um programa, mas sim no que se deve resolver.
Dessas duas
de programação Simula
67, nos anos de 1960, posteriormente também sendo utilizado de forma
https://univirtus.uninter.com/ava/web/roa/ 4/19
07/10/2022 11:17 UNINTER
as
primeiras linguagens de programação baseadas em orientação a objetos, sendo inclusive
como um organismo
vivo, no qual cada célula é entendida como um elemento independente,
individuais,
realizando ações uns sobre os outros e permitindo a construção de sistemas
complexos.
Essa forma de pensar é natural e intuitiva para nós, pois emula como
vemos o mundo.
Em programação estruturada, o
foco está nas ações: em um programa de computador de
geralmente
seria agrupado em uma função chamada comprar(), porém, em um
sistema orientado a
associamos
sempre os objetos (cliente neste exemplo) à ação (comprar), que deixa mais clara
e
intuitiva a leitura dos códigos, pois há maior contexto quando pensamos em um
“cliente comprando”
sua maior
facilidade no entendimento.
voltada ao paradigma de
orientação a objetos.
este contexto
nos ajuda a compreender a função dos principais atores tecnológicos da
computação.
https://univirtus.uninter.com/ava/web/roa/ 5/19
07/10/2022 11:17 UNINTER
A equipe
responsável pelo desenvolvimento desta linguagem atuava no chamado Green
Project
dispositivo chamado
StarSeven, que semelhante a um tablet, poderia receber comandos de toque e
A linguagem
Oak possuía o diferencial de ser uma interpretada por uma máquina virtual
fornecida pela Sun, e todo o dispositivo que rodasse a máquina virtual da Sun
seria capaz de executar
códigos Oak sem a necessidade de compilação específica
para o dispositivo em questão. Embora o
popularizaram
muito na época. Por questões legais e de registro de marca, a linguagem Oak
mudou
seu nome para Java em 1995.
previamente instalada.
Nas décadas
de 1990 e 2000, a popularização da internet levou a uma grande popularização da
Créditos: rzulev/Shutterstock.
A linguagem Java
adotou licença de software livre GPL v3 em 2006, o que significa que os
Embora applets
não sejam mais usualmente adotadas, a popularidade do Java se mantém, de
forma
que essa linguagem é adotada nos aplicativos do sistema operacional Android, em
diversos
tipos de servidores, em leitores de livros digitais como Kindle e TV
digital DTVI e até no tradicional
No momento da
edição deste documento, a linguagem Java se encontra na versão 13, lançada
em
setembro de 2019. Trata-se de uma linguagem Orientada a Objetos com sintaxe
baseada na
https://univirtus.uninter.com/ava/web/roa/ 7/19
07/10/2022 11:17 UNINTER
serem
facilmente portados para diferentes plataformas justamente por não necessitarem
de
recompilação para cada plataforma. Dessa forma, um mesmo código interpretado
sem alterações
independente
para os mais diversos dispositivos por qualquer equipe, visto que possuem licença
livre. Portanto, um mesmo bytecode pode ser executado em qualquer
sistema que possua uma JVM.
desempenho quando
comparado a um código compilado nativo. Porém, as JVM evoluíram muito ao
longo
dos anos, e uma das principais tecnologias neste sentido é o chamado Hotspot.
concentra em
somente 20% do código. O Hotspot é uma tecnologia que identifica esses trechos
de
código com muito processamento e executa uma compilação dos mesmos durante a
execução do
código.
https://univirtus.uninter.com/ava/web/roa/ 8/19
07/10/2022 11:17 UNINTER
mais
conhecida pela sigla JIT. A combinação das duas tecnologias, dentre outras
melhorias, tornou o
Java muito eficiente e diminuiu a distância em relação às
linguagens compiladas. No contexto da
testes, o Java
chega a apresentar um tempo de execução melhor que o C++. No link presente na
legenda da figura, mais testes podem ser vistos.
Fonte:
<https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/java-gpp.html>.
https://univirtus.uninter.com/ava/web/roa/ 9/19
07/10/2022 11:17 UNINTER
rápida
referência, vamos agrupar todos no quadro a seguir:
Java
Virtual Máquina
Virtual Programa
responsável por interpretar e executar o código Bytecode Java
Machine Java
JVM
Bytecode Código
em byte O
equivalente ao executável Java, o Bytecode é gerado após o processo de
compilação
Java Kit
de Conjunto
de bibliotecas, compiladores e demais ferramentas para o desenvolvimento
Development desenvolvimento de
programas Java
Kit JDK Java
Java
Runtime Ambiente
de Conjunto
de biblioteca padrão Java e JVM para execução de códigos Bytecode
Garbage Coletor
de Lixo Técnica
que isenta o programador da responsabilidade de desalocar memória, a JVM
https://univirtus.uninter.com/ava/web/roa/ 10/19
07/10/2022 11:17 UNINTER
codificar utilizando
qualquer editor de texto e, posteriormente, por meio de um compilador
dedicado,
gerar o seu binário (Bytecode, no caso do Java). Porém, é muito mais
produtivo,
própria
Oracle; o IntelliJ IDEA, da empresa JetBrains; e o mais popular de todos, o
Eclipse,
inicialmente da IBM, mas, hoje, com licença software livre. O
Eclipse é o que utilizaremos em nossos
O Eclipse, originalmente
desenvolvido como IDE para Java, foi adaptado por plugins
desenvolvidos
pela comunidade para as mais diversas linguagens de programação, podendo ser
encontrado no site:
<https://www.eclipse.org/>.
O Java conta com três
versões principais, Java Micro
O
Java ME visa à construção de softwares para dispositivos embarcados,
sistemas de propósito
sistema operacional
Windows ou terminal do Linux;
Java EE é a edição mais completa que já vem
equipada com bibliotecas prontas para soluções
empresariais, especialmente
voltadas para internet e banco de dados. Trata-se de uma série de
https://univirtus.uninter.com/ava/web/roa/ 11/19
07/10/2022 11:17 UNINTER
classes e
bibliotecas necessárias para a geração de um programa. Na figura 4, vemos a
estrutura de
Bibliotecas:
são bytecodes com funcionalidades específicas implementadas. Permitem ao
Pacotes:
conceito semelhante ao de pasta/diretório para organizar a estrutura dos
códigos Java.
Classe:
os códigos são descritos em arquivos com extensão .java, geralmente um
arquivo por
classe.
Project. Em seguida, dê
um nome apropriado ao projeto e utilize as opções padrões. O projeto
https://univirtus.uninter.com/ava/web/roa/ 12/19
07/10/2022 11:17 UNINTER
criado
estará vazio. Para criar uma primeira classe Java que receberá o método
principal, basta clicar
(equivalente ao
main do C/C++), é interessante marcar no checkbox a opção public static void
main(String[] args).
Um arquivo
com aproximadamente o seguinte código deve surgir:
Vamos
analisar linha por linha o código acima:
packagecom.empresa;
publicclass PrimeiraClasse
em linguagens como
C/C++ e indica que esse método será o primeiro a ser executado
pelo programa; e
String [] args é a declaração de um array (estrutura semelhante a
uma
lista) de objetos da Classe String como parâmetro de entrada do método.
Caso o
As chaves {
} representam blocos de código, marcam onde começa e termina a classe e
onde
Esse é o
comando que imprime a mensagem que estiver entre aspas na tela em modo console.
internet ou no
próprio Eclipse, dentro de Help/Show Active Keybindings. Dominar alguns
atalhos
Alguns dos
comandos Java parecem longos e intimidadores quando comparados com os de
outras
linguagens, porém, com a experiência, você notará que eles seguem uma padronização
que se
torna intuitiva e clara com o tempo. O Java conta com uma biblioteca
padrão muito extensa que
No próximo tópico,
faremos um apanhado geral sobre os principais comandos Java.
sobre a orientação
a objetos. Além disso, também vamos passar brevemente pelos principais
comandos
e estruturas de dados disponíveis nessa linguagem.
já domina grande
parte dos principais comandos Java. No entanto, mesmo quem vem de outras
linguagens como Python terá facilidade, visto que a lógica continua a mesma e
muda apenas a forma
de descrever certos comandos.
https://univirtus.uninter.com/ava/web/roa/ 14/19
07/10/2022 11:17 UNINTER
que
utilizaremos para exemplificar. Primeiro precisamos importar a biblioteca java.util.Scanner,
que
abaixo da
declaração do nome do pacote.
por ler
os dados de alguma fonte passada por parâmetro, no caso, o parâmetro deve ser System.in,
inteiro, teclado.nextInt();
para um valor real, teclado.nextFloat() ou teclado.nextDouble();
e para ler uma
https://univirtus.uninter.com/ava/web/roa/ 16/19
07/10/2022 11:17 UNINTER
Os principais comandos de
repetição também estão presentes em Java: while, do-while e for.
Entre parênteses vai a condição que deve ser avaliada para analisar se o loop
deve repetir ou não.
Atenção: o ponto-e-vírgula não aparece depois do
comando while.
O comando for é
dividido em três partes separadas por ponto-e-vírgula. Na primeira, trata-se
do
indicar o tipo
de dado.
No Java, chamamos de
primitivas as variáveis dos tipos básicos presentes nas principais
linguagens
de programação, como a seguir. Em um nível de abstração maior, os dados podem
ser
temos as primitivas:
https://univirtus.uninter.com/ava/web/roa/ 17/19
07/10/2022 11:17 UNINTER
Fonte:
Gomes, 2020.
5.2.1 STRING
As strings ou sequência
de caracteres no Java são representadas com uma classe chamada
justamente de String.
No Java, constantes da classe String devem ser escritas entre aspas duplas.
Elas
5.2.2 ARRAYS
muito
semelhante às listas do Python. Podem ser declarados entre chaves e acessados
com colchetes
indexados por meio do valor zero. Segue o exemplo:
https://univirtus.uninter.com/ava/web/roa/ 18/19
07/10/2022 11:17 UNINTER
nomes.length()
retornaria o número 4.
FINALIZANDO
fizemos nosso primeiro programa. Por fim, realizamos uma visão geral sobre a
linguagem Java e os
principais comandos.
preparamos o terreno
oferecendo o ferramental para nos aprofundarmos utilizando o Java como
base
para o estudo. Posteriormente, exploraremos mais a criação e a utilização das
classes, o
https://univirtus.uninter.com/ava/web/roa/ 19/19