Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Documentos relacionados
Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça. Prática 02 Herança

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Programação de Computadores para GI

Linguagem de programação Java

Universidade Federal de Uberlândia

Programação Orientada a Objetos II

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Sintaxe Básica do Java. João Paulo Q. dos Santos

Análise de Programação

Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 1o. Semestre de 2017 Prof.

Linguagem de Programação II Implementação

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.

AULA 6 - ARRAYS. Array de 10 elementos

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Lógica de Programação. Lógica de Programação com Java

Orientação a Objetos e Java

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Ambientação com a Sintaxe de Java: parte 1

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA II

Linguagem de Programação III

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Introdução. Extends e Super. Exercício Prático 5 Herança. Nome:

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

1 Introdução e Conceitos básicos

Variáveis Compostas. Leonardo Gresta Paulino Murta.

Aula 7 POO 1 Herança. Profa. Elaine Faria UFU

Algoritmos I Aula 13 Linguagem de Programação Java

PROGRAMAÇÃO I INTRODUÇÃO À ORIENTAÇÃO A OBJETOS

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Linguagem de Programação III

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Linguagem de Programação JAVA. Tiago Alves de Oliveira

CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA A F B G C H D I

Java Variáveis e Controle Fluxo

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

Arrays em Java. Introdução à Programação. Bruno Cartaxo

Organização de programas em Java

Estrutura de Dados. Introduc a o e Alocac a o de Memo ria. Vilson Heck Junior. Instituto Federal de Santa Catarina

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Classes, instâncias e métodos de acesso. prática

ESQUEMA AULA PRÁTICA 1

Vetores Unimensionais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Programação Orientada a Objetos

Estrutura de Dados. TAD (Tipo Abstrato de Dados) Criando a primeira estrutura

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU

ESQUEMA AULA PRÁTICA 1

Programação Orientada a Objeto

Variáveis Compostas. Vanessa Braganholo

Linguagem de Programação II Implementação

ptraux = dynamic_cast <PacoteNoite *> (vetor[i]); if (ptraux) auxiliar += vetor[i]->calculacusto();

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

5 Arrays. 5.1 Criando um array. 5.2 Inicializando arrays. c:\>java Array Janeiro tem 31 dias.

Arrays e Marizes. João Paulo Q. dos Santos

LÓGICA DE PROGRAMAÇÃO (JAVA) HERANÇA. Professor Carlos Muniz

Material de Apoio 3. Criando um novo projeto em BlueJ Lance a execução do BlueJ. A janela que deverá aparecer é a seguinte:

Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo

POO Programação Orientada a Objetos

Programação Orientada a Objetos Classes e Objetos. Prof. Vicente Paulo de Camargo

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Organização de programas em Java

Desenvolvendo aplicações Java

Universidade Federal de Pelotas Bacharelado em Ciência da Computação Programação Orientada a Objetos Prof. Gerson Cavalheiro Material de Apoio 3

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

Seleção Múltipla Laços (while, do-while, for) AULA 05

Conceitos Básicos de Orientação a Objetos e Strings AULA 08

Atributos e Métodos Estáticos

AULA 02 DADOS PRIMITIVOS E EXERCÍCIOS

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS

Tipos primitivos de Java Entrada de Dados Formatação da Saída. Aula 03

POO Programação Orientada a Objetos. Classes e Objetos 2

Variáveis Compostas. Leonardo Gresta Paulino Murta.

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Herança e Propriedades

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Vetores Unimensionais

Lição 4 Fundamentos da programação

JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

Fabiano Moreira.

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Transcrição:

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01 Objetivos: Modelar um sistema orientado a objetos simples a partir de uma situação problema (domínio do problema). Exercitar a extração e reconhecimento de objetos existentes no mundo real, seus atributos e seus métodos, propondo uma solução para o problema. Iniciar o uso do ambiente BlueJ para implementar a solução. 1) Situação problema: 1. Domínio do problema: Gestão acadêmica 2. Descrição do problema: Uma universidade necessita de um sistema que facilite a sua gestão acadêmica. Deseja-se um controle de quais disciplinas são ministradas por cada professor e em qual curso. Também é necessário um controle de quais disciplinas são cursadas por um aluno. Sabe-se que um professor é um funcionário. Além de professores, tem-se funcionários que são técnicos administrativos. Para cada funcionário, independente de ser professor ou técnico, é necessário saber seu nome, endereço, telefone, cpf, número da CTPS e salario. Especificamente para professores, é necessário saber sua titulação e sua área de pesquisa. Para cada curso é necessário registrar seu código, nome e duração. Para cada disciplina é necessário registrar seu código, nome e carga horária. 2) Identificação de objetos: 1. Definição: Objetos são essencialmente componentes de software reutilizáveis que modelam itens do mundo real. Ou seja, um objeto é uma entidade representativa que pode caracterizar algo concreto ou abstrato do mundo real. Atributos são informações que caracterizam um objeto. 2. Extraindo objetos a partir da descrição do problema: Vamos marcar de vermelho os objetos do problema e em azul os atributos: 1. Uma universidade necessita de um sistema que facilite a sua gestão acadêmica. Deseja-se um controle de quais disciplinas são ministradas por cada professor e em qual curso. Também é necessário um controle de quais disciplinas são cursadas por um aluno. Sabe-se que um professor é um funcionário. Além de professores, tem-se funcionários que são técnicos administrativos. Para cada funcionário, independente de ser professor ou técnico, é necessário saber seu nome, endereço, telefone, cpf, número da CTPS e salario. Especificamente para

professores, é necessário saber sua titulação e sua área de pesquisa. Especificamente para técnicos, é necessário saber seu cargo e departamento. Para cada curso é necessário registrar seu código, nome e duração. Para cada disciplina é necessário registrar seu código, nome e carga horária. Para cada aluno, deve-se armazenar seu nome, matrícula, cpf e curso. 3) Criação de classes de objetos no BlueJ: 1. Definição: Uma classe é uma matriz (modelo ou forma) a partir da qual os objetos são criados (instanciados). Cada objeto tem a mesma estrutura e comportamento da classe a partir da qual ele foi instanciado. 2. Implementação: 1. Abra o BlueJ 2. Acesse o menu Project New Project 3. Selecione o diretório onde deseja criar o projeto e nomeie-o como Pratica01 4. Clique em New Class e nomeie a nova classe como Disciplina. Faça o mesmo para as demais classes do sistema (marcadas em vermelho no item anterior) resultando em:

Vamos criar os atributos das classes. Para isto é necessário editar o código fonte das classes. De um clique duplo na classe Funcionario. Apague os comentários e demais códigos, deixando apenas a declaração da classe, conforme ilustrado a seguir: 5. Crie os atributos da classe da seguinte forma:

Note que para declarar um atributo para a classe, especificamos o tipo do atributo seguido por seu nome. Note que foi utilizado o tipo String. Além do tipo String o Java oferece vários outros tipos de dados: byte: 8 bits (-128 até 127) short: 16 bits (-32.768 até 32.767) int: 32 bits (-2.147.483.648 até 2.147.483.647) long e double: 64 bits (-9223372036854775808 até 9223372036854775807) boolean: false, true char: qualquer caracter. Dentre outros... Declare todas as demais classes de objetos encontradas no domínio problema. Agora, compile o sistema clicando em Compile na barra de ferramentas lateral. Caso haja erros de sintaxe, eles serão apresentados. Note que após a compilação, um arquivo.class é gerado para cada arquivo.java no diretório do projeto. Os arquivos.class são as classes compiladas, em bytecodes, passíveis de serem executados pela JVM. Uma característica importante do problema descrito é a necessidade de se registrar qual professor é responsável por uma disciplina e em qual curso ela é ministrada. Ou seja, é importante relacionar um objeto disciplina com o professor que a ministra, e com o curso a qual pertence. Para isto, podemos modificar a classe Disciplina para conter estes atributos, resultando na seguinte declaração:

Observe que foram inseridos dois atributos na classe Disciplina além dos atributos já mencionados pela descrição do problema: um atributo curso do tipo Curso e um atributo professor do tipo Professor. Note que Curso e Professor são classes que criamos em nosso projeto e que podem ser usados como tipos na declaração de atributos. Na programação orientada a objetos, toda classe que criamos é um tipo de dado. Em nosso exemplo, agora estamos aptos a armazenar um curso e um professor em cada disciplina que criarmos. Além disto, é importante que se relacione cada aluno com o curso o qual está matriculado. Para isto, criamos um relacionamento entre as classes Aluno e Curso, da mesma forma que foi feito com Disciplina e Professor (no item anterior): colocamos um atributo curso do tipo Curso na classe Aluno. Por exemplo:

public class Aluno{ String nome; String matricula; String cpf; Curso curso; Agora vamos criar um método na classe Funcionario que permita ler a partir do teclado (dispositivo de entrada padrão) os valores dos atributos do funcionário. Para isto, implemente o código apresentado a seguir na classe Funcionario, logo após a declaração de seus atributos: public void lerdados() { Scanner s = new Scanner(System.in); System.out.println("Digite o nome do funcionário:"); this.nome = s.nextline(); System.out.println("Digite o endereço do funcionário:"); this.endereco = s.nextline(); System.out.println("Digite o telefone do funcionário:"); this.telefone = s.nextline(); System.out.println("Digite o CPF do funcionário:"); this.cpf = s.nextline(); System.out.println("Digite a CTPS do funcionário:"); this.ctps = s.nextline(); System.out.println("Digite o salário do funcionário:"); this.salario = s.nextdouble(); Note que este método utiliza a classe Scanner para implementar a leitura de dados. Para isto, instanciamos um objeto s do tipo Scanner e utilizamos o método nextline() para ler uma string, nextdouble para ler um double. Ainda, podemos usar o método nextint() para ler inteiros, nextfloat() para ler floats, e assim por diante. O operador this serve para referenciar atributos da classe, e resolver conflitos de nomes, caso haja variáveis internas do método com o mesmo nome que o atributo da classe. Para utilizar a classe Scanner, é necessário importa-la. Para isto, insira a seguinte linha ANTES da declaração da classe:

import java.util.scanner; Veja que para referenciar os atributos da própria classe, usamos a palavra reservada this para evitar conflitos com nomes de variáveis e parâmetros do método com o mesmo nome do atributo. O resultado é o seguinte: Agora implemente o método lerdados() para as demais classes do sistema. Ao se instanciar e ler os dados de um objeto que se relaciona com outro objeto, por exemplo, aluno e curso, uma instância de Curso deve ser atribuída ao atributo curso da classe Aluno. Uma solução plausível é que tivéssemos uma lista de objetos do tipo curso onde poder-se-ia buscar um curso através de seu

código e atribuir o objeto encontrado ao atributo curso de Aluno. Mas isto será feito posteriormente. Por exemplo: class Aluno {.atributos public void lerdados() { Scanner s = new Scanner(System.in); System.out.println("Digite o nome do aluno:"); this.nome = s.nextline(); System.out.println("Digite a matricula do aluno:"); this.matricula = s.nextline(); System.out.println("CPF do aluno:"); this.cpf = s.nextline(); System.out.println("Digite o curso do aluno:"); this.curso = new Curso(); this.curso.lerdados(); Implemente também um método mostrardados() em cada classe. O código a seguir ilustra a implementação do método mostrardados() para a classe funcionário. Teste os métodos implementados. public void mostrardados() { System.out.println("Nome: "+this.nome); System.out.println("Endereço: "+this.endereco); System.out.println("Telefone: "+this.telefone); System.out.println("CPF: "+this.cpf); System.out.println("CPF: "+this.ctps); System.out.println("CPF: "+this.salario); Agora crie uma classe principal com um método main para testar suas classes. Exemplo: class Principal {

public static void main(string args[]){ Aluno a = new Aluno(); a.lerdados(); a.mostrardados();.teste as demais classes... IMPORTANTE:: A linha de código: Aluno a = new Aluno(); instancia um novo objeto da classe Aluno (new) e atribui sua referência à variável a do tipo Aluno. Desta forma, este objeto passa a ser acessível a partir da variável a, e seus atributos e métodos podem ser acessados através de um. Exemplos: a.lerdados(); -- invoca o método lerdados() do objeto referenciado pela variável a ; a.nome = João ; -- acessa o atributo nome do objeto referenciado por a e atribui a string. Observe que neste caso, Aluno é tanto uma classe quanto um tipo; Na verdade, toda classe é um tipo. Copie o diretório do seu projeto para um local seguro e tenha-o sempre à mão. Este projeto será utilizado nas próximas aulas práticas. Nunca se esqueça: O que é um paradigma? É uma forma de abordar um problema, segundo um conjunto de procedimentos, valores ou conceitos que direcionam o pensamento.