Você está na página 1de 42

PROGRAMAÇÃO ORIENTADA A

OBJETOS
PROFESSOR EIZO EDSON KATO
Programação Orientada a Objetos

Introdução a POO

17/03/2024 2
Programação Orientada a Objetos

Contextualização POO
 Os conceitos propostos pela POO não são novos.

 No final da década de 60, a linguagem Simula67, desenvolvida na


Noruega, introduzia conceitos hoje encontrados nas linguagens OO.

 Em meados de 1970, o Centro de Pesquisa da Xerox (PARC)


desenvolveu a linguagem Smalltalk, a primeira totalmente OO.

 No início da década de 80, a AT&T lançou a Linguagem C++, uma


evolução da linguagem C em direção, entretanto, OO

17/03/2024 3
Programação Orientada a Objetos

Contextualização POO
 A POO é, antes de tudo, um paradigma de programação:

 É uma forma de escrever software.

 Entre os paradigmas mais conhecidos estão:

 Procedural,

 Funcional,

 Lógico,

 Orientado a Objetos

17/03/2024 4
Programação Orientada a Objetos

Contextualização POO
 Algumas das novidades introduzidas pela POO.

 A linguagem do analista e do utilizador passam a ser semelhantes,


por se referirem a objetos do mundo real.

 Pode-se utilizar um mesmo objeto em diferentes sistemas,


aumentando a produtividade do processo de desenvolvimento de
software.

 Se a biblioteca de objetos for independente do SO utilizado, ao se


mudar a plataforma ou o SO, basta re-compilar o programa.

17/03/2024 5
Programação Orientada a Objetos

Contextualização POO
 Algumas das novidades introduzidas pela POO.

 A linguagem do analista e do utilizador passam a ser semelhantes,


por se referirem a objetos do mundo real.

 Pode-se utilizar um mesmo objeto em diferentes sistemas,


aumentando a produtividade do processo de desenvolvimento de
software.

 Se a biblioteca de objetos for independente do SO utilizado, ao se


mudar a plataforma ou o SO, basta re-compilar o programa.

17/03/2024 6
Programação Orientada a Objetos

Aspectos importantes POO


 O conceito de OO depende mais da mentalidade do programador do
que da linguagem de programação em si.

 É possível desenhar (projetar e escrever) programas razoavelmente OO


em linguagem tipicamente estruturadas.

 Bem como é possível conseguir programas estruturados em linguagens


de POO.

17/03/2024 7
Programação Orientada a Objetos

Diferenças entre Programação estruturada versus POO

Programação OO Programação Estruturada


Métodos Procedimentos e funções
Atributos Dados
Mensagens Chamadas
Classes Tipos de dados

Herança Não existe


Controle do usuário Linear

17/03/2024 8
Programação Orientada a Objetos

Introdução a Linguagem de
programação Java

17/03/2024 9
Programação Orientada a Objetos

Programação Orientada a Objetos – POO (Java)

17/03/2024 10
Programação Orientada a Objetos

Bibliografia básica
• Java Use a Cabeça
– Kathy Sierra e Bert Bates
– Editora Alta Books
• Java Como Programar
– Deitel
– Editora Pearson / Prentice Hall
• Simplesmente Java
– Michael Wenstrom
– Editora Alta Books
• Big Java
– Cay Horstmann
– Editora Bookman
• Tudo Sobre a JSP: com o NetBeans em Aplicações Distribuídas
– Fernando Anselmo
– Visual Books

17/03/2024 11
Programação Orientada a Objetos

Sites para consulta - Java


 https://www.java.com/pt_BR/
 http://www.guj.com.br/
 http://www.oracle.com/technetwork/java/index.html
 http://jcp.org/en/home/index
 https://www.tutorialspoint.com/java_technology_tutorials.htm
 https://www.w3schools.com/java/default.asp

17/03/2024 12
Programação Orientada a Objetos

Características da linguagem Java


 Portabilidade: O código binário das aplicações Java (byte codes)
podem ser executados em várias plataformas sem nenhuma
alteração.

 Uso Geral: Aplicações que vão desde smart-cards até mainframes.

 Linguagem Distribuída (RMI, EJB): Java possui API’s para a


criação de objetos distribuídos onde partes de uma única aplicação
podem estar sendo executada em várias máquinas
transparentemente.

 Segurança (SandBox – Caixa de Areia): Controle de segurança do


ambiente de execução das aplicações.
17/03/2024 13
Programação Orientada a Objetos

Características da linguagem Java


 Multithreading: Suporta a programação de aplicações multitarefa
compostas por várias linhas de execução (threads).

 Linguagem Dinâmica (JCP): O Java está em constante evolução,


suas extensões e sua evolução não são controladas por uma única
empresa, ou por seu criador, mas sim pela comunidade.

 Java e a Internet (Applets, Servlets / JSP): Total suporte para


criação de aplicações em rede especialmente para Web.

 Orientação a Objetos: Segue o paradigma de orientação a objetos.

17/03/2024 14
Programação Orientada a Objetos

Ambiente de desenvolvimento
 Ambiente Open Source
 Sistema Operacional
 Linux
 Servidores Web
 Apache (http://apache.org)
 Tomcat (http://jakarta.apache.org/tomcat)
 Jboss (www.jboss.org)
 Ferramentas de Desenvolvimento (IDE)
 eclipse (www.eclipse.org)
 NetBeans (www.netbeans.org)

17/03/2024 15
Programação Orientada a Objetos

Ambiente de desenvolvimento
 Ferramenta de Build
 Ant (http://ant.apache.org)
 Controle de Versionamento
 CVS (www.cvshome.org)
 Testes Automatizados
 Junit (http://junit.org)
 Ferramenta de Log
 Log4J (http://jakarta.apache.org/log4j)
 Controle de Alterações
 Bugzilla (http://bugzilla.org)

17/03/2024 16
Programação Orientada a Objetos

Ambiente de desenvolvimento
 Gerenciadores de Bancos de Dados
 MySQL
 www.mysql.com
 Postgrees
 www.postgresql.org
 HSQLDB
 www.hsqldb.org
 Firebird
 www.firebirdsql.org

17/03/2024 17
Programação Orientada a Objetos

Java: Independência de arquitetura

17/03/2024 18
Programação Orientada a Objetos

Java: Máquina virtual

17/03/2024 19
Programação Orientada a Objetos

Ambiente Java e os Bytecodes

17/03/2024 20
Programação Orientada a Objetos

Ambiente Java e os Bytecodes


 O código é compilado, gerando um conjunto de instruções chamado
de byte-code.

 O byte-code é aplicado à Máquina Virtual Java (JVM) que se


encarrega de interpretar os comandos para o SO onde o programa
está rodando.

 Ou seja, a máquina virtual traduz as instruções do código Java para


instruções válidas no SO em que está rodando.

 Esse byte-code poderá então ser interpretado por qualquer máquina


virtual Java (Linux, Windows, IOS, etc).

17/03/2024 21
Programação Orientada a Objetos

Ambiente Java e os Bytecodes


O resultado gerado pelo ambiente de desenvolvimento Java, embora
interpretado inicialmente, torna-se independente de plataforma,
simplificando o projeto de aplicações de rede ou aplicações distribuídas
que tenham que operar em ambientes heterogêneos, além de permitir a
incorporação de vários mecanismos de segurança na aplicação gerada.

17/03/2024 22
Programação Orientada a Objetos

Ambiente Java e o Garbage collection


 O Garbage-collection é responsável pela alocação e liberação de
memória.

 Quando uma variável é declarada a Java Virtual Machine (JVM) cria


um ponteiro para uma área de memória equivalente ao tamanho do
tipo de dado utilizado.

 Se a variável é associada a outra região de memória, a JVM coloca o


espaço alocado anteriormente em uma pilha de objetos em desuso
naquele momento.

17/03/2024 23
Programação Orientada a Objetos

Ambiente Java e o Garbage collection


 Se o computador ficar com pouca memória disponível, a JVM remove
os objetos dessa pilha, realocando assim este espaço de memória
para outra variável.

 O processo de garbage-collection ocorre automaticamente durante a


execução de um programa Java.

 O programador não precisa se preocupar com aritmética de ponteiros


(grande dificuldade em linguagens como C e Pascal).

17/03/2024 24
Programação Orientada a Objetos

Introdução

17/03/2024 25
Programação Orientada a Objetos

Java: Olá Mundo!


• Abrir o notepad e digitar o seguinte:

class OlaMundo{

public static void main(String[] args){


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

• Salvar como OlaMundo.java

17/03/2024 26
Programação Orientada a Objetos

Java: Olá Mundo!


 Quando compilamos um programa fonte Java temos como resultado
o programa compilado, cujo o nome tem a extensão trocada para
“.class”:

 Programa fonte OlaMundo.java

 Programa compilado OlaMundo.class

17/03/2024 27
Programação Orientada a Objetos

Java: Olá Mundo!

 Agora, digite o comando:

 javac OlaMundo.java

 Se o programa estiver correto não será mostrada nenhuma


mensagem de erro.

17/03/2024 28
Programação Orientada a Objetos

Java: Olá Mundo!

 Agora, digite o comando:

 java OlaMundo

 Caso não ocorra nenhum erro, será mostrado a seguinte


mensagem: Ola Mundo!!!!

17/03/2024 29
Programação Orientada a Objetos

Java: System.out.println()- Saída de Dados

 Em Java, System.out.println() é uma instrução que imprime o


argumento passado para o método “println()”

17/03/2024 30
Programação Orientada a Objetos

Java: Classe Scanner – Entrada de Dados

 A classe Scanner é utilizada para obter uma entrada de dados

 É encontrada em java.utilpacote.

 Para usar Scanner


 Crie um objeto da classe

 Use qualquer um dos métodos disponíveis para entrada de dados

Método Descrição
nextBoolean() Lê valores do tipo booleano (verdadeiro/true ou falso/false)
nextByte() Lê valores do tipo byte (inteiros entre -127 e 128 - 8 bits)
nextDouble() Lê valores do tipo double (números reais de 64 bits ± 1.79769313486231570E+308)
nextFloat() Lê valores do tipo float (números reais de 32 bits -3.4028234 x 10^38 a -3.4028234 x 10^38)
nextInt() Lê valores do tipo int (números inteiros de 32 bits, -2.147.483.648 e 2.147.483.647)
nextLong() Lê valores do tipo long (números inteiros de 64 bits, -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807)
nextShort() Lê valores do tipo short (números inteiros de 16 bits, -32.768 e 32.767)
nextLine() Lê valores do tipo String (cadeia de caracteres)

17/03/2024 31
Programação Orientada a Objetos

Java: Classe Scanner – Entrada de Dados

import java.util.Scanner; // Importando a Classe Scanner

class EntradaDados {
public static void main(String[] args) {
Scanner meuScanner = new Scanner(System.in); // Cria um objeto Scanner
System.out.println(“Entre com seu nome”);

String nome = meuScanner.nextLine(); // Lê os dados digitados


System.out.println(“Seu nome é:” + nome); // Imprime nome
}
}

17/03/2024 32
Programação Orientada a Objetos

Java: Operadores Matemáticos

17/03/2024 33
Programação Orientada a Objetos

Java: Operadores de Atribuição


 Operadores de Atribuição

 Operadores de atribuição resultam na substituição do conteúdo do


termo à esquerda da expressão

 Com exceção da igualdade, todos os operadores resultam em


formas similares de execução.

17/03/2024 34
Programação Orientada a Objetos

Java: Operadores de Atribuição


 Precedência de operadores

17/03/2024 35
Programação Orientada a Objetos

Java: Indentação de Código


 Compiladores Java não consideram espaços em branco adicionais
no código

 Espaços em branco, mudanças de linha ou caracteres de tabulação


são ignorados

 Este recurso permite um padrão de edição de programas em um


formato que facilita a leitura

 É o que podemos chamar de “Indentação de Código”

17/03/2024 36
Programação Orientada a Objetos

Java: Indentação de Código


Código Indentado Código Não Indentado

<instrução1 nível1>; <instrução1 nível1>;


<instrução2 nível1> <instrução2 nível1>
{ {
<instrução1 nível2>; <instrução1 nível2>;
<instrução2 nível2>; <instrução2 nível2>;
<instrução3 nível2>; <instrução3 nível2>;
} }
<instrução3 nível1>; <instrução3 nível1>;
<instrução4 nível1>; <instrução4 nível1>;

17/03/2024 37
Programação Orientada a Objetos

Java: Finalizador de Instrução


 Instruções em Java são finalizadas por um ponto e vírgula ( ; )

 Como o espaço em branco é ignorado, pode-se escrever um


programa com várias instruções em uma única linha

 Não recomendado por questões de apresentação e leitura do


programa

17/03/2024 38
Programação Orientada a Objetos

Java: Estrutura em blocos

17/03/2024 39
Programação Orientada a Objetos

Java: Estrutura em blocos


Comentários em Java podem ser feitos de duas
formas
1. Inclusão de um marcado /* (barra e asterisco) no início do texto
com o comentário e */ (asterisco e barra) ao seu final
Exemplo:
<instrução 1>;
<instrução 2>;

/* Início do cálculo
Para o envio de foguetes */

<instrução3>;
<instrução4>; ...
2. Ou através da utilização de // (duas barras)
Exemplo:
<instrução1>; // Início do cálculo da folha de pagamento
<instrução2>;
<instrução3>; //Instrução inserida pelo Jose em 22-Jul-2020
<instrução4>; ...

17/03/2024 40
Programação Orientada a Objetos

Java: Exercícios
1. Faça um programa que receba quatro números inteiros, calcule e mostre a soma desses
números.

2. Faça um programa que receba três notas, calcule e mostre a média aritmética entre elas.

3. Faça um programa que receba três notas e seus respectivos pesos, calcule e mostre a média
ponderada.

4. Faça um programa que receba o salário de um funcionário, calcule e mostre o novo salário,
sabendo-se que este sofreu um aumento de 25%.

5. Faça um programa que receba o salário de um funcionário e o percentual de aumento, calcule e


mostre o valor do aumento e o novo salário.

6. Faça um programa que receba o salário base de um funcionário, calcule e mostre o salário a
receber, sabendo-se que o funcionário tem gratificação de 5% sobre o salário base e paga
imposto de 7% sobre este salário.

17/03/2024 41
Programação Orientada a Objetos

Java: Exercícios
7. Faça um programa que receba o salário base de um funcionário, calcule e mostre o seu salário a
receber, sabendo-se que o funcionário tem gratificação de R$ 50 e paga imposto de 10% sobre o
salário base.

8. Faça um programa que receba o valor de um depósito e o valor da taxa de juros, calcule e
mostre o valor do rendimento e o valor total depois do rendimento.

9. Faça um programa que calcule e mostre a área de um triângulo. Sabe-se que: Área = (base *
altura) / 2.

10. Faça um programa que calcule e mostre a área de um círculo. Sabe-se que: Área = π * r2.

17/03/2024 42

Você também pode gostar