Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Introdução à Programação Orientada a Objetos em Java, Notas de estudo de Informática

Este documento aborda os conceitos básicos da programação orientada a objetos (oo) na linguagem java, incluindo conceitos como pacotes, classes, objetos, membros, atributos, métodos, construtores e interfaces. Além disso, discutimos as características oo em java, como abstração, encapsulamento, herança e polimorfismo. O documento também fornece sintaxes java para a construção de estruturas de dados e a criação de aplicações simples em java.

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 24/12/2009

carlos-hb-1
carlos-hb-1 🇧🇷

1 documento

1 / 63

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Programa
Programaçã
ção
o
orientada a
orientada a objetos
objetos
em Java
em Java
Java 2 Standard Edition
Helder da Rocha
www.argonavis.com.br
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f

Pré-visualização parcial do texto

Baixe Introdução à Programação Orientada a Objetos em Java e outras Notas de estudo em PDF para Informática, somente na Docsity!

Programaçã^ Programa

çãoo

orientada a objetosorientada a

objetos

Java 2 Standard Editionem Javaem Java Helder da Rochawww.argonavis.com.br

Assuntos abordados neste módulo

ƒ^ Conceitos de programação orientada a objetos existentes nasintaxe da linguagem Java^ ƒ^ Artefatos: pacote, classe, objeto, membro, atributo, método,construtor e interface^ ƒ^ Características OO em Java: abstração, encapsulamento, herança epolimorfismo ƒ^ Sintaxe Java para construção de estruturas de dados^ ƒ^ Tipos de dados primitivos^ ƒ^ Componentes de uma classe ƒ^ Construção de aplicações simples em Java^ ƒ^ Como construir uma classe Java (um tipo de dados) contendométodos, atributos e construtores^ ƒ^ Como construir e usar objetos ƒ^ Este módulo é longo e aborda muitos assuntos que serãotratados novamente em módulos posteriores

O que é Orientação a objetos

ƒ^ Paradigma do momento na engenharia de software^ ƒ^ Afeta análise, projeto (design) e programação ƒ^ A^ análise^ orientada a objetos^ ƒ^ Determina

o que^ o^ sistema

deve fazer: Quais os atores envolvidos? Quais as atividades a serem realizadas? ƒ Decompõe o sistema em

objetos : Quais são? Que tarefas

cada objeto terá que fazer? ƒ O design^ orientado a objetos ƒ Define^ como^ o sistema será implementado ƒ Modela os relacionamentos entre os objetos e atores(pode-se usar uma linguagem específica como UML) ƒ Utiliza e reutiliza abstrações como classes, objetos,funções, frameworks, APIs, padrões de projeto

Abstração de casos de uso emSistema de Biblioteca

(1) análise OO e (2) análise procedural(1) Trabalha no^ espaço doproblema^ (casos de usosimplificados em objetos) – Abstrações mais simples emais próximas do mundo real

Adicionarlivros^ PesquisarCatálogo(2) Trabalha no^ espaço da solução^ (casos de uso decompostos emprocedimentos algorítmicos)^ –^ Abstrações mais próximas domundo do computadorSistema de Biblioteca BibliotecaCatálogoLivroLivroAutorAutorLivroAutorAutor

Usuário

Bibliotecário

Lógica proceduralencapsulada emobjetos pequenosAdicionar Livros^ Pesquisar CatalogoLógica exposta eespalhada portodo o sistema

Ou seja...

ƒ^ Em uma linguagem OO pura^ ƒ^ Uma variável é um objeto^ ƒ^ Um programa é um objeto^ ƒ^ Um procedimento é um objeto ƒ^ Um objeto é composto de objetos, portanto^ ƒ^ Um programa (objeto) pode ter variáveis (objetos querepresentam seu estado) e procedimentos (objetos querepresentam seu comportamento) ƒ^ Analogia: abstração de um telefone celular^ ƒ^ É composto de outros objetos, entre eles bateria e botões^ ƒ^ A bateria é um objeto também, que possui pelo menos umoutro objeto: carga, que representa seu estado^ ƒ^ Os botões implementam comportamentos

Objetos (2)

ƒ^ Em uma linguagem orientada a objetos pura^ ƒ^ Um número, uma letra, uma palavra, uma valor booleano,uma data, um registro, uma botão da GUI são objetos ƒ^ Em Java, objetos são armazenados na memória deheap e manipulados através de uma referência(variável), guardada na pilha.^ ƒ^ Têm estado (seus atributos)^ ƒ^ Têm comportamento (seus métodos)^ ƒ^ Têm identidade (a referência) ƒ^ Valores unidimensionais não são objetos em Java^ ƒ^ Números, booleanos, caracteres são armazenados na pilha^ ƒ^ Têm apenas identidade (nome da variável) e estado (valorliteral armazenado na variável); - dinâmicos; + rápidos

HeapPilha (^00105) 001A001A ref 23 001F

Literais e tipos

ƒ^ Tipos representam um valor, uma coleção de valoresou coleção de outros tipos. Podem ser^ ƒ^ Tipos básicos, ou primitivos, quando representam unidadesindivisíveis de informação de tamanho fixo^ ƒ^ Tipos complexos, quando representam informações quepodem ser decompostas em tipos menores. Os tiposmenores podem ser primitivos ou outros tipos complexos ƒ^ Literais: são valores representáveis literalmente.^ ƒ^ Números:

1, 3.14, 1.6e-23 ƒ Valores booleanos:^ true^

e^ false ƒ^ Caracteres individuais:

'a', '\u0041', '\n'

ƒ^ Seqüências de caracteres:

"aaa", "Java" ƒ^ Vetores de números, booleanos ou strings:

UnidimensionaisCompostos {"a", "b"}

Tipos primitivos e complexos

ƒ^ Exemplos de tipos primitivos (atômicos)^ ƒ^ Um inteiro ou um caractere,^ ƒ^ Um literal booleano (true ou false) ƒ^ Exemplos de tipos complexos^ ƒ^ Uma data: pode ser decomposta em três inteiros,representando dia, mês e ano^ ƒ^ Um vetor de inteiros: pode ser decomposto em suas partes^ ƒ^ Uma seqüência de caracteres: pode ser decomposta noscaracteres que a formam ƒ^ Em Java, tipos complexos são armazenados comoobjetos e tipos primitivos são guardados na pilha^ ƒ^ Apesar de serem objetos, seqüências de caracteres(strings) em Java podem ser representadas literalmente.

Exemplos de tipos primitivos e literais ƒ Literais de caracter: char c = 'a';char z = '\u0041'; // em Unicode ƒ Literais inteiros int i =^ 10;^ short^

s^ =^ 15;^ byte^

b^ =^ 1; long^ hexa^ =^ 0x9af0L;

int^ octal^ =^ 0633; ƒ^ Literais de ponto-flutuante^ float^ f^ =^ 123.0f;double^ d^ =^

12.3;double g = .1e-23; ƒ^ Literais booleanos^ boolean^ v^ =

true;boolean f = false; ƒ^ Literais de string (não é tipo primitivo - s é uma referência)^ String s = "abcde"; ƒ^ Literais de vetor (não é tipo primitivo - v é uma referência)^ int[] v = {5, 6};

O que é uma classe?

ƒ^ Classes são uma especificação para objetos ƒ^ Uma classe representa um tipo de dados complexo ƒ^ Classes descrevem^ ƒ^ Tipos dos dados que compõem o objeto (o que podem armazenar)^ ƒ^ Procedimentos que o objeto pode executar (o que podem fazer)^ Casa^ boolean abrePorta() {}int numeroColor corstatic String arquiteto

12 56 72 Classe

Instâncias da classe Casa (objetos)^ Casa c1 = new Casa();c1.numero = 12;c1.cor = Color.yellow;Casa c2 = new Casa();c2.numero = 56;c2.cor = Color.red;Casa c3 = new Casa();c3.numero = 72;c3.cor = Color.white;c3.abrePorta();

Resumo^16

ƒ^ Objetos são conceitos que têm estado (atributos),comportamento (métodos) e identidade (referência) ƒ^ Tipos representam valores^ ƒ^ Primitivos: valores fixos e indivisíveis. São armazenados na pilha^ ƒ^ Complexos: valores multidimensionais que podem serdecompostos em componentes menores. Descrevem objetos quesão armazenados no heap ƒ^ Literais^ ƒ^ Usados para definir tipos primitivos ou certos tipos complexosformados por componentes iguais (strings e vetores) ƒ^ Variáveis podem armazenar valores de tipos primitivos oureferências para objetos ƒ^ Classes são tipos complexos: descrevem objetos^ ƒ^ Não são importantes no contexto da execução

Membros: atributos e métodos

ƒ^ Uma classe define uma estrutura de dados não-ordenada^ ƒ^ Pode conter componentes em qualquer ordem ƒ^ Os componentes de uma classe são seus membros ƒ^ Uma classe pode conter três tipos de componentes^ ƒ^ Membros estáticos ou de classe: não fazem parte do "tipo"^ ƒ^ Membros de instância: definem o tipo de um objeto^ ƒ^ Procedimentos de inicialização ƒ^ Membros estáticos ou de classe^ ƒ^ Podem ser usados através da classe mesmo quando não há objetos^ ƒ^ Não se replicam quando novos objetos são criados ƒ^ Membros de instância^ ƒ^ Cada objeto, quando criado, aloca espaço para eles^ ƒ^ Só podem ser usados através de objetos ƒ^ Procedimentos de inicialização^ ƒ^ Usados para inicializar objetos ou classes

Boas práticas ao escrever classes

ƒ^ Use, e abuse, dos espaços^ ƒ^ Endente, com um tab ou 4 espaços, membros da classe,^ ƒ^ Endente com 2 tabs, o conteúdo dos membros, ... ƒ^ A ordem dos membros não é importante, mas seguirconvenções melhora a legibilidade do código^ ƒ^ Mantenha os membros do mesmo tipo juntos (nãomisture métodos estáticos com métodos de instância)^ ƒ^ Declare as variáveis antes ou depois dos métodos (nãomisture métodos, construtores e variáveis)^ ƒ^ Mantenha os seus construtores juntos, de preferênciabem no início^ ƒ^ Se for necessário definir blocos static, defina apenas um,e coloque-o no início ou no final da classe.

Construtores

ƒ^ Construtores são procedimentos realizados naconstrução de objetos^ ƒ^ Parecem métodos, mas não têm tipo de retorno e têmnome idêntico ao nome da classe^ ƒ^ Não fazem parte da definição do tipo do objeto (interface)^ ƒ^ Nem sempre aparecem explícitos em uma classe: podemser omitidos

(o sistema oferece uma implementação default)

ƒ^ Para cada objeto, o construtor é chamadoexatamente uma vez: na sua criação^ ƒ^ Exemplo:^ >^ Objeto

obj^ =^ new^ Objeto(); ƒ^ Alguns podem requerer parâmetros^ >^ Objeto^ obj

=^ new^ Objeto(35,

Chamada deconstrutor "Nome");