Aula final
Entrega das notas da prova
Revisão da prova
terça-feira, 28 de junho de 2011
quarta-feira, 22 de junho de 2011
terça-feira, 14 de junho de 2011
Aula 16 - 14.06.2011
Evolução do trabalho final
| 07.06 | 14.06 | 21.06 | 28.06 | |
| Controle de Pet-shop: Lucas e André | 5% | 50% | ||
| Controle de Pizzaria: Nelson, Pietro e Jonatan | 20% | 50% | ||
| Controle de Academia: Guilherme e Diego | 5% | 25% | ||
| Controle de Locação de Carros: Aquiles e Renan | 10% | 50% | ||
| Locadora de Filmes: Daniel e Josué | 25% | 50% | ||
| Controle de Atendimento Médico: Rodrigo e Kellen | 0% | 50% | ||
| Controle de Venda de Veículos: Carlos | 10% | 50% | ||
| Controle de Estacionamentos: Lianderson e Leandro | 10% | 25% |
terça-feira, 7 de junho de 2011
Aula 15 - 07.06.2011
Evolução do trabalho final
| 07.06 | 14.06 | 21.06 | 28.06 | |
| Controle de Pet-shop: Lucas e André | 5% | |||
| Controle de Pizzaria: Nelson, Pietro e Jonatan | 20% | |||
| Controle de Academia: Guilherme e Diego | 5% | |||
| Controle de Locação de Carros: Aquiles e Renan | 10% | |||
| Locadora de Filmes: Daniel e Josué | 25% | |||
| Central de Cópias: Kellen e Carolina | 0% | |||
| Controle de Atendimento Médico: Rodrigo e Valdenir | 0% | |||
| Controle de Venda de Veículos: Carlos | 10% | |||
| Controle de Estacionamentos: Lianderson e Leandro | 10% |
segunda-feira, 30 de maio de 2011
Aula 14 - 31.05.2011
Trabalhando com Exceptions em Java:
Trabalhando com Arquivos em Java:
Trabalhando com XML em Java:
- http://www.dcc.ufrj.br/~comp2/TextosJava/Excecoes%20em%20Java.pdf
- http://www.dcc.ufam.edu.br/horacio/images/stories/Disciplinas/PP/PP-Aula7-Excecao.pdf
Trabalhando com Arquivos em Java:
Trabalhando com XML em Java:
import java.io.*;
import java.beans.XMLEncoder;
import java.beans.XMLDecoder;
public class XMLUtil {
private static String dir = "c:/";
public static void setDiretorio(String d) { dir = d; }
public static String getDiretorio() { return dir; }
public static void salvar(Object objeto, String arq) throws Exception {
XMLEncoder xml = null;
try {
File f = new File(getDiretorio() + arq);
xml = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream(f)));
xml.writeObject(objeto);
xml.flush();
} finally {
if (xml != null) {
xml.close();
}
}
}
public static Object buscar(String arq) throws Exception {
Object objeto = null;
XMLDecoder xml = null;
try {
File f = new File(getDiretorio() + arq);
if (!f.exists()) {
return null;
}
xml = new XMLDecoder(
new BufferedInputStream(
new FileInputStream(f)));
objeto = xml.readObject();
} finally {
if (xml != null) {
xml.close();
}
}
return objeto;
}
public static void main(String args[]) throws Exception {
String s = "IPA-POO-2011";
XMLUtil.salvar(s, "Teste.xml");
System.out.println(XMLUtil.buscar("Teste.xml").toString());
}
}
import java.beans.XMLEncoder;
import java.beans.XMLDecoder;
public class XMLUtil {
private static String dir = "c:/";
public static void setDiretorio(String d) { dir = d; }
public static String getDiretorio() { return dir; }
public static void salvar(Object objeto, String arq) throws Exception {
XMLEncoder xml = null;
try {
File f = new File(getDiretorio() + arq);
xml = new XMLEncoder(
new BufferedOutputStream(
new FileOutputStream(f)));
xml.writeObject(objeto);
xml.flush();
} finally {
if (xml != null) {
xml.close();
}
}
}
public static Object buscar(String arq) throws Exception {
Object objeto = null;
XMLDecoder xml = null;
try {
File f = new File(getDiretorio() + arq);
if (!f.exists()) {
return null;
}
xml = new XMLDecoder(
new BufferedInputStream(
new FileInputStream(f)));
objeto = xml.readObject();
} finally {
if (xml != null) {
xml.close();
}
}
return objeto;
}
public static void main(String args[]) throws Exception {
String s = "IPA-POO-2011";
XMLUtil.salvar(s, "Teste.xml");
System.out.println(XMLUtil.buscar("Teste.xml").toString());
}
}
terça-feira, 24 de maio de 2011
Aula 13 - 24.05.2011
Tratamento de Exceções em Java
Links úteis:
Exercícios
Exercício 1:
- Fazer um projeto que tenha uma classe Main, uma classe LoginUI com um método login(String usuario, String senha) e uma classe Usuário com um método login, sendo que a classe LoginUI deve ter um ArrayList com 3 usuários previamente adicionados. Ao executar o projeto, o sistema executa o psvm da classe Main e pergunta o usuário e senha e deve apresentar algumas mensagens de erro, utilizando Exception, conforme abaixo:
- "Usuário deve ser informado" {usuário não informado}
- "Usuário não pode ser menor do que 3 caracteres" {usuário com poucos caracteres}
- "Usuário não existente" {usuário não existente}
- "Senha deve ser informada" {senha não informada}
- "Usuário existente, mas a senha está incorreta" {usuário existe, mas senha incorreta}
Se o usuário e a senha existirem, apresentar mensagem "Login com sucesso".
Exercício 2:
- Sobre o exercício 1, fazer com que ocorram até 3 tentativas de senha incorreta até fechar o programa.
Links úteis:
- http://camilolopes.wordpress.com/2009/02/04/tratamento-de-excecoes-em-java/
- http://www.inf.puc-rio.br/~java/progjava/protected/apostilas/transparencias/Excecoes.pdf
- http://www.devmedia.com.br/post-3937-Tratamento-de-Excecoes-em-JAVA--throw-e-throws.html
Dica legal do colega Rodrigo:
- Violet UML Editor: http://violet.sourceforge.net/
- Software simples para desenho do Diagrama de Classes da UML
- Pode ser acessado diretamente de http://alexdp.free.fr/violetumleditor/demo/violet.jnlp
Exercícios
Exercício 1:
- Fazer um projeto que tenha uma classe Main, uma classe LoginUI com um método login(String usuario, String senha) e uma classe Usuário com um método login, sendo que a classe LoginUI deve ter um ArrayList com 3 usuários previamente adicionados. Ao executar o projeto, o sistema executa o psvm da classe Main e pergunta o usuário e senha e deve apresentar algumas mensagens de erro, utilizando Exception, conforme abaixo:
- "Usuário deve ser informado" {usuário não informado}
- "Usuário não pode ser menor do que 3 caracteres" {usuário com poucos caracteres}
- "Usuário não existente" {usuário não existente}
- "Senha deve ser informada" {senha não informada}
- "Usuário existente, mas a senha está incorreta" {usuário existe, mas senha incorreta}
Se o usuário e a senha existirem, apresentar mensagem "Login com sucesso".
Exercício 2:
- Sobre o exercício 1, fazer com que ocorram até 3 tentativas de senha incorreta até fechar o programa.
sábado, 21 de maio de 2011
Calendário de Aulas e Distribuição do Trabalho Final
Seg | Ter | Qua | Qui | Sex | Sáb | Dom |
2-mai | 3-mai | 4-mai | 5-mai | 6-mai | 7-mai | 8-mai |
POO #10 | POO #11 | |||||
9-mai | 10-mai | 11-mai | 12-mai | 13-mai | 14-mai | 15-mai |
PE #5 | PE #6 | PE #7 | ||||
16-mai | 17-mai | 18-mai | 19-mai | 20-mai | 21-mai | 22-mai |
POO #12 | PE #8 | PE #9 | ||||
23-mai | 24-mai | 25-mai | 26-mai | 27-mai | 28-mai | 29-mai |
POO #13 | PE #10 | PE #11 | ||||
30-mai | 31-mai | 1-jun | 2-jun | 3-jun | 4-jun | 5-jun |
POO #14 | PE #12 | PE #13 | ||||
6-jun | 7-jun | 8-jun | 9-jun | 10-jun | 11-jun | 12-jun |
POO #15 | PE #14 | PE #15 | ||||
13-jun | 14-jun | 15-jun | 16-jun | 17-jun | 18-jun | 19-jun |
POO #16 | PE #16 | PE #17 | ||||
20-jun | 21-jun | 22-jun | 23-jun | 24-jun | 25-jun | 26-jun |
POO #17 | Corpus Christi | |||||
27-jun | 28-jun | 29-jun | 30-jun | 1-jul | 2-jul | 3-jul |
POO #18 | PE #18 |
Distribuição dos Trabalhos Finais
- Cadastro de Animais para Pet-shop: Lucas e André
- Controle de Pizzaria: Nelson, Pietro e Jonatan
- Controle de Academia: Guilherme e Diego
- Controle de Locação de Carros: Aquiles e Renan
- Locadora de Filmes: Daniel e Josué
- Central de Cópias: Kellen e Carolina
- Controle de Atendimento Médico: Rodrigo e Valdenir
terça-feira, 17 de maio de 2011
Aula 12 - 17.05.2011
Segue links para revisão de alguns conceitos importantes do Java:
- http://www.inf.unifra.br/~espode/UNIFRA/LingProgII/Tutoriais%20Java/Java%20Basico/modulo2-POO-Classes-Metodos.ppt
- http://www.slideshare.net/joellobo/curso-java-basico-1455829
- Curso para quem ainda não está 100% firme na parte básica - vale a pena assistir por completo.
domingo, 8 de maio de 2011
quinta-feira, 28 de abril de 2011
terça-feira, 19 de abril de 2011
Aula 9 - 26.04.2011
IPA – Tecnólogo em Análise e Desenvolvimento de Sistemas
Programação Orientada a Objetos
Prof. DIEGO ZIQUINATTI
1) Defina:
a) Classe (0,5)
b) Objeto (0,5)
c) Atributo (0,5)
d) Método (0,5)
e) Herança (0,5)
f) Encapsulamento (0,5)
2) Explique a diferença entre os Tipos Primitivos e os Tipos Referência na linguagem Java. Dê exemplos (1,0).
3) Cite as 4 visibilidades possíveis e permitidas na linguagem Java e explique suas diferenças. (1,0)
4) Dê exemplos práticos de Polimorfismo de Overloading (0,5) e Overriding (0,5)
5) Qual o valor de x impresso ao final da execução da classe abaixo? (2,0)
public static void main(String[] args) {
int x = 10;
for (int i=3; i<9; i++) {
x = x - i;
if (x < 0)
x = 10;
}
System.out.println(x);
}
public static void main(String[] args) {
int contador = 0;
int x = 0;
while (x < 10) {
x = x + 1;
public static void main(String[] args) {
int x = 10;
for (int i=3; i<9; i++) {
x = x - i;
if (x < 0)
x = 10;
}
System.out.println(x);
}
6) Qual o valor de contador a ser impresso ao final da execução da classe abaixo? (2,0)
public static void main(String[] args) {
int contador = 0;
int x = 0;
while (x < 10) {
x = x + 1;
if (x < 5) {
x = x + 1;
} else {
x = x + 2;
}
contador++;
}
System.out.println(contador);
}
x = x + 1;
} else {
x = x + 2;
}
contador++;
}
System.out.println(contador);
}
sexta-feira, 15 de abril de 2011
Aula 8 - 19.04.2011
Exercício proposto para treino antes da prova do dia 19.04:
1) Desenvolver um programa em java que peça ao usuário para cadastrar uma senha; na sequência, deve pedir ao usuário que digite duas variáveis float e calcular a divisão da primeira pela segunda. O programa então irá pedir ao usuário que digite a senha novamente: se estiver correta, o resultado da divisão será mostrado; senão, mostra mensagem de erro e encerra o aplicativo. Importante: não considerar diferenças entre maiúsculas e minúsculas na hora de validar a senha.
2) Desenvolver um programa em java que peça ao usuário a quantidade de funcionários de uma empresa; na sequência, o sistema deverá perguntar o salário de cada um dos funcionários. Ao final, o sistema deverá mostrar uma mensagem conforme o exemplo abaixo, ou seja, apresentando a quantidade de funcionários digitada pelo usuário, qual foi a média salarial, o maior e o menor salários.
"Resultado do sistema:
- Quantidade de Funcionário: 10
- Média Salarial: 1250,00
- Maior Salário: 2500,00
- Menor Salário: 890,00 "
3) Faça um programa que peça ao usuário para digitar o seu nome, seu sexo, seu peso e sua altura. Após, calcule o IMC (Índice de massa corporal) com base na fórmula: IMC = peso / (altura)². Ao final, mostrar uma mensagem conforme exemplo abaixo:
"Olá Diego, seu IMC é 23,4. Você está no peso ideal"
Importante mostrar a mensagem correta de acordo com o IMC calculado.
Abaixo do peso:
Homens: < 20,7
Mulheres: < 19,1
Peso ideal:
Homens: 20,7 a 26,4
Mulheres: 19,1 a 25,8
Acima disso, considerar obeso.
-----------------------------------------------------
Classe Util
import javax.swing.JOptionPane;
public class Util {
public static void mostrar(String m) {
JOptionPane.showMessageDialog(null, m);
}
public static String perguntar(String p) {
return JOptionPane.showInputDialog(p);
}
public static String perguntar(String p, String t) {
return perguntar(p);
}
}
-----------------------------------------------------
-----------------------------------------------------
Classe Util
import javax.swing.JOptionPane;
public class Util {
public static void mostrar(String m) {
JOptionPane.showMessageDialog(null, m);
}
public static String perguntar(String p) {
return JOptionPane.showInputDialog(p);
}
public static String perguntar(String p, String t) {
return perguntar(p);
}
}
-----------------------------------------------------
terça-feira, 12 de abril de 2011
Aula 7 - 12.04.2011
Continuação dos comandos da linguagem Java
- Condicionais
- if-else
- operador ternário
- switch
- Repetição
- while
- do-while
- for
- for-each
- Desvio
- Break
- Continue
domingo, 3 de abril de 2011
Aula 6 - 05.04.2011
Em complemento ao conteúdo da aula anterior, segue link muito bom sobre Operadores e Comandos da linguagem Java.
sábado, 26 de março de 2011
Aula 5 - 29.03.2011
Dando continuidade às aulas de POO, agora iniciemos na prática utilizando a linguagem de programação Java.
Abaixo consta uma tabela contendo os principais operadores da linguagem Java:
Abaixo, segue também os principais comandos da linguagem Java:
Comandos de decisão:
Comandos de repetição:
Comandos de desvio:
Abaixo consta uma tabela contendo os principais operadores da linguagem Java:
Abaixo, segue também os principais comandos da linguagem Java:
Comandos de decisão:
- If-else
- Operador ternário
- Switch
Comandos de repetição:
- while
- do-while
- for
- for-each
Comandos de desvio:
- break
- continue
segunda-feira, 21 de março de 2011
Aula 4 - 22.03.2011
Olá turma,
Para facilitar o acompanhamento da disciplina, segue abaixo o link para o material de Java Básico:
Lembrando que o material de OO já foi disponibilizado desde a 2a aula em:
Abaixo, segue também um resumo dos tipos primitivos existentes no Java, conforme visto na última aula:
Para facilitar o acompanhamento da disciplina, segue abaixo o link para o material de Java Básico:
Lembrando que o material de OO já foi disponibilizado desde a 2a aula em:
Abaixo, segue também um resumo dos tipos primitivos existentes no Java, conforme visto na última aula:
Para complementar, segue link muito interesssante de trecho do livro Thinking in Java, de Bruce Eckels, falando sobre como a memória em Java é alocado e utilizada:
terça-feira, 15 de março de 2011
Aula 3 - 15.03.2011
Revisão rápida dos conceitos da OO
Objeto: informação registrada na memória RAM do computador para armazenar os dados necessários relativos ao objeto em questão. Exemplo: um objeto VW Gol armazena dados relativos a si mesmo tais como sua Placa, seu Ano de Fabricação, Cor, Marca, Modelo, Nr de portas, etc. Ou seja, são os dados exclusivos DESTE objeto.
Classe: estrutura que define o formato de um objeto. Todo e qualquer objeto é uma instância em memória RAM de uma classe. Os dados, para existirem em um objeto, devem ser previstos em formato de classe. Exemplo: a classe Carro pode ter gerado o objeto VW Gol citado acima.
Atributo: é o nome dado a qualquer informação existente na classe que irá armazenas os dados dos objetos. Exemplo: a Placa, o Ano e a Cor são atributos da classe Classe e cada objeto terá os seus próprios valores.
Método: é o nome dado a uma função ou procedimento que executa alguma coisa na Classe ou no Objeto. Exemplo: alterarPreço(novoPreço) é um método que permite alterar o preço de venda de um Carro.
Visibilidade:
Encapsulamento: nome dado à técnica de 'esconder' os dados do objeto, permitindo que os mesmos sejam manipulados unicamente através de sua interface (leia-se métodos).
Polimorfismo: é o nome dado à capacidade de um objeto poder executar métodos de acordo com o contexto onde está inserido. Exemplo: A classe abstrata Animal possui o método abstrato emitirSom() e duas sub-classes concretas, Gato e Cachorro, cada uma implementando o método emitirSom() de acordo com o seu contexto.
Herança: é o nome dado à capacidade de uma classe herdar a estrutura de outra classe, beneficiando principalmente o reuso de código.
Relacionamento: ocorre quando um objeto contém uma referência para outro objeto. Exemplo: objeto da classe Pessoa tem um objeto da classe Endereço. Resumidamente, pode assumir as quantidades 0..1 (zero ou um objeto relacionado), 1 (obrigatório), 0..* (zero ou mais objetos) ou 1..* (pelo menos um objeto).
Objeto: informação registrada na memória RAM do computador para armazenar os dados necessários relativos ao objeto em questão. Exemplo: um objeto VW Gol armazena dados relativos a si mesmo tais como sua Placa, seu Ano de Fabricação, Cor, Marca, Modelo, Nr de portas, etc. Ou seja, são os dados exclusivos DESTE objeto.
Classe: estrutura que define o formato de um objeto. Todo e qualquer objeto é uma instância em memória RAM de uma classe. Os dados, para existirem em um objeto, devem ser previstos em formato de classe. Exemplo: a classe Carro pode ter gerado o objeto VW Gol citado acima.
- Classe concreta: possui métodos concretos e gera objetos.
- Classe abstrata: possui ao menos um método abstrato e não gera objetos. Utilizada para herança.
Atributo: é o nome dado a qualquer informação existente na classe que irá armazenas os dados dos objetos. Exemplo: a Placa, o Ano e a Cor são atributos da classe Classe e cada objeto terá os seus próprios valores.
Método: é o nome dado a uma função ou procedimento que executa alguma coisa na Classe ou no Objeto. Exemplo: alterarPreço(novoPreço) é um método que permite alterar o preço de venda de um Carro.
Visibilidade:
- Public: permite o acesso direto aos atributos/métodos do objeto/classe.
- Protected: permite o acesso aos atributos/métodos do objeto/classe desde que estejam no mesmo package ou seja sub-classe do outro (herança).
- Default/Package: permite o acesso aos atributos/métodos do objeto/classe desde que ambos estejam no mesmo package.
- Private: não permite o acesso direto aos atributos/métodos do objeto/classe. Usada para a técnica do encapsulamento.
Encapsulamento: nome dado à técnica de 'esconder' os dados do objeto, permitindo que os mesmos sejam manipulados unicamente através de sua interface (leia-se métodos).
Polimorfismo: é o nome dado à capacidade de um objeto poder executar métodos de acordo com o contexto onde está inserido. Exemplo: A classe abstrata Animal possui o método abstrato emitirSom() e duas sub-classes concretas, Gato e Cachorro, cada uma implementando o método emitirSom() de acordo com o seu contexto.
- Sobrecarga: métodos com mesmo nome na mesma classe, porém, com parâmetros diferentes.
- Sobreescrita: métodos com mesmo nome e mesmo parâmetros em classes filhas.
Herança: é o nome dado à capacidade de uma classe herdar a estrutura de outra classe, beneficiando principalmente o reuso de código.
Relacionamento: ocorre quando um objeto contém uma referência para outro objeto. Exemplo: objeto da classe Pessoa tem um objeto da classe Endereço. Resumidamente, pode assumir as quantidades 0..1 (zero ou um objeto relacionado), 1 (obrigatório), 0..* (zero ou mais objetos) ou 1..* (pelo menos um objeto).
terça-feira, 1 de março de 2011
Turma 2011 - Fotos
Guilherme |
André |
Maurício |
Jonatan |
Pietro |
|
Josué |
Daniel |
Diego |
Aquiles |
||
Valdenir |
Renan |
Lucas |
|||
Rodrigo |
Luiz Ricardo |
Kellen |
Carlos |
||
Diego |
|||||
Quadro branco |
|||||
Aula 2 - 01.03.2011
Pessoal,
Segue o link para o material das aulas 1 e 2 relativas à OO:
Segue o link para o material das aulas 1 e 2 relativas à OO:
Para o pessoal que ainda possui pouco ou nenhum conhecimento de programação, sugiro FORTEMENTE a leitura COMPLETA do seguinte material:
Também, a pedido, segue um tutorial simples para conseguir instalar um ambiente de desenvolvimento Java:
PS: link muito bom para aprender Java utilizando o NetBeans:
http://netbeans.org/kb/
- Download do Java Standard Edition (Clique aqui)
- Instalação do JSE (Next, Next, Next...)
- Download do NetBeans (Clique aqui)
- Instalação do NetBeans (Next, Next, Next...)
PS: link muito bom para aprender Java utilizando o NetBeans:
http://netbeans.org/kb/
segunda-feira, 28 de fevereiro de 2011
Aula 1 - 28.02.2011
Olá turma, bem-vindos ao Blog da nossa disciplina, Programação Orientada a Objetos.
Gostaria de antemão compartilhar alguns links que acho úteis para nivelarmos o nosso conhecimento no início da disciplina:
Gostaria de antemão compartilhar alguns links que acho úteis para nivelarmos o nosso conhecimento no início da disciplina:
- http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_de_computadores
- http://pt.wikipedia.org/wiki/Hist%C3%B3ria_das_Linguagens_de_Programa%C3%A7%C3%A3o
- http://pt.wikipedia.org/wiki/Linguagem_de_programa%C3%A7%C3%A3o
- http://www.levenez.com/lang/#01
- http://oreilly.com/news/graphics/prog_lang_poster.pdf
- http://www.hardware.com.br/artigos/programacao-orientada-objetos/
- http://www.dca.fee.unicamp.br/cursos/POOCPP/node3.html
- http://pt.wikipedia.org/wiki/Orienta%C3%A7%C3%A3o_a_objetos
Assinar:
Postagens (Atom)


