Buscar

03 exercicio classe e objetos

Prévia do material em texto

1 de 3 
 
Disciplina: Linguagem de Programação II Valor: 
Docente: Carlos Henrique Odenique Jardim Turma: ECP 
Série: 6º Semestre Curricular Período: Noturno 
2º Semestre 2017 – 1º Bimestre 
Roteiro de Estudo 
Data de entrega: 
 
 
1. Objetivos	
	
Estudar	os	conceitos	de	Classe	e	Objetos.	
	
2. Atividade	anterior	a	aula	
	
Ler	o	material	da	aula	‘03	–	Classes	e	Objetos’.	
	
3. Atividade	posterior	a	aula	
Ler	 o	 capítulo	 ‘1	 –	 Introdução	 à	 Linguagem	 de	 Programação’,	 do	 livro	 “SANTOS,	 F.	 Linguagens	 de	
Programação.	1	ed.	Rio	de	Janeiro:	SESES,	2015.	216p.”,	disponível	on-line.	
Ler	o	capítulo	‘3	–	Introdução	a	classe	e	objetos’	(exceto	a	seção	3.9)’	do	livro	“DEITEL,	H.	M.;	DEITEL,	P.	J.;	
LISBOA,	C.	A.	L.	Java:	como	programar.	8	ed.	São	Paulo:	Pearson	Prentice	Hall,	2010.	1144p.”,	disponível	na	
biblioteca.	
Resolver	os	exercícios	do	apêndice	‘A.	Exercícios’.	
	
4. Atividade	extra	
	
Ler	 o	 capítulo	 ‘4	 –	 Objetos	 e	 Classes’	 do	 livro	 “HORSTMANN,	 C.	 S;	 CORNELL,	 G.	 Core	 Java	 -	 Volume	 I:	
Fundamentos.	8	ed.	São	Paulo:	Pearson	Prentice	Hall,	2009.	384p.”,	disponível	na	biblioteca	virtual.	
	
Assista	 ao	 vídeo	 da	 aula	 ‘Lição	 9	 –	 Trabalhando	 com	 bibliotecas	 de	 classes’	 do	 curso	 ‘Introdução	 à	
programação	I’	da	iniciativa	JEDI	http://www.dfjug.org.br/jedi/mod/url/view.php?id=200.	
	
Assista	ao	vídeo	da	aula	‘Lição	10	–	Criando	nossas	classes’	do	curso	‘Introdução	à	programação	I’	da	iniciativa	
JEDI	http://www.dfjug.org.br/jedi/mod/url/view.php?id=203.	
	
Resolver	os	exercícios	do	apêndice	‘B.	Exercícios	Complementares’.	
	
A. Exercícios	1. Pesquise	e	explique	os	conceitos	de	Abstração,	Encapsulamento	e	Modularidade	no	contexto	de	Programação	Orientada	a	Objetos.		2. Defina	o	que	são	classes	e	objetos	e	explique	a	relação	entre	eles.		3. Descreva	o	que	são	atributos	e	métodos.		4. Qual	o	propósito	do	operador	new.	O	que	acontece	quando	este	operador	é	utilizado?		5. Crie	uma	classe	denominada	Elevador	para	armazenar	as	informações	de	um	elevador	dentro	de	um	prédio.	A	classe	deve	armazenar	o	andar	atual	(térreo	=	0),	total	de	andares	no	prédio	(desconsiderando	o	térreo),	
2 de 3 
capacidade	 do	 elevador	 e	 quantas	 pessoas	 estão	 presentes	 nele.	 A	 classe	 deve	 também	 disponibilizar	 os	seguintes	métodos:	
• Inicializar:	 que	 deve	 receber	 como	 parâmetros	 a	 capacidade	 do	 elevador	 e	 o	 total	 de	 andares	 no	prédio	(os	elevadores	sempre	começam	no	térreo	e	vazio);	
• Entrar:	para	acrescentar	uma	pessoa	no	elevador	(só	deve	acrescentar	se	ainda	houver	espaço);	
• Sair:	para	remover	uma	pessoa	do	elevador	(só	deve	remover	se	houver	alguém	dentro	dele);	
• Subir:	para	subir	um	andar	(não	deve	subir	se	já	estiver	no	último	andar);	
• Descer:	para	descer	um	andar	(não	deve	descer	se	já	estiver	no	térreo).	
Encapsular todos os atributos da classe (criar os métodos set e get). 	6. Crie	uma	classe	Televisao	e	uma	classe	ControleRemoto	que	pode	controlar	o	volume	e	trocar	os	canais	da	televisão.	O	controle	de	volume	permite:	
• Aumentar	ou	diminuir	a	potência	do	volume	de	som	em	uma	unidade	de	cada	vez;	
• Aumentar	e	diminuir	o	número	do	canal	em	uma	unidade;	
• Trocar	para	um	canal	indicado;	
• Consultar	o	valor	do	volume	de	som	e	o	canal	selecionado.		7. Porque	esse	código	não	compila?	class	Teste	{	int	x	=	37;	public	static	void	main(String	[]	args)	{	System.out.println(x);	}	}		8. Altere	a	classe	UmObjeto,	apresentada	abaixo,	de	forma	que	ela	garanta	que	somente	uma	única	instância	da	classe	 possa	 existir	 dentro	 de	 um	 programa	 Java	 qualquer.	 Escreva	 um	 programa	 para	 testar	 a	 solução	apresentada.	Sugestão:	pesquise	o	padrão	de	projeto	Singleton.		 import	java.util.Random;	public	class	UmObjeto	{	private	int	x;	private	static	Random	gerador	=	new	Random();		public	UmObjeto()	{	//Inicializa	o	atributo	com	um	valor	aleatório	x	=	gerador.nextInt();	}		public	String	toString()	{	return	"Meu	valor:	"	+	x;	}	}		9. Inclua	na	classe	Circulo,	vista	em	sala	de	aula,	um	método	de	instância	para	retornar	a	representação	textual	da	equação	geral	de	uma	instância	de	Circulo.		10. 	Construa	uma	classe	Ponto	com	a	capacidade	de	calcular	a	distância	entre	dois	pontos.	Para	tal,	é	desejado	o	seguinte	comportamento:	a) Calcular	a	distância	entre	a	instância	do	ponto	e	outro	objeto	ponto	qualquer;	
3 de 3 
b) Calcular	a	distância	entre	a	instância	do	ponto	e	outro	ponto	dado	pelas	coordenadas	X	e	Y;	c) Calcular	a	distância	entre	dois	pontos	dadas	as	coordenadas	X1,	Y1	e	X2,	Y2.	A	distância	entre	dois	pontos	é	calculada	por:	
€ 
x2 − x1( )
2
+ y2 − y1( )
2 		11. Suponha	que	estamos	interessados	em	desenvolver	um	sistema	de	cálculo	de	geometria	para	o	estudo	dos	pontos	e	segmentos	de	retas	(compostas	por	um	ponto	inicial	e	final)	no	plano	cartesiano.	Neste	sistema,	é	possível	mover	um	ponto	para	qualquer	outra	posição	e	calcularmos	o	comprimento	do	segmento	de	reta.	Adicionalmente,	 podemos	visualizar	 as	propriedades	de	qualquer	ponto	 e	 segmento	de	 reta.	Apresente	 a	implementação	das	classes	em	Java.		12. Crie	uma	classe	chamada	Complex	para	realizar	aritmética	com	números	complexos.	Escreva	um	programa	para	testar	sua	classe.	Os	números	complexos	têm	a	forma:	z	=	a	+	bi,	onde	a	e	b	são	números	reais	conhecidos	como	parte	real	e	parte	imaginária	de	z	e	i	denotam	a	unidade	imaginária.	Utilize	 variáveis	 de	 ponto	 flutuante	 para	 representar	 os	 dados	 private	 da	 classe.	 Forneça	 um	 método	construtor	que	permita	que	um	objeto	dessa	classe	seja	inicializado	quando	ele	for	declarado.	Forneça	um	construtor	sem	argumento	com	valores	default	caso	nenhum	inicializador	seja	fornecido.	Forneça	métodos	public	para	cada	uma	das	operações:	a) Somar	dois	números	Complex:	as	partes	reais	são	somadas	de	um	lado	e	as	partes	imaginárias	são	somadas	de	outro.	b) Subtrair	 dois	 números	 Complex:	 a	 parte	 real	 do	 operando	 direito	 é	 subtraída	 da	 parte	 real	 do	operando	 esquerdo	 e	 a	 parte	 imaginária	 do	 operando	 direito	 é	 subtraída	 da	 parte	 imaginária	 do	operando	esquerdo.	c) Imprimir	os	números	Complex	na	forma	(a,b)	onde	a	é	a	parte	real	e	b	a	parte	imaginária.	
 13. A	maioria	dos	compiladores	 Java	modernos	possuem	otimizadores	que	podem	detectar	em	casos	simples	quando	é	logicamente	impossível	que	certas	sentenças	sejam	executadas.	Nestes	casos,	o	compilador	alerta	o	programador	 sobre	 código	 inútil.	 Escreve	 um	 método	 na	 linguagem	 Java	 que	 contém	 código	 que	provavelmente	é	impossível	de	ser	executado,	mas	que	o	compilador	não	consegue	detectar	este	fato.		14. Escreva	uma	classe	na	linguagem	Java	para	representar	uma	lista	e	que	forneça	os	seguintes	métodos:	
• size():	retorna	o	número	de	elementos	na	lista.	
• isEmpty():	retorna	true	se	a	lista	estiver	vazia	e	false	caso	contrário.		
• first():	retorna	(mas	não	remove)	o	primeiro	elementos	da	lista.		
• last():	retorna	(mas	não	remove)	o	último	elemento	da	lista.		
• addFirst(e):	adiciona	um	novo	elemento	no	começo	da	lista.	
• addLast(e):	adiciona	um	novo	elemento	no	final	da	lista.		
• removeFirst():	remove		e	retorna	o	primeiro	elemento	da	lista.	
• 
removeLast	():	remove		e	retorna	o	último	elemento	da	lista.		15. Escreva	um	programa	na	linguagem	Java	para	computar	polinômios	da	forma:	P(x)	=	anxn	+	an-1xn-1	+	.	.	.	+	a1x	
+	a0.	 	
B. Exercícios	Complementares	
Resolver	 os	 exercícios	 de	 3.13	 a	 3.17	 do	 livro	 “DEITEL,	 H.	M.;	 DEITEL,	 P.	 J.;	 LISBOA,	 C.	 A.	 L.	 Java:	 como	
programar.	8	ed.	São	Paulo:	Pearson	Prentice	Hall,	2010.	1144p.”.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes