0% acharam este documento útil (0 voto)
118 visualizações

Exercicios em Java

Este documento apresenta soluções para exercícios de programação em Java. No primeiro exercício, propõe-se redefinir os métodos equals e hashCode na classe Aluno para que esta possa ser adicionada a um conjunto. No segundo exercício, sugere-se implementar uma classe Comparator para ordenar uma lista de alunos por nota e imprimir a pauta ordenada. No terceiro exercício, discute-se a serialização de objetos da classe Retângulo, propondo marcar atributos como transient e sobrescrever o método readObject.

Enviado por

Jones Lipeque
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
118 visualizações

Exercicios em Java

Este documento apresenta soluções para exercícios de programação em Java. No primeiro exercício, propõe-se redefinir os métodos equals e hashCode na classe Aluno para que esta possa ser adicionada a um conjunto. No segundo exercício, sugere-se implementar uma classe Comparator para ordenar uma lista de alunos por nota e imprimir a pauta ordenada. No terceiro exercício, discute-se a serialização de objetos da classe Retângulo, propondo marcar atributos como transient e sobrescrever o método readObject.

Enviado por

Jones Lipeque
Direitos autorais
© © All Rights Reserved
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 6

Fátima Momade Salimo

Resolução de Trabalho de Cadeira de Laboratório de Informática III em Java

Universidade Rovuma

Campus de Nacala

2019
Numero 1

(a) Basta redefinir os métodos equals e hashCode (a pauta ´e uma conjunto de alunos, conjunto
este instância de um HashSet) na classe Aluno para obter o efeito desejado.

Ficheiro Pauta.java:

1 import java . util . Set ;

2 import java . util . Hash Set ;

4 public class Pauta {

6 public static class Aluno {

8 // ... comentario

public boolean equals ( Object obj ) {

return this . numero == (( Aluno ) obj ). numero ;

12 }

public int hash Code () {

return ( new Integer ( this . numero )). hash Code ();

15 }

16 }

17

18 // ... Comentario

19

20 }
21 }

b) Ficheiro Pauta.java:

1 import java . util . Set ;

2 import java . util . Hash Set ;

3 import java . util . Comparator ;

5 public class Pauta {

7 // ... comentários

9 public static class Comparador Alunos Por Nota implements Comparator < Aluno > {

public int compare ( Aluno a1 , Aluno a2 ) {

if ( a1 . nota <= a2 . nota ) return -1;

else if ( a1 . nota == a2 . nota ) return 0;

return 1;

14 }

15 }

16

public Aluno [] ordena Pauta Por Nota () {

Aluno res [] = new Aluno [ alunos . size ()];

res = alunos . to Array ( res );

java . util . Arrays . sort ( res , new Comparador Alunos Por Nota ());

return res ;

22 }
23

24 public static void main ( String [] args ) {

25

26 System . out . println (" Imprimindo pauta ... " );

27

28 Pauta . Aluno a1 = new Pauta . Aluno (1 ," a" ,10);

29 Pauta . Aluno a2 = new Pauta . Aluno (1 ," a" ,10);

30 Pauta p = new Pauta ();

31 p. adicionar ( a1 );

32 p. adicionar ( a2 );

33 System . out . println ( p. alunos . size ());

34

35 Pauta . Aluno a3 = new Pauta . Aluno (2 ," b" ,9);

36 Pauta . Aluno a4 = new Pauta . Aluno (3 ," b" ,20);

37 p. adicionar ( a3 );

38 p. adicionar ( a4 );

39

40 Pauta . Aluno [] alunos = p. ordena Pauta Por Nota ();

41 for ( int i =0; i< alunos . length ; i ++)

42 System . out . println ( alunos [ i ]);

43 }

44 }

Número 2
(a) Os atributos x1, x2, y1, y2 têm visibilidade de pacote (visibilidade por omissão no Java), pelo
que são visíveis em todos os tipos definidos dentro do pacote.

(b) i. A asserção falha quando se constrói r2 logo é construído e lançado um AssertionError


terminado a aplicação. Em relação a r1 a expressão da asserção é avaliada a true e nada acontece.

ii. Quando as asserções estão desligadas não acontece nada pois estas não são avaliadas.

c) Bastaria fazer com que a classe Rectângulo implementasse a interface Serializable: public
class Rectângulo implements java.io.Serializable {...}

Apenas x1, x2, y1 e y2 são lidos e escritos para um fluxo de objectos pois os atributos largura e
altura são atributos transient. Na serialização por omissão apenas os atributos não transientes e
não estáticos são lidos e escritos para fluxos de objectos.

d) Ficheiro Rectângulo.java:

1 import java . io .*;

3 public class Rect ^a ngulo implements Serializable {

5 // ... comentario

7 private void read Object ( Object Input Stream in)

8 throws IOException , Class Not Found Exception {

9 in. default Read Object ();

10 largura = x2 - x1 ;

11 altura = y2 - y1 ;

12 }

13 }

Você também pode gostar