• Nenhum resultado encontrado

ifal-poo-aula2

N/A
N/A
Protected

Academic year: 2021

Share "ifal-poo-aula2"

Copied!
27
0
0

Texto

(1)

Programa¸c˜

ao Orientada a Objetos

Programa¸c˜ao Orientada a Objetos

(Aula 2)

Leonardo Medeiros

Instituto Federal de Alagoas

(2)

Roteiro

1 Introdu¸c˜ao 2 Hist´orico 3 Portabilidade 4 Garbage Collector 5 POO

(3)

O que ´

e Java ?

“Java ´e uma linguagem de programa¸c˜ao simples, orientada a objetos, distribu´ıda, interpretada, robusta, segura, independente de arquitetura, port´avel, de alta performance, concorrente e dinˆamica” Propaganda da SUN Microsystems

(4)

O que ´

e Orienta¸c˜

ao a Objetos

´

E considerar que tudo ´e um objeto: Os sistemas s˜ao objetos

Os dados manipulados e comunidados entre os sistemas s˜ao objetos

Cada parte de um sistema (sub-sistema) ´e um objeto Os dispositivos eletrˆonicos s˜ao objetos

A interface com o usu´ario ´e um objeto composto de v´arios outros objetos

(5)

Hist´

orico

A Orienta¸c˜ao a Objetos tem provado seu valor, devido a reusabilidade de c´odigo, legibilidade e facilitar o trabalho em grupos de equipes.

A Sun teve uma grande preocupa¸c˜ao com a documenta¸c˜ao de c´odigo, gerando arquivos javadoc juntamente com o c´odigo produzido. Atrav´es de coment´arios tecidos pelos

(6)

Independˆ

encia de Arquitetura

O compilador gera um arquivo objeto independente de plataforma. O c´odigo compilado ´e execut´avel em diversos processadores. Bastando ter um interpretador java em tempo de execu¸c˜ao para executar a aplica¸c˜ao.

O compilador gera ByteCodes que ´e interpretado pelo Java Runtime.

(7)

Portabilidade

Diferentemente das linguagens C e C++, n˜ao h´a aspectos “dependenes da implementa¸c˜ao” na especifica¸c˜ao da linguagem Java. Os tamanhos e os tipos de dados primitivos s˜ao

especificados, assim como o comportamente da aritim´etica utilizada.

(8)

Portabilidade na Pr´

atica

Em dispositivos m´oveis como a linguagem Java possui apenas uma especifica¸c˜ao os desenvolvedores de hardware tendem seguir as mesmas, contudo BUGs podem existir em determinadas

plataformas e em outras n˜ao, o que traz a necessidade de portar a aplica¸c˜ao em diversas plataformas.

Aten¸c˜ao

(9)

Linguagem Interpretada

O interpretador Java pode executar bytecodes Java diretamente em qualquer m´aquina na qual o interpretador tenha sido escrito

(10)

Garbage Collector (1/5)

Java n˜ao permite acesso direto `a mem´oria para fazer gerenciamento da mesma.

Ela possui o Garbage Collector (Coletor de Lixo) que roda eventualmente no sistema (Geralmente quando est´a ocioso) e libera espa¸co na mem´oria.

´

E uma vantagem para o desenvolvedor pois n˜ao o obriga a manipular diretamente o acesso `a mem´oria do computador fazendo-o abstrair de ficar liberando mem´oria.

(11)

Garbage Collector (2/5)

O gerenciamento de mem´oria est´a relacionado a duas tarefas: aloca¸c˜ao: quando o programa requisita um bloco de mem´oria, o gerenciador disponibiliza esse bloco para a aloca¸c˜ao;

reciclagem: quando um bloco de mem´oria foi alocado, mas os dados n˜ao foram requisitados j´a h´a algum tempo e, esse bloco pode ser reusado para outra requisi¸c˜ao

(12)

Garbage Collector (3/5)

Vantagens:

liberdade do programador que n˜ao esta mais obrigado a ficar atento a detalhes de mem´oria;

h´a menos bugs de gerenciamento de mem´oria;

gerenciamento autom´atico ´e mais eficiente que o manual

Desvantagens:

desenvolvedor tende a estar mais desatento em rela¸c˜ao a detalhes de mem´oria;

(13)

Garbage Collector (4/5)

Em aplica¸c˜oes m´oveis o Garbage Collector (GC) pode ser cr´ıtico existe maneiras para facilitar o trabalho do GC.

1 Atribuir os objetos n˜ao utilizados para null

(14)

Garbage Collector (5/5)

System.Gc()

Esse m´etodo apenas sugere para que o GC seja chamado assim que puder removendo os objetos n˜ao utilizados e liberando espa¸co em mem´oria.

(15)

Classe carro

(16)

Classe Carro

O Objeto ‘carro’ tem propriedades e executa a¸c˜oes:

Propriedades (Atributos)

Cor Tamanho Potˆencia

A¸c˜oes (M´etodos)

Acelera Freia

(17)

Source Files

Todo arquivo possui a extens˜ao .java;

Cont´em uma classe definida como p´ublica(com nome idˆentico ao arquivo) e ilimitadas a classes particulares;

A classe se apresenta na seguinte ordem: package, imports, declara¸c˜ao e defini¸c˜ao da classe;

Example

1 package ifal.poo; 2 import java.util.*;

(18)
(19)

Case Sensitive

Case Sensitive

distin¸c˜ao entre mai´usculas e min´usculas int Numero1 = 0;

int numero1 = 5;

Na mesma declara¸c˜ao s˜ao duas vari´aveis distintas. Nomes iniciam por letras ( a..z A..Z ), sinal de dollar ( $ ) ou underscore ( ) depois ´e permitido d´ıgitos ( 0..9 )

(20)

Tipos Primitivos

boolean char byte short int long float double

(21)

Tamanho dos tipos Primitivos

Tipo Tamanho (Bits)

byte 8 int 32 float 32 char 16 short 16 long 64 double 64 Tabela: Tarefas

(22)

Signed Data - Inteiros

Tipos primitivos que recebem valores positivos, negativos ou zero. Tipo Tamanho M´aximo M´ınimo

byte 8 −27 27 - 1

short 16 -215 215 - 1 int 32 −231 231 -1

long 64 −263 263 - 1 Tabela: Signed Data

(23)

Unsigned Data

N˜ao possui valores negativos

O tipo char ´e inteiro mas n˜ao possui sinal. Ou seja ele vai de 0 a 216 -1.

O tipo char ´e o tipo que consegue armazenar um caractere em UNICODE

Unicode ´e o padr˜ao de caracteres que permite armazenar todos os caracteres em todos os idiomas ele possui 2 bytes de armazenamento o que lhe permite 65.536 caracteres. Bem mais do que o padr˜ao ASCII cerca de 35 mil

(24)

Tipo Boolean

Permite dois valores false

(25)

Constantes Para Valores N˜

ao Num´

ericos

Algumas opera¸c˜oes matem´aticas retornam valores que n˜ao podem ser expressos em n´umeros como INFINITO por exemplo.

Float.NaN

Float.NEGATIVE INFINITY Float.POSITIVE INFINITY Double.NaN

(26)

Atribui¸c˜

ao e Inicializa¸c˜

ao

Ap´os declarar uma vari´avel, deve-se inicializ´a-la explicitamente por meio de uma instru¸c˜ao de atribui¸c˜ao – nunca se deve ter vari´aveis n˜ao inicializadas.

int num1; //isto ´e uma declara¸c˜ao int num1 = 45; //isto ´e uma atribui¸c˜ao char digito = ‘S’;

(27)

D ´UVIDAS ? P´agina das aulas:

Referências

Documentos relacionados

Para o desenvolvimento do banco de dados da pesquisa, os dados e informações foram coletados de fontes diferenciadas, uma vez que a rodovia está condicionada não apenas a

If you wish to donate toward the cost of Easter Flowers to decorate our Church, please speak to a priest after Mass, or deposit offering in the mail slot at the

Para o Planeta Orgânico (2010), o crescimento da agricultura orgânica no Brasil e na América Latina dependerá, entre outros fatores, de uma legislação eficiente

Em casos de antecedentes de hipersensibilidade ao álcool cetostearílico, é aconselhável a utilização, em vez do creme, de uma forma farmacêutica que não

E se o PC do utilizador não tiver capacidade para se ligar ao outro PC depois de comutar para o tipo de rede do modo do ponto de acesso para o modo “Peer-to-Peer”.

No sistema de distribuição por dose individualizada os medicamentos são dispensados pela farmácia, separadamente por paciente, de acordo com a prescrição médica, para um

Trata-se de uma revisão da literatura realizada no mês de setembro de 2020 com base na SciELO, materiais disponibilizados pela Universidade Federal do Pará, Associação

Pacientes que apresentam reações anafiláticas ou outras imunologicamente-mediadas, ou seja, reações alérgicas (ex. agranulocitose) à dipirona podem apresentar um