• Nenhum resultado encontrado

Java e Orientação a Objetos (aula 2) Prof. Sérgio Ricardo

N/A
N/A
Protected

Academic year: 2021

Share "Java e Orientação a Objetos (aula 2) Prof. Sérgio Ricardo"

Copied!
80
0
0

Texto

(1)

Java e Orientação a Objetos

(aula 2)

(2)

Paradigma de Orientação a Objetos

A orientação a objetos (OO) é um paradigma de análise, projeto e programação de sistemas de

software baseado na composição e interação

entre diversas unidades de software chamadas de objetos (Wikipédia).

(3)

Paradigma de Orientação a Objetos

• Características:

▫ Alta reutilização de software,

▫ Desenvolvimento sempre evolutivo,

▫ Construções complexas a partir de construções simples,

▫ Manutenção tende a ser simples.

(4)

Elementos básicos em OO

Classes

Objetos/Instâncias

(5)

Orientação a Objetos – Definições

• Classe representa um conjunto de objetos com características afins.

• Uma classe define o comportamento dos objetos através de seus métodos, e quais estados ele é capaz de manter através de seus atributos.

(6)

Orientação a Objetos – Definições

• Subclasse é uma nova classe que herda

características de sua(s) classe(s) ancestral(is)

• Classes contém:

– Atributos: determinam o estado do objeto; – Métodos: semelhantes a procedimentos em

linguagens convencionais, são utilizados para manipular os atributos. Pessoa Funcionário Cliente Carro Motor Roda superclasse subclasse

(7)

Orientação a Objetos – Definições

• Atributo são características de um objeto. Basicamente a estrutura de dados que vai representar a classe.

▫ Pessoa: nome, telefone ▫ Cliente: cnpj, nome

(8)

Orientação a Objetos – Definições

• Os atributos possuem valores. O conjunto de valores dos atributos de um determinado objeto é chamado de estado

(9)

Orientação a Objetos – Definições

Método define as habilidades (ações, funções) dos

objetos.

• Um método em uma classe é apenas uma definição. A ação só ocorre quando o método é invocado através do objeto

(10)

Orientação a Objetos

• Objeto é uma entidade que possui um estado e um conjunto de operações definidas para funcionar neste estado (“Engenharia de Software”, Sommerville)

• Instanciação é o ato de criar um objeto.

(11)

Orientação a Objetos

• Um objeto é capaz de armazenar estados através de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a

outros objetos.

• Exemplo de objetos da classe Funcionário: João, José, Maria; classe Cliente: Pedro, José

• Os objetos se comunicam por meio de solicitação de serviços (métodos) de outros objetos, e se

necessário, por troca de informações

• Orientação a objetos ajuda a organizar a

(12)
(13)

Orientação a Objetos – Definições

• Abstração é a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais.

• Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software

(14)

Orientação a Objetos – Definições

• Encapsulamento consiste na separação de aspectos

internos e externos de um objeto. Este mecanismo é utilizado amplamente para impedir o acesso direto ao estado de um objeto (seus atributos), disponibilizando externamente apenas os métodos que alteram estes estados.

Exemplo: você não precisa conhecer os detalhes dos circuitos de um telefone para utilizá-lo. A carcaça do telefone encapsula esses detalhes, provendo a você uma interface mais amigável (os botões, o monofone e os sinais de tom)

(15)

Encapsulamento

INT E RF A CE INT E RF A CE INTERFACE INTERFACE M ens age m Mensage m Mensage m Me nsage m

Interface: Contrato com o mundo exterior. Define o que uma entidade externa

(16)

Encapsulamento

(17)

Encapsulamento

• Níveis de Acesso

• Publico: Garante acesso a todos os objetos

• Protegido: Garante acesso à instancia e subclasses.

(18)

Encapsulamento

• Vantagens:

– Transforma os objetos em componentes plugáveis – Independência e reutilização – Transparência – Mitigação de impactos • Características – Abstração – Ocultação da implementação – Divisão de responsabilidades

(19)

Encapsulamento

• Abstração: processo de simplificar um problema difícil.

• Vantagens da abstração: facilidade e reutilização.

(20)

Encapsulamento

• Exemplos de abstração

– Fila de banco

– Estabelecimento fast food * abastração: fila FIFO

(21)

Encapsulamento

• Abstração Eficaz

▫ Trate do caso geral

▫ Procure o que for comum

▫ Não esqueça de resolver o problema

▫ Abstração muitas vezes não está aparente ▫ Prepare-se para a falha

(22)

Encapsulamento

• Ocultação da implementação

▫ proteção do objeto (TAD) ▫ proteção do usuário

• Tipo: define o domínio a partir do qual seus valores válidos podem ser extraídos

(23)

Encapsulamento

(24)

Encapsulamento

● Protegendo os usuários de seus objetos

– Código fracamente acoplado (independente) – Código fortemente acoplado (vinculado)

(25)
(26)
(27)

Orientação a Objetos – Definições

Herança (ou generalização) é o mecanismo pelo

qual uma classe (sub-classe) pode estender outra classe (super-classe), aproveitando seus comportamentos (métodos) e variáveis possíveis (atributos).

(28)

Orientação a Objetos – Definições

• Associação é o mecanismo pelo qual um objeto se

relaciona com outros.

• Exemplo, vários alunos podem estar associados à um único professor e um único aluno pode estar associado à vários professores. Neste caso, não existe um relacionamento de posse entre esses objetos. Todos os objetos são independentes. Um aluno pode existir sem a necessidade de um professor, da mesma forma que é possível existir um professor sem a necessidade da existência de um aluno.

(29)

Orientação a Objetos – Definições

• Agregação representa um todo que é composto de várias partes.

▫ Exemplo: um conselho é um agregado de membros, da mesma forma que uma reunião é um agregado de uma pauta, uma sala e de

participantes. A implementação deste relacionamento não é uma

contenção, pois uma reunião não CONTÉM uma sala. Assim sendo, as partes da agregação podem fazer outras coisas em outras partes da aplicação, eles podem ser referenciados por outros objetos e não somente por um objeto

▫ Em UML, a agregação é representada por uma linha com um losango vazio do lado da classe que manda no relacionamento

(30)

Orientação a Objetos – Definições

• A composição, diferentemente da agregação, é um relacionamento de contenção.

• Um objeto (container) CONTÉM outros objetos (elementos). Esses elementos que estão contidos dentro de outro objeto dependem dele para existir. Eles são criados e destruídos de acordo com o seu

container. Exemplo:

▫ Container: pedido, e seus elementos seriam seus itens. Não faz sentido existirem itens de pedido sem existir um pedido onde tais itens estariam contidos

• Em UML é representada por uma linha com um losango preenchido do lado da classe dona do relacionamento

(31)

Orientação a Objetos – Definições

• Polimorfismo é a capacidade de uma variável se referir a

objetos de diferentes classes em tempo de execução

• Ocorre quando o método que já foi definido no ancestral é redefinido em seu descendente com comportamento diferente.

(32)

Formas de Polimorfismos

• Redefinição (overriding): mesma função mas comportamentos diferentes.

• Sobrecarga(overloading): nome de uma função usado mais de uma vez com diferentes tipos de parâmetros.Ex: operação soma com dois

parâmetros reais e outra com parâmetros inteiros.

(33)

Redefinição de função

Capacidade de um objeto responder com diferentes

comportamentos uma mesma solicitação.

Ex. Suponha um método que receba um objeto

ContaEmBanco e que neste método seja solicitado a

ativação do método Sacar.

• O comportamento do objeto vai ser diferente em função do objeto real:

1. ContaEspecial permite que o saldo fique negativo 2. ContaComum não O comportamento do objeto será relativo ao

(34)

Sobrecarga de função

• Atribui a um único operador a capacidade de agir de

diferentes formas em função dos parâmetros

recebidos.

Ex. na classe ContaEmBanco, o método Depositar possui duas implementações diferentes:

1. uma para depósitos em dinheiro 2. outra para depósitos em cheque

O serviço escolhido depende do parâmetro enviado junto à ativação do serviço

(35)
(36)

• Linguagem Orientada a Objetos

• Criada pela Sun (http://www.sun.com) e mantida através de um comitê

(http://www.jcp.org)

(37)

Por que usar Java?

• Java é multiplataforma, ou seja, um programa escrito em Java pode ser executado em qualquer plataforma (sistema operacional combinado com

hardware) sem necessidade de alterações no

código fonte

• Java é uma arquitetura aberta, extensível, com várias implementações, o que a torna

independente do fornecedor.

• Java pode ser baixada gratuitamente do site da Sun

.

(38)

Por que usar Java?

• Java é uma linguagem independente de plataforma que pode ser utilizada em vários produtos eletrônicos, tais como torradeiras e

refrigeradores.

• Java é uma linguagem completamente orientada

a objeto com forte suporte a técnicas adequadas de engenharia de software

• Java é uma das linguagens de desenvolvimento de softwares mais utilizadas no mundo.

(39)

Como Java Funciona

• Em uma linguagem de programação como C e Pascal, temos o seguinte quadro quando vamos compilar um programa.. Código fonte em c Teste.c

Gera código binário para um determindao SO

Teste.exe

Compila

(40)

Como Java Funciona

• O código fonte é compilado para uma plataforma e sistema operacional específicos. Muitas vezes, o próprio código fonte é desenvolvido visando uma única plataforma!

• Na maioria das vezes, a sua aplicação se utiliza das bibliotecas do sistema operacional, como, por

exemplo, a de interface gráfica para desenhar as 'telinhas'. A biblioteca de interface gráfica do

(41)

Como Java funciona

• Maquina Virtual

▫ Um mecanismo que permite executar código em Java em qualquer plataforma.

• Java utiliza o conceito de máquina virtual, onde existe uma camada extra entre o sistema operacional e a aplicação, responsável por “traduzir” (não é apenas isso) o que sua aplicação deseja fazer para as respectivas chamadas do sistema operacional no qual ela está rodando no momento.

(42)

Como Java funciona

• A máquina virtual Java (JVM)

– É uma máquina imaginária que é implementada pela emulação de um software sobre uma máquina real.

– Prover uma especificação de plataforma de hardware no qual todos os códigos java são compilados. Essa especificação torna os

programas java independente de plataforma

porque toda compilação é feita para uma máquina imaginária.

(43)

Como Java Funciona

AloMundo.class

AloMundo.java Compila

(44)

Instalando a plataforma

Conceitos Iniciais

JRE (Java Runtime Environment):

ambiente de execução Java, formado pela JVM e bibliotecas, tudo que você precisa para executar uma aplicação Java.

JDK (Java Development Kit): Kit para

desenvolvimento. Ele é formado pela JRE somado a ferramentas, como o compilador.

• Tanto o JRE e o JDK podem ser baixados do site

(45)

Instalando a plataforma

Conceitos Iniciais

• Quando falamos de Java Virtual Machine,

estamos falando de uma especificação. Ela diz como o bytecode deve ser interpretado pela JVM. Portanto, existem várias JVM por

exemplo:

– Oracle JVM

– JRockit da BEA – J9 da IBM

(46)

Primeiro Programa em Java

Selecione

(47)

Clique em Next

Primeiro Programa em Java

Selecione Java

Classe Java Principal

(48)

Digite o nome do Arquivo

Primeiro Programa em Java

(49)

Primeiro Programa em Java

(50)

Comentários

• Utilizados para documentar parte do código

• Não fazem parte do programa – não são compilados

• Documentar programas através de comentários é uma boa prática de programação

(51)

Primeiro Programa em Java

Especificador de Acesso ser colocado em uma classe Em java todo código deve Nome da Classe

Indica que, a classe está acessivel a outras classes

(52)

Primeiro Programa em Java

Indica o início de um bloco

(53)

Primeiro Programa em Java

Método realiza uma tarefa, mas não retorna nehuma

informação

A execução de qualquer programa em java inicia

pelo main

Exceto Applets

Os parentese indicam que o main

(54)

Primeiro Programa em Java

System.out

É a saída padrão do sistema

(55)

Primeiro Programa em Java

• Saída de Dados

▫ Para saída dos dados podemos usar um dos comandos:

 System.out.print()

 System.out.println()

(56)
(57)
(58)
(59)
(60)
(61)
(62)
(63)
(64)

Obtendo entrada do teclado

• Existem várias formas:

▫ Classe Scanner ▫ Interface Gráfica

(65)

Classe Scanner

(66)

Etapas para obter uma entrada

Indica que queremos utilizar a classe Scanner

Método main

(67)

Etapas para obter uma entrada

Indica que queremos utilizar a classe Scanner

Cria uma variável do tipo Scanner

Imprime uma mensagem para o

(68)

Etapas para obter uma entrada

Imprime o valor da entrada

Recebe a entrada do usuário

(69)

Conversão de String

• É possível converter String para qualquer tipo primitivo

▫ int – Integer.parseInt( string ) ▫ Float – Float.parseFloat( string )

▫ Double - Double.parseFloat( string )

• Da mesma forma é possível converter tipos primitivos para String

(70)

Conversão de String

Convertendo de String para inteiro

(71)
(72)

Estruturas de Controle

• Estruturas de Seleção

(73)

Estrutura de Seleção

• Java possui as seguintes estruturas de seleção

▫ if

▫ if – else ▫ switch

(74)

Comando if

• Especifica que um comando ou bloco será executado se e somente se uma determinada condição booleana for verdadeira

(75)

Comando if - else

• Especifica que um comando ou bloco será

executado quando uma condição booleana for verdadeira e outro comando quando a

(76)

Comando switch

(77)

Estruturas de Repetição

• Permite executar um bloco de instruções um número determinado de vezes

▫ while

▫ do – while ▫ for

(78)

Comando while

• Os comandos no laço while são executados

(79)

Comando do - while

• A principal diferença no do – while é que os

(80)

Comando for

• Permite a execução de um comando ou um bloco um pré-definido número de vezes

Referências

Documentos relacionados

Com o fomento de políticas voltadas o contexto da Língua de Sinais nos cursos de Ensino Superior tem como fator de observação a prática docente e o uso de

demands of daily life, have a higher correlation with the risk of falls than maximum strength tests, this study aims to determine the prevalence of falls and resulting fractures

Mathes and Nahai 20 con- ducted a detailed study of the vascular anatomy of the muscles, where the blood configuration model of the muscle determines how safe it is to

Pensando no público que freqüenta o Programa Integrado para a Terceira Idade da Unijuí, realizamos uma recente avaliação física para avaliar os níveis de

As variáveis estudadas foram: idade, sexo, escolaridade, estado civil, renda e classe social, tempo de trabalho, peso, estatura, circunferência da cintura, índice de massa

A Figura 3 mostra o ganho relativo de massa corporal (1° dia = 100%) durante os 30 dias de tratamento, calculado a partir da mensuração diária de massa corporal (g) dos ratos

(grifos nossos). b) Em observância ao princípio da impessoalidade, a Administração não pode atuar com vistas a prejudicar ou beneficiar pessoas determinadas, vez que é

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo