Jump to content

Restriçoes


AJBM
 Share

Recommended Posts

Boas!

eu tenho que definir uma pessoa,  por nome, idade, sexo, pai, e mãe. . Os atributos de

uma pessoa devem ser de acesso o mais restrito possível. a minha dificuldade esta nisto

Evitar que o pai ou a mãe de uma pessoa possua uma idade inferior à do filho, eu ja fiz isto

public class Pessoa {
   private String nome;
   private int idade;
   private String pai;
   private  String mae;
   private char sexo;
    Pessoa(String nome,int idade,String pai,String mae,char sexo){
        this.nome=nome;
        this.idade=idade;
        this.pai=pai;
        this.mae=mae;
        this.sexo=sexo; 
    }
    public void setnome(String nome){
        this.nome=nome;    
    }
    public void setidade(int idade){
           
       this.idade=idade;
       
        
    }
    public void setpai(String pai){
        this.pai=pai;
    }
    public void setmae(String mae){
        this.mae=mae;
    }
public void setsexo(char sexo){
    this.sexo=sexo;
    
}
public String getnome(){
    return nome;
}
public int getidade(){
    return idade;
    
}
public String getpai(){
    return pai;
}
public String getmae(){
    return mae;
}
public char getsexo(){
    return sexo;
}
}

public class PessoaDemo {
  
    public static void main(String[] args) {
        Pessoa filho;
        Pessoa pai;
        Pessoa mae;
        filho= new Pessoa("Antonio",18,"Antonio","Maria",'M');
        pai=   new Pessoa(filho.getnome(),10,"Jose","Ana",'M');
        mae=   new Pessoa(filho.getmae(),60,"Jose","Ana",'F');
        System.out.println(filho.getnome());
        System.out.println(filho.getidade());
        System.out.println(filho.getpai());
        System.out.println(filho.getmae());
        System.out.println(filho.getsexo());

Eu tenho que fazer a restricao na classe pessoa mas nao consigo fazer alguem me pode ajudar

Link to comment
Share on other sites

tens três problemas :

- associar um pai ou mãe que tem uma idade inferior

- alterar a idade do filho ficando esta maior que a idade de algum dos pais

- alterar a idade ao pai ou à mãe inferior do que o filho

para resolver o primeiro problema terás somente de verificar que o pai ou mãe a serem associados teem uma idade superior

para resolver o segundo problema tem de verificar se a idade a ser atribuida continua a ser inferior aos dois pais

para resolver o terceiro (este já é um pouco mais complicado), tens de ter uma lista de todos os filhos da pessoa, e verificar que todos eles teem idade inferior a ser atribuida.

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Boas!

eu tenho que definir uma pessoa,  por nome, idade, sexo, pai, e mãe. . Os atributos de

uma pessoa devem ser de acesso o mais restrito possível. a minha dificuldade esta nisto

Evitar que o pai ou a mãe de uma pessoa possua uma idade inferior à do filho, eu ja fiz isto

public class Pessoa {
   private String nome;
   private int idade;
   private String pai;
   private  String mae;
   private char sexo;
    Pessoa(String nome,int idade,String pai,String mae,char sexo){
        this.nome=nome;
        this.idade=idade;
        this.pai=pai;
        this.mae=mae;
        this.sexo=sexo; 
    }
    public void setnome(String nome){
        this.nome=nome;    
    }
    public void setidade(int idade){
           
       this.idade=idade;
       
        
    }
    public void setpai(String pai){
        this.pai=pai;
    }
    public void setmae(String mae){
        this.mae=mae;
    }
public void setsexo(char sexo){
    this.sexo=sexo;
    
}
public String getnome(){
    return nome;
}
public int getidade(){
    return idade;
    
}
public String getpai(){
    return pai;
}
public String getmae(){
    return mae;
}
public char getsexo(){
    return sexo;
}
}

public class PessoaDemo {
  
    public static void main(String[] args) {
        Pessoa filho;
        Pessoa pai;
        Pessoa mae;
        filho= new Pessoa("Antonio",18,"Antonio","Maria",'M');
        pai=   new Pessoa(filho.getnome(),10,"Jose","Ana",'M');
        mae=   new Pessoa(filho.getmae(),60,"Jose","Ana",'F');
        System.out.println(filho.getnome());
        System.out.println(filho.getidade());
        System.out.println(filho.getpai());
        System.out.println(filho.getmae());
        System.out.println(filho.getsexo());

Eu tenho que fazer a restricao na classe pessoa mas nao consigo fazer alguem me pode ajudar

eu no setidade fiz isto

if(pai!=null&&mae!=null){
if(pai.idade>idade&&mae.idade>idade){
this.idade=idade;}
System.exit(0);}[/quote] mas nunca me da a idade sai sempre?
Link to comment
Share on other sites

Um filho é uma pessoa, um pai é uma pessoa e uma mãe também é uma pessoa.

Isto não é um caso para usar subclasses?

Engenharia de Sistemas Informáticos @ IPCA

"Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs

Link to comment
Share on other sites

Um filho é uma pessoa, um pai é uma pessoa e uma mãe também é uma pessoa.

Isto não é um caso para usar subclasses?

Olha para a tua 1ª frase e vê se descreveste de forma diferente algum dos 3 elementos em questão. A mim parece-me que não: são todos pessoas e nenhum deles tem alguma especificidade extra relativamente aos outros.

Link to comment
Share on other sites

Olha para a tua 1ª frase e vê se descreveste de forma diferente algum dos 3 elementos em questão. A mim parece-me que não: são todos pessoas e nenhum deles tem alguma especificidade extra relativamente aos outros.

Pois, vendo bem é isso...

E quer seja mãe ou pai também tem uma mãe e um pai

Engenharia de Sistemas Informáticos @ IPCA

"Estou convencido de que cerca de metade do que separa os empreendedores de sucesso daqueles malsucedidos é a pura perseverança." - Steve Jobs

Link to comment
Share on other sites

class Pessoa {
  ...
  protected int idade;
  protected List<Pessoa> filhos;
  protected Pessoa pai;
  protected Pessoa mae;
  ...
  public int getIdade() {
    return idade;
  }
  ...
  public void setIdade(int idade) {
    // verifica se todos os filhos teem uma idade inferior
    Iterator<Pessoa> iter = this.filhos.iterator();
    while(iter.hasNext()) {
      iter = iter.next();
      if (iter.getIdade() >= idade)
        throw new Exception("existe um filho com idade igual ou superior à atribuida");
    }

    this.idade = idade;
  }
  ...
  public void setPai(Pessoa pai) {
    if (pai.getIdade() <= this.idade)
        throw new Exception("a idade do pai não pode ser igual ou inferior ao do filho");
    this.pai = pai;
  }
  ...
  public void setMae(Pessoa mae) {
    if (mae.getIdade() <= this.idade)
        throw new Exception("a idade da mãe não pode ser igual ou inferior ao do filho");
    this.mae = mae;
  }
  ...
  public void addChild(Pessoa filho) {
    if (filho.getIdade() >= this.idade)
        throw new Exception("a idade do filho não pode ser igual ou superior ao do progenitor");
    this.filhos.add(filho);
  }
};
IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.