package Revisao;
/**
*
* @author r094565
*/
public class Autor {
private String nome;
public Autor(String nome) {
this.nome = nome;
}
@Override
public boolean equals(Object obj) {
final Autor outro=(Autor) obj;
if(outro==null){
return false;
}
if(this.nome == null){
return this.nome==outro.nome;
}else{
return this.nome.equals(outro.nome);
}
}
}
package Revisao;
/**
*
* @author r094565
*/
public class Documento {
private String titulo;
private Autor autor;
private boolean aprovado;
public Documento(String titulo, Autor autor) {
this.titulo = titulo;
this.autor = autor;
}
public void revisadoPor(Autor autor) {
if (autor.equals(this.getAutor())){
this.setAprovado(false);
}else
if(this.getTitulo().contains("Web")){
this.setAprovado(true);
}
}
public Autor getAutor(){
return autor;
}
public String getTitulo(){
return titulo;
}
public boolean isAprovado(){
return aprovado;
}
protected void setAprovado(boolean aprovado){
this.aprovado=aprovado;
}
}
package Revisao;
import java.util.ArrayList;
import java.util.List;
/**
*
* @author r094565
*/
public class Artigo extends Documento {
private List
public Artigo(String titulo, Autor autor){
super(titulo,autor);
}
public List
return referencias;
}
@Override
public void revisadoPor(Autor autor){
super.revisadoPor(autor);
for(Documento ref: referencias)
if(!ref.isAprovado()){
super.setAprovado(false);
}
}
}
public class Main {
public static void main(String [] args){
Autor fields = new Autor("Harvey M. Deitel");
Autor deitel=new Autor("Duane K. Fields");
Documento art1=new Artigo("Segurança na Web",fields);
Artigo art2= new Artigo("Arquitetura Web",fields);
Artigo art3=new Artigo("Web 2.0",fields);
// art1.getReferencia().add(art2);
art3.getReferencia().add(art1);
art3.getReferencia().add(art2);
art1.revisadoPor(deitel);
art3.revisadoPor(deitel);
boolean a=false;
boolean b = true;
a =art1.isAprovado();
b= art3.isAprovado();
System.out.println(a);
System.out.println(b);
}
}
Porque o resultado dos atributo aprovado para os objetos atr1 e true e atr3 e false .
Grato
[code]