Java Básico. Matrícula de Alunos. Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br. Novembro/2005



Documentos relacionados
insfcanceof new public switch transient while byte continue extends for int null

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

Classes Abstratas e Interfaces

Módulo 5 - JDBC java.sql - Conexão com Banco de Dados

Programa de Computador que funciona em Rede

Implementando uma Classe e Criando Objetos a partir dela

Exercícios de Revisão Java Básico

Sistemas Distribuídos

Encapsulamento de Dados

JDBC. Siga as instruções para instalar o banco de dados H2 e criar a tabela Alunos.

Bacharelado em Ciência e Tecnologia BC Processamento da Informação Teoria Arquivos Prof. Edson Pinheiro Pimentel edson.pimentel@ufabc.edu.

BC0505 Processamento da Informação

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Programação Visual TIC - 3PA. Lista de Exercícios 02

UFG - Instituto de Informática

Vetores. Professor Dr Francisco Isidro Massettto

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Padrão Arquitetura em Camadas

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

SISTEMAS DISTRIBUÍDOS

JAVA Orientação a Objetos. Usando diálogos com JOptionPane

Algoritmos e Programação II. Sobrecarga

Um Exemplo de Refatoração. Prof. Alberto Costa Neto DComp/UFS

Aula 3 Desvio Condicional

Multithreading. Programação Orientada por Objectos com Java. Ademar Aguiar. MRSC - Programação em Comunicações

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

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Conversão de Tipos e Arrays

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Programação Orientada a Objetos em Java

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Capítulo 8. Introdução UML

Java TM e o Modelo de Objetos

A Linguagem Java. Alberto Costa Neto DComp - UFS

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

Desenvolvimento OO com Java Orientação a objetos básica

package br.com.cadastro.visao;

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Message Driven Beans. Apresentação. Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Como construir um compilador utilizando ferramentas Java

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

Acesso a banco de dados

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Java : Comunicação Cliente-Servidor.

J550 Integração com Bancos de Dados

Java Spaces Exemplos

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

PROJETO FRAMEWORK - CELEPAR PAGINAÇÃO DE DADOS EM APLICAÇÕES JAVA PARA INTERNET

Programação Orientada a Objetos. Encapsulamento

PROCESSOS. Prof. Maicon A. Sartin

Invocação Remota MC704

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Análise e Projeto Orientados por Objetos

MÓDULO 4 SWING Parte 3

INSTALAÇÃO E USO DO GOOGLE APP ENGINE PLUGIN utilizando o Eclipse Galileo

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.

UNIVERSIDADE FEDERAL DO PARANÁ

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Capítulo II Modelos de Programação Distribuída

Java. Marcio de Carvalho Victorino

THREADS EM JAVA. George Gomes Cabral

Aula 30 - Sockets em Java

Web Services. EclipseSDK/DB2 Construindo/Consumindo Serviços

Driver Mysql para Banco de Dados. Conexão com um Banco de Dados

SISTEMA EXPERIMENTALL 15/11/2009. Olá! A partir de agora vamos conhecer a IDE NetBeans efetuando um micro projeto swing.

Sistema Futebol - Java

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

Estrutura Condicional em Java

Listando, gravando, alterando e excluindo registro do banco de dados com JSP

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Threads e Sockets em Java. Threads em Java. Programas e Processos

Relatório 1º Laboratório: O Java e os Sockets. Licenciatura: ETI Turma : ETC1 Grupo : rd3_t3_02 Data: 22/02/2010

Padrões de Projeto e Persistência com DAO

BC0501 Linguagens de Programação

Sistemas Distribuídos

Orientação a Objetos e a Linguagem Java

Guia de Fatores de Qualidade de OO e Java

Programação Concorrente em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Herança. Algoritmos e Programação II. Aula 5 Herança

Java Threads. Introdução

Programação de Computadores - I. Profª Beatriz Profº Israel

Universidade da Beira Interior. Sistemas Distribuídos

!" # # # $ %!" " & ' ( 2

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

Prof. Jhonatan Fernando

Análise de Programação

Transcrição:

Java Básico Matrícula de Alunos Marco Antonio, Arquiteto de Software TJDF ma@marcoreis.eti.br Novembro/2005

Objetivos OO: trocar mensagens entre os objetos Exception: tratar exceções Análise: implementar especificações do usuário Abstração: dado um problema complexo, abstraí-lo em pequenos módulos Revisão: utilizar todos os mecanismos vistos até o momento

Descrição do processo O aluno escolhe uma disciplina que deseja cursar A secretária da escola efetua a matrícula Quando cinco alunos se matricularem para uma disciplina, a escola abre uma turma Com menos de cinco alunos a turma deve estar fechada e essa informação deve ser passada ao usuário O número máximo de alunos em cada turma é trinta

O Aluno package com.javabasico.matriculadealuno; public class Aluno { private String matricula; private String nome; private String endereco; private String telefone; //Utilize o generate getters and setters quando possível

A Disciplina package com.javabasico.matriculadealuno; public class Disciplina { private String nome; private int cargahoraria;

A Turma package com.javabasico.matriculadealuno; public class Turma { /* * As quantidades não precisam de métodos de acesso (set/get) * porque seus valores não serão alterados por outras classes * * */ private int quantidademaximadealunos = 30; private int quantidadeatualdealunos = 0; public void adicionar(aluno alunonaturma, Disciplina disciplinaescolhida) { System.out.println("O aluno " + alunonaturma.getnome() + " foi matriculado na disciplina " + disciplinaescolhida.getnome()); quantidadeatualdealunos++;

A Secretaria package com.javabasico.matriculadealuno; public class Secretaria { public void matricular(aluno alunomatriculado, Disciplina disciplinaescolhida, Turma novaturma) { novaturma.adicionar(alunomatriculado, disciplinaescolhida, novaturma);

TelaDeMatriculaDeAluno package com.javabasico.matriculadealuno; public class TelaDeMatriculaDeAluno { public static void main(string[] args) { Aluno jose = new Aluno(); jose.setnome("jose Carlos"); Disciplina matematica = new Disciplina(); matematica.setnome("matemática"); Secretaria maria = new Secretaria(); Turma primeirosemestre2006 = new Turma(); maria.matricular(jose, matematica, primeirosemestre2006);

TelaDeMatriculaComLoop package com.javabasico.matriculadealuno; public class TelaDeMatriculaComLoop { public static void main(string[] args) { Secretaria maria = new Secretaria(); Disciplina matematica = new Disciplina(); matematica.setnome("matemática"); Turma primeirosemestre2006 = new Turma(); for (int i = 1; i < 40; i++) { Aluno jose = new Aluno(); jose.setnome("jose Carlos " + i); maria.matricular(jose, matematica, primeirosemestre2006);

Definindo novos critérios Quais restrições ainda não foram implementadas? Limite máximo de alunos Limite mínimo de alunos Informação de turma aberta/fechada

Estratégia Antes de prosseguir, relembre quais o três passos para tratar exceções Lembre-se: o desenvolvimento em Java é feito sempre por partes Nos slides seguintes estão as atualizações dos métodos que já foram feitos. Apenas altere o que já foi feito Utilize os recursos do eclipse!!!

O LimiteMaximo package com.javabasico.matriculadealuno; public class LimiteMaximoDeAlunosException extends Exception { public LimiteMaximoDeAlunosException(String mensagem) { super(mensagem);

A Turma v1.1 public void adicionar(aluno alunonaturma, Disciplina disciplinaescolhida) throws LimiteMaximoDeAlunosException { if (quantidadeatualdealunos >= quantidademaximadealunos) { throw new LimiteMaximoDeAlunosException( "Turma cheia. Não posso matricular o aluno " + alunonaturma.getnome()); System.out.println("O aluno " + alunonaturma.getnome() + " foi matriculado na disciplina " + disciplinaescolhida.getnome()); quantidadeatualdealunos++;

A Secretaria v1.1 public void matricular(aluno alunomatriculado, Disciplina disciplinaescolhida, Turma novaturma) throws LimiteMaximoDeAlunosException { novaturma.adicionar(alunomatriculado, disciplinaescolhida);

TelaDeMatriculaDeAluno v1.1 public static void main(string[] args) { Aluno jose = new Aluno(); jose.setnome("jose Carlos"); Disciplina matematica = new Disciplina(); matematica.setnome("matemática"); Secretaria maria = new Secretaria(); Turma primeirosemestre2006 = new Turma(); try { maria.matricular(jose, matematica, primeirosemestre2006); JOptionPane.showMessageDialog(null, "Operação efetuada com sucesso.", "Sucesso", JOptionPane.INFORMATION_MESSAGE); catch (LimiteMaximoDeAlunosException e) { JOptionPane.showMessageDialog(null, e.getmessage(), "Atenção", JOptionPane.ERROR_MESSAGE);

TelaDeMatriculaComLoop v1.1 public static void main(string[] args) { Secretaria maria = new Secretaria(); Disciplina matematica = new Disciplina(); matematica.setnome("matemática"); Turma primeirosemestre2006 = new Turma(); for (int i = 1; i <= 40; i++) { Aluno jose = new Aluno(); jose.setnome("jose Carlos " + i); try { maria.matricular(jose, matematica, primeirosemestre2006); JOptionPane.showMessageDialog(null, "Operação efetuada com sucesso.", "Sucesso", JOptionPane.INFORMATION_MESSAGE); catch (LimiteMaximoDeAlunosException e) { JOptionPane.showMessageDialog(null, e.getmessage(), "Atenção", JOptionPane.ERROR_MESSAGE);

file:///e:/literaturatecnica/cursos/javabasico/index_stopwatch04180 4.gif Dúvidas/observações?