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: Classes Abstratas e Interfaces, Manuais, Projetos, Pesquisas de Programação para Java

Engenharia de computação em Java e demais ambientes de programação

Tipologia: Manuais, Projetos, Pesquisas

2019

Compartilhado em 06/09/2019

luiz_roque
luiz_roque 🇧🇷

5

(1)

2 documentos

1 / 199

Toggle sidebar

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

Não perca as partes importantes!

bg1
PROGRAMAÇÃO II
(JAVA)
Professor Dr. Edson A. Oliveira Junior
Professor Me. Rogério de Leon Pereira
GRADuAçãO
Unicesumar
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 Introdução à Programação Orientada a Objetos: Classes Abstratas e Interfaces e outras Manuais, Projetos, Pesquisas em PDF para Programação para Java, somente na Docsity!

PROGRAMAÇÃO II

(JAVA)

Professor Dr. Edson A. Oliveira Junior Professor Me. Rogério de Leon Pereira

GRADuAçãO

Unicesumar

Reitor Wilson de Matos Silva Vice-Reitor Wilson de Matos Silva Filho Pró-Reitor de Administração Wilson de Matos Silva Filho Pró-Reitor de EAD Willian Victor Kendrick de Matos Silva Presidente da Mantenedora Cláudio Ferdinandi NEAD - Núcleo de Educação a Distância Direção de Operações Chrystiano Mincoff Coordenação de Sistemas Fabrício Ricardo Lazilha Coordenação de Polos Reginaldo Carneiro Coordenação de Pós-Graduação, Extensão e Produção de Materiais Renato Dutra Coordenação de Graduação Kátia Coelho Coordenação Administrativa/Serviços Compartilhados Evandro Bolsoni Gerência de Inteligência de Mercado/Digital Bruno Jorge Gerência de Marketing Harrisson Brait Supervisão do Núcleo de Produção de Materiais Nalva Aparecida da Rosa Moura Design Educacional Camila Zaguini Silva Fernando Henrique Mendes Nádila de Almeida Toledo Rossana Costa Giani Projeto Gráfico Jaime de Marchi Junior José Jhonny Coelho Editoração Robson Yuiti Saito Revisão Textual Ana Paula da Silva, Flaviana Bersan Santos, Jaquelina Kutsunugi, Keren Pardini, Maria Fernanda Canova Vasconcelos, Nayara Valenciano, Rhaysa Ricci Correa e Viviane Favaro Notari Ilustração Robson Yuiti Saito

CENTRO uNIVERSITÁRIO DE MARINGÁ. Núcleo de Educação a Distância: C Programação II (JAVA) / Edson A. Oliveira Junior; Rogério de Leon Pereira Reimpressão revista e atualizada, Maringá - PR, 2014. 199 p. “Graduação em Análise e Desenvolvimento de Sistemas - EaD”.

  1. Programação 2. Java 3. EaD. I. Título.

ISBN 978-85-8084-605- CDD - 22 ed. 005. CIP - NBR 12899 - AACR/

Ficha catalográfica elaborada pelo bibliotecário João Vivaldo de Souza - CRB-8 - 6828

Seja bem-vindo(a), caro(a) acadêmico(a)! Você está iniciando um processo de transformação, pois quan- do investimos em nossa formação, seja ela pessoal ou profissional, nos transformamos e, consequente- mente, transformamos também a sociedade na qual estamos inseridos. De que forma o fazemos? Criando oportunidades e/ou estabelecendo mudanças capa- zes de alcançar um nível de desenvolvimento compa- tível com os desafios que surgem no mundo contem- porâneo.

O Centro universitário Cesumar mediante o Núcleo de Educação a Distância, o(a) acompanhará durante todo este processo, pois conforme Freire (1996): “Os homens se educam juntos, na transformação do mundo”.

Os materiais produzidos oferecem linguagem dialó- gica e encontram-se integrados à proposta pedagó- gica, contribuindo no processo educacional, comple- mentando sua formação profissional, desenvolvendo competências e habilidades, e aplicando conceitos teóricos em situação de realidade, de maneira a inse- ri-lo no mercado de trabalho. Ou seja, estes materiais têm como principal objetivo “provocar uma aproxi- mação entre você e o conteúdo”, desta forma possi- bilita o desenvolvimento da autonomia em busca dos conhecimentos necessários para a sua formação pes- soal e profissional.

Portanto, nossa distância nesse processo de cres- cimento e construção do conhecimento deve ser apenas geográfica. utilize os diversos recursos peda- gógicos que o Centro universitário Cesumar lhe possi- bilita. Ou seja, acesse regularmente o AVA – Ambiente Virtual de Aprendizagem, interaja nos fóruns e en- quetes, assista às aulas ao vivo e participe das discus- sões. Além disso, lembre-se que existe uma equipe de professores e tutores que se encontra disponível para sanar suas dúvidas e auxiliá-lo(a) em seu processo de aprendizagem, possibilitando-lhe trilhar com tranqui- lidade e segurança sua trajetória acadêmica.

SEJA bEM-VINDO(A)!

Prezado(a) acadêmico(a), é com grande satisfação que apresento a você o livro de Pro- gramação em Java II. Este material foi elaborado com o objetivo de contribuir em sua formação, especialmente a de desenvolvedor(a) de software. Sou o professor Edson A. Oliveira Junior, autor deste material. Você pode ter certeza que este material foi prepara- do com carinho especial para que você possa entender o que essa disciplina pode te tra- zer de benefício ao longo de sua vida como desenvolvedor(a) e/ou analista de sistemas.

Inicialmente, como você já deve ter lido e exercitado todos os conceitos básicos de Java no livro Programação em Java I, este livro abordará conceitos mais avançados de orien- tação a objetos como sobreposição e sobrecarga em Java. A sobreposição permite rede- fir o comportamento (implementação) de um método que foi herdado, possibilitando que a subclasse possua os dois comportamentos: o herdado e o implementado. Já a sobrecarga permite que você use um mesmo identificador (nome) para métodos e cons- trutores de uma mesma classe, mudando somente a assinatura destes.

A unidade II abordará classes abstratas e interfaces. As classes abstratas podem possuir métodos concretos (com implementação) e métodos abstratos (somente a assinatu- ra) sem fornecer uma implementação padrão. As subclasses concretas de uma classe concreta devem implementar os métodos concretos. Esta é uma forma de garantir que o método será implementado de acordo com a classe a qual se destina. Já interfaces possuem somente métodos abstratos, porém não fornecem suporte à característica de herança.

Na unidade III, você entenderá os elementos essenciais para se trabalhar com vários objetos de uma mesma classe ao mesmo tempo: arrays e coleções Java. Existem vários tipos de coleções, cada uma com um propósito e um conjunto de características pró- prias que são usadas em diversas situações diferentes.

A unidade IV abordará a criação de interfaces gráficas desktop por meio das API AWT e Swing, além de tratamento de exceções. Interfaces gráficas em Java envolvem o projeto e a construção de layouts para que os elementos gráficos de interação (botões, caixas, campos etc.) possam ser acomodados. Interfaces gráficas não podem dispensar o tra- tamento de exceções, caracterizadas por interrupções abruptas da execução de código Java, sem que o usuário possa ter a chance de interagir com o programa. Para tanto, iso- lamos esses códigos permitindo que o programa Java não seja simplemente abortado sem uma justificativa.

ApresentAção

PROGRAMAÇÃO II (JAVA)

Por fim, na unidade V, serão apresentados os conceitos de persistência de dados por meio das APIs JDBC e JPA. JDBC é o método tradicional de armazenamento de dados em um banco de dados. Já JPA permite mapear as classes Java para entidades de um banco de dados, facilitando a persistência dos dados.

Lembre-se sempre que programar é uma “arte moderna” em que aquele que detém o maior poder de abstração possível é aquele que melhor saberá desenvolver os seus pro- gramas.

Ótima leitura e sucesso em sua vida de desenvolvedor de software.

Prof. Dr. Edson A. Oliveira Junior

ApresentAção

sumário

64 Comparando Interfaces e Classes Abstratas

66 Considerações Finais

uNIDADE III

ARRAYS E COLEÇÕES

73 Introdução

73 entendendo um Array

74 Declarando Arrays de objetos e de tipos primitivos

76 Construindo Arrays Unidimensionais

77 Construindo Arrays Multidimensionais

79 Inicializando Arrays

83 passando Arrays para Métodos

85 exemplos com Arrays

92 Visão Geral das Coleções

93 A Interface List

98 A Interface Set

103 A Interface Map

106 A Interface Queue

109 Considerações Finais

sumário

11

uNIDADE IV

INTRODuÇÃO À INTERFACE GRÁFICA E TRATAMENTO DE EXCEÇÕES

115 Introdução

115 o Que é a Biblioteca Swing?

116 Criando um projeto no netbeans Ide

117 Criando um Contêiner Jframe

119 Adicionando Componentes Swing

120 Construindo a Interface

126 escrevendo o Código

134 tratamento de exceções

134 Captura de exceções

136 Definindo exceções

137 Hierarquia de exceções

138 Declaração de exceções e a Interface pública

140 Considerações Finais

UNIDADE

I

Professor Dr. Edson A. Oliveira Junior

soBreposIção e

soBreCArGA

Objetivos de Aprendizagem

■ Criar códigos com métodos que utilizam conceitos de sobreposição e sobrecarga.

Plano de Estudo

A seguir, apresentam-se os tópicos que você estudará nesta unidade:

■ O que é sobreposição

■ A anotação Override

■ A Reescrita do método toString() e equals()

■ Regras para sobreposição em Java

■ O que é sobrecarga

■ Exemplos de Sobrecarga

■ Conversões implícitas

■ Construtores com sobrecarga

SOBREPOSIÇÃO E SOBRECARGA

Reprodução proibida. Art. 1 8 4 d o Código Penal e Lei 9. 6 1 0 d e 1 9 d e f evereiro d e 1 9 9 8.

I

public class Aluno {

// colocamos aqui nossos atributos da classe aluno

int idAluno; String nome; String ra; String endereco;

// nosso método imprimeTitulo void imprimeTitulo(){ System.out.println(“Titulos do Aluno”); } }

Quadro 1: Classe Aluno com um simples método que será reescrito

Agora veja como ficou o código da nossa Classe AlunoGraduacao:

public class AlunoGraduacao extends Aluno {

//criamos nosso atributo serie

String serie;

// criamos nosso método imprimeTitulo

void imprimeTitulo(){ System.out.println(“Titulo de Graduação”); }

}

Quadro 2: Classe estendendo a classe Aluno para usar a sobreposição

E agora veja como ficou o código da nossa classe AlunoMestrado:

17

O que é Sobreposição

Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.

public class AlunoMestrado extends Aluno {

//criamos nosso atributo notaPosComp

double notaPosComp;

//criamos nosso método imrpimeTitulo

void imprimeTitulo(){ System.out.println(“Tiulo de Mestrado”); }

}

Quadro 3: Classe estendendo a classe Aluno para usar a sobreposição

Agora vejamos o comportamento destes métodos. Vamos analisar a seguinte

situação: temos duas classes que herdaram o mesmo método imprimeTi-

tulo() que está na classe Aluno, agora como será que estes métodos serão

utilizados por seus objetos? Bom, cada classe tem uma reescrita específica, infor-

mando uma mensagem distinta, portanto seu objeto irá informar este tratamento

e não o código que está na classe pai Aluno. Criamos uma classe chamada

TestaAlunos contendo o método main, nesta classe colocamos dois objetos,

um do tipo AlunoGraduacao e outro do tipo AlunoMestrado, e chama-

mos os métodos imprimeTitulo( ).

19

A Anotação @Override

Reprodução proibida. Art. 184 do Código Penal e Lei 9.610 de 19 de fevereiro de 1998.

public class AlunoGraduacao extends Aluno {

//criamos nosso atributo serie

String serie;

//criamos nosso método reescrito imprimeTitulo @Override void imprimeTitulo(){ System.out.println(“Titulo de Graduação”); }

}

Quadro 6: Classe com a anotação @override

E agora veja como ficou o código da nossa classe AlunoMestrado:

public class AlunoMestrado extends Aluno { //criamos nosso atributo notaPosComp double notaPosComp; @Override void imprimeTitulo(){ System.out.println(“Titulo de Mestrado”); } }

Quadro 7: Classe com a anotação @override

SOBREPOSIÇÃO E SOBRECARGA

Reprodução proibida. Art. 1 8 4 d o Código Penal e Lei 9. 6 1 0 d e 1 9 d e f evereiro d e 1 9 9 8.

I

A REESCRITA DO MéTODO TOSTRING ( )

Caro(a) aluno(a), agora imagine a seguinte situação: criamos uma classe cha-

mada Pessoa. Após isso, criamos uma classe TestaPessoa com um método

main e instanciamos um objeto do tipo Pessoa, o que acontece se imprimirmos

direto o objeto em si ao invés de imprimirmos os valores de atributo por atri-

buto? Veja como ficaram nossas classes.

Classe Pessoa:

public class Pessoa { //declaramos o atributo idPessoa int idPessoa; //declaramos o atributo nome da pessoa String nome; }

Quadro 8: Classe Pessoa para testar impressão sem o método toString()

Classe TestaPessoa:

public class TestaPessoa { public static void main(String[] args) { //cria o objeto do tipo pessoa Pessoa p1 = new Pessoa(); //passa um valor para o idPessoa p1.idPessoa = 1; //passa um valor para o nome da pessoa p1.nome = “João”; //imprime os dados do objeto pessoa System.out.println(p1); } }

Quadro 9: Classe com método main para testar a impressão sem o método toString( )

Bom o que sairia em nosso console com esta impressão?