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


k19 - k11 - orientação - a-objetos - em - java, Notas de estudo de Análise de Sistemas de Engenharia

Curso de Programação de Orientação a Objetos em Java da k19

Tipologia: Notas de estudo

Antes de 2010

Compartilhado em 13/12/2010

samuel-8
samuel-8 🇧🇷

5

(1)

3 documentos

1 / 166

Toggle sidebar

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

Não perca as partes importantes!

bg1
TREINAMENTOS
Orientação a Objetos em Java
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
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe k19 - k11 - orientação - a-objetos - em - java e outras Notas de estudo em PDF para Análise de Sistemas de Engenharia, somente na Docsity!

TREINAMENTOS

Orientação a Objetos em Java

Orientação a Objetos em Java

17 de novembro de 2010

Sumário

  • 1 Introdução
  • 2 Lógica
    • 2.1 O que é um Programa?
    • 2.2 Linguagem de Programação VS Linguagem de Máquina
    • 2.3 Exemplo de programa Java
    • 2.4 Método Main - Ponto de Entrada
    • 2.5 Máquinas Virtuais
    • 2.6 Exercícios
    • 2.7 Variáveis
    • 2.8 Operadores
    • 2.9 IF-ELSE
    • 2.10 WHILE
    • 2.11 FOR
    • 2.12 Exercícios
  • 3 Orientação a Objetos
    • 3.1 Objetos
    • 3.2 Classes
    • 3.3 Referências
    • 3.4 Manipulando Atributos
    • 3.5 Agregação
    • 3.6 Exercícios
    • 3.7 Métodos
    • 3.8 Sobrecarga(Overloading)
    • 3.9 Exercícios
    • 3.10 Construtores
      • 3.10.1 Construtor Default
      • 3.10.2 Sobrecarga de Construtores
      • 3.10.3 Construtores chamando Construtores
    • 3.11 Exercícios
    • 3.12 Referências como parâmetro
    • 3.13 Exercícios
  • 4 Arrays SUMÁRIO SUMÁRIO
    • 4.1 Arrays de Arrays
    • 4.2 Percorrendo Arrays
    • 4.3 Operações
    • 4.4 Exercícios
  • 5 Eclipse
    • 5.1 Workspace
    • 5.2 Welcome
    • 5.3 Workbench
    • 5.4 Perspective
    • 5.5 Views
    • 5.6 Criando um projeto java
    • 5.7 Criando uma classe
    • 5.8 Criando o método main
    • 5.9 Executando uma classe
    • 5.10 Corrigindo erros
    • 5.11 Atalhos Úteis
    • 5.12 Save Actions
  • 6 Atributos e Métodos de Classe
    • 6.1 Atributos Estáticos
    • 6.2 Métodos Estáticos
    • 6.3 Exercícios
  • 7 Encapsulamento
    • 7.1 Atributos Privados
    • 7.2 Métodos Privados
    • 7.3 Métodos Públicos
    • 7.4 Implementação e Interface de Uso
    • 7.5 Escondendo a implementação
    • 7.6 Acesso e Alteração de atributos
    • 7.7 Exercícios
  • 8 Herança
    • 8.1 Reutilização de Código
    • 8.2 Reescrita de Método
    • 8.3 Construtores e Herança
    • 8.4 Exercícios
  • 9 Polimorfismo
    • 9.1 Modelagem das contas
    • 9.2 É UM (extends)
    • 9.3 Melhorando o gerador de extrato
    • 9.4 Exercícios
  • 10 Classes Abstratas SUMÁRIO SUMÁRIO
    • 10.1 Classes Abstratas
    • 10.2 Métodos Abstratos
    • 10.3 Exercícios
  • 11 Interfaces
    • 11.1 Padronização
    • 11.2 Contratos
    • 11.3 Exemplo
    • 11.4 Polimorfismo
    • 11.5 Interface e Herança
    • 11.6 Exercícios
  • 12 Pacotes
    • 12.1 Organização
    • 12.2 O comando package
    • 12.3 Sub Pacotes
    • 12.4 Classes ou Interfaces públicas
      • 12.4.1 Fully Qualified Name
    • 12.5 Import
    • 12.6 Níveis de visibilidade
      • 12.6.1 Privado
      • 12.6.2 Padrão
      • 12.6.3 Protegido
      • 12.6.4 Público
    • 12.7 Exercícios
  • 13 Exceptions
    • 13.1 Tipos de erros de execução
    • 13.2 Lançando erros
      • 13.2.1 Checked e Unchecked
    • 13.3 Capturando erros
    • 13.4 Exercícios
  • 14 Object
    • 14.1 Polimorfismo
    • 14.2 O método toString()
    • 14.3 O método equals()
    • 14.4 Exercícios
  • 15 Entrada e Saída
    • 15.1 Byte a Byte
    • 15.2 Scanner
    • 15.3 PrintStream
    • 15.4 Exercícios
  • 16 Collections SUMÁRIO SUMÁRIO
    • 16.1 Listas
      • 16.1.1 Método: add(Object)
      • 16.1.2 Método: add(int, Object)
      • 16.1.3 Método: size()
      • 16.1.4 Método: clear()
      • 16.1.5 Método: contains(Object)
      • 16.1.6 Método: remove(Object)
      • 16.1.7 Método: remove(int)
      • 16.1.8 Método: get(int)
      • 16.1.9 Método: indexOf(Object)
      • 16.1.10 Benchmarking
    • 16.2 Exercícios
    • 16.3 Conjuntos
    • 16.4 Coleções
    • 16.5 Exercícios
    • 16.6 Laço foreach
    • 16.7 Generics
    • 16.8 Exercícios
  • 17 Apêndice -Swing
    • 17.1 Componentes
      • 17.1.1 JFrame
      • 17.1.2 JPanel
      • 17.1.3 JTextField e JLabel
      • 17.1.4 JTextArea
      • 17.1.5 JPasswordField
      • 17.1.6 JButton
      • 17.1.7 JCheckBox
      • 17.1.8 JComboBox
    • 17.2 Layout Manager
    • 17.3 Events, Listeners e Sources
      • 17.3.1 Exemplo
    • 17.4 Exercícios
  • 18 Apêndice -Threads
    • 18.1 Definindo Tarefas - (Runnables)
    • 18.2 Executando Tarefas
    • 18.3 Exercícios
    • 18.4 Controlando a Execução das Tarefas
      • 18.4.1 sleep()
      • 18.4.2 join()
    • 18.5 Exercícios
  • 19 Apêndice - Socket SUMÁRIO SUMÁRIO
    • 19.1 Socket
    • 19.2 ServerSocket
    • 19.3 Exercícios
  • 20 Apêndice - Chat K19
    • 20.1 Arquitetura do Sistema
    • 20.2 Aplicação servidora
      • 20.2.1 Registrador
      • 20.2.2 Receptor
      • 20.2.3 Emissor
      • 20.2.4 Distribuidor
    • 20.3 Aplicação cliente
      • 20.3.1 EmissorDeMensagem
      • 20.3.2 ReceptorDeMensagem
    • 20.4 Exercícios

Capítulo 1

Introdução

O principal objetivo deste treinamento é capacitar profissionais para atuar no mercado de trabalho na área de desenvolvimento de software. Conhecimentos sobre a plataforma Java e sobre o modelo de programação orientado a objetos são normalmente exigidos pelas empresas que desejam contratar. Portanto, os dois tópicos principais deste treinamento são: a plataforma Java e orientação a objetos. Resumidamente, apresentaremos a seguir cada um desses assuntos e as relações entre eles. Orientação a objetos é um modelo de programação ou paradigma de programação, ou seja, é um conjunto de ideias, conceitos e abstrações que servem como um guia para construir um software. A plataforma Java é composta por vários elementos. Neste momento os mais importantes são: a linguagem de programação e o ambiente de execução. A linguagem de programação é utilizada para definir formalmente todas as partes de um sistema e como essas partes se relacionam. Além disso, a linguagem de programação Java é orientada a objetos, ou seja, ela permite que você aplique as ideias, conceitos e abstrações de orientação a objetos de uma maneira natural. O ambiente de execução é composto basicamente de uma máquina virtual e de um con- junto de bibliotecas padronizado. A máquina virtual permite que um programa Java possa ser executado em ambiente diferentes. As bibliotecas facilitam a implementação dos sistemas. O processo de desenvolver um sistema orientado a objetos em Java se dá da seguinte forma: As partes do sistema e o relacionamento entre elas são definidas utilizando o modelo de pro- gramação orientado a objetos e depois o código fonte do sistema é escrito na linguagem de programação Java. Do ponto de vista do aprendizado, é interessante tentar definir o grau de importância dos dois assuntos principais abordados neste treinamento. Consideramos que a orientação a objetos é mais importante pois ela é utilizada frequentemente no desenvolvimento de software inclusive com outras linguagens de programação (C#, JavaScript, Ruby, C++, entre outras). As pessoas que possuem conhecimentos mais sólidos em orientação a objetos são mais preparadas para desenvolver sistemas na maioria das linguagens utilizadas pelas empresas que desenvolvem software. Para compreender melhor o conteúdo desse treinamento, é importante saber para quais tipos de sistemas o modelo de programação orientado a objetos e a plataforma Java são mais adequados. As características desses sistemas são:

  • Possui uma grande quantidade de funcionalidades, sendo necessária uma equipe de de-

1

Introdução

senvolvedores para desenvolver e manter o funcionamento do sistema.

  • Será utilizado por muito tempo e sofrerá alterações com o tempo.

Esse tipo de sistema é justamente o que muitas empresas que desenvolvem software estão interessadas em desenvolver. Por isso, elas acabam adotando orientação a objetos e Java. Para que sistemas desse tipo sejam bem sucedidos algumas qualidades são necessárias. Durante o treinamento, discutiremos quais são essas qualidades e como consegui-las.

www.k19.com.br 2

Lógica

máquina. Na prática, ninguém faz isso pois é uma tarefa muito complicada e demorada. É muito complicado para uma pessoa ler ou escrever um programa escrito em linguagem de máquina.

Ao invés disso, os programadores escrevem os programas utilizando alguma Linguagem de Programação. As linguagens de programação tentam ser mais próximas das linguagens hu- manas. Para uma pessoa, é mais fácil ler um programa escrito em linguagem de programação.

Os programas escritos pelos programadores em alguma linguagem de programação são “traduzidos” para programas escritos em linguagem de máquina para que os computadores possam executá-los. Quem faz essa tradução são os compiladores.

Os programas escritos em linguagem de programação são chamados de Código Fonte. Os programas escritos em linguagem de máquina são chamados de Código Executável ou simplesmente Executável.

2.3 Exemplo de programa Java

Uma linguagem de programação muito utilizada no mercado de trabalho é a linguagem Java. Os códigos dos programas escritos em Java são colocados em arquivos com a extensão .java.

Observe o código do exemplo de programa escrito em Java que imprime uma mensagem na tela.

1 // arquivo: OlaMundo.java 2 class OlaMundo { 3 public static void main(String[] args) { 4 System.out.println("Olá Mundo"); 5 } 6 }

Agora, não é necessário entender todo esse código fonte. O importante é saber que todo programa escrito em Java para executar precisa ter o método especial main.

Esse código fonte precisa ser traduzido para um executável para que um computador possa executá-lo. Essa “tradução” é realizada por um compilador da linguagem Java.

Suponha que o código acima seja colocado no arquivo OlaMundo.java. O compilador padrão do Java (javac) pode ser utilizado para compilar esse arquivo. O terminal permite que o compilador seja executado.

www.k19.com.br 4

Lógica

O programa gerado pelo compilador é colocado em um arquivo chamado OlaMundo.class que podemos executar pelo terminal.

2.4 Método Main - Ponto de Entrada

Para um programa Java executar, é necessário definir um método especial para ser o ponto de entrada do programa, ou seja, para ser o primeiro método a ser chamado quando o programa for executado. O método main precisa ser public, static, void e receber um array de strings como argumento. Algumas das possíveis versões do método main:

1 static public void main(String[] args) 2 public static void main(String[] args) 3 public static void main(String args[]) 4 public static void main(String[] parametros)

Os parâmetros do método main são passados pela linha de comando e podem ser manipu- lados dentro do programa. O código abaixo imprime cada parâmetro recebido em uma linha diferente. A execução do programa é mostrada na figura abaixo.

5 K19 Treinamentos

Lógica

Do ponto de vista das empresas, manter atualizados e distribuir corretamente os diversos executáveis de um mesmo programa é custoso.

Além disso, ao escrever um programa, os programadores utilizam bibliotecas que já rea- lizam parte do trabalho que deveria ser feito. Essas bibliotecas são chamadas diretamente do código fonte e elas normalmente só funcionam em um determinado Sistema Operacional e em um tipo específico de processador. Dessa forma, o código fonte de um programa fica acoplado a um determinado tipo de processador e um determinado sistema operacional.

Não basta manter diversos executáveis de um mesmo programa. É necessário ter diversos códigos fonte de um mesmo programa, um para cada tipo de processador e sistema operacional que serão utilizados. O alto custo do desenvolvimento e manutenção desses códigos fonte pode tornar inviável comercialização de um software.

7 K19 Treinamentos

Lógica

Para não ser necessário manter diversos executáveis e diversos códigos fonte de um mesmo programa, surgiu o conceito de máquina virtual.

Uma máquina virtual é um programa que funciona como um computador, ela sabe ler e executar instruções de programas escritos na sua própria linguagem de máquina. Além disso, as máquinas virtuais oferecem bibliotecas para criação de programas.

Para ser vantajoso, é necessário ter diversas implementações da mesma máquina virtual. Cada implementação deve funcionar em um sistema operacional e em um tipo de processador.

Dessa forma, um programador pode escrever o código fonte de um programa chamando diretamente as bibliotecas da máquina virtual. Depois, compilar esse código fonte para gerar um executável escrito na linguagem de máquina da máquina virtual.

www.k19.com.br 8

Lógica

  1. Crie um programa que imprima uma mensagem na tela.

1 // arquivo: OlaMundo.java 2 class OlaMundo { 3 public static void main(String[] args) { 4 System.out.println("Olá Mundo"); 5 } 6 }

Compile e execute a classe OLAMUNDO.

2.7 Variáveis

Um dos recursos fundamentais que as linguagens de programação oferecem são as variá- veis. A função de uma variável é permitir que um programa armazene e manipule dados na memória RAM do computador.

Declaração

Na linguagem de programação Java, as variáveis devem ser declaradas para que possam ser utilizadas. A declaração de uma variável envolve definir um nome único (identificador) e um tipo de valor. As variáveis são acessadas pelos nomes e armazenam valores compatíveis com o seu tipo.

1 // tipo: int, nome: numero 2 int numero; 3 4 // tipo: double, nome: preco 5 double preco;

www.k19.com.br 10

Lógica

Declaração, Inicialização e Uso

Toda variável deve ser inicializada antes de ser utilizada pela primeira vez. Se isso não for realizado ocorrerá um erro de compilação. A inicialização é realizada através do operador de atribuição =. Esse operador guarda um valor na variável, ou melhor, no espaço de memória reservado para a variável.

1 // Declaracoes 2 int numero; 3 double preco; 4 5 // Inicializacao 6 numero = 10; 7 8 // Uso 9 System.out.println(numero); 10 11 // Erro de compilacao 12 System.out.println(preco);

Mais Declarações

A declaração de uma variável pode ser feita em qualquer linha de um bloco. Não é necessário declarar todas as variáveis no começo do bloco.

1 // Declaracao com Inicializacao 2 int numero = 10; 3 4 // Uso 5 System.out.println(numero); 6 7 // Outra Declaracao com Inicializacao 8 double preco = 137.6; 9 10 // Uso 11 System.out.println(preco);

Escopo

Toda variável pode ser utilizada dentro do bloco no qual ela foi declarada após a linha da sua inicialização.

1 // Aqui nao pode usar a variavel numero 2 int numero = 10; 3 4 // Aqui pode usar a variavel numero 5 System.out.println(numero);

Não é permitido declarar duas variáveis com o mesmo nome dentro de um mesmo bloco. Se isso ocorrer o compilador indicará um erro de compilação.

11 K19 Treinamentos