AJBM Posted April 2, 2012 at 08:15 PM Report #447147 Posted April 2, 2012 at 08:15 PM 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
HappyHippyHippo Posted April 2, 2012 at 08:32 PM Report #447149 Posted April 2, 2012 at 08:32 PM 1º - deverás implementar os getter's 2º - os atributos pai e mão deverão ser Pessoa e não strings .... 3º podes usar exceptions para evitar a atribuição de um pai ou mão inválido IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
AJBM Posted April 2, 2012 at 09:36 PM Author Report #447152 Posted April 2, 2012 at 09:36 PM e como e que eu faço a restricao eu sei que e na classe pessoa no metodo setidade mas nao consigo fazer da-me sempre erro
HappyHippyHippo Posted April 2, 2012 at 10:05 PM Report #447158 Posted April 2, 2012 at 10:05 PM 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 Portugol Plus
AJBM Posted April 24, 2012 at 07:39 AM Author Report #451057 Posted April 24, 2012 at 07:39 AM 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?
joelbrito Posted April 24, 2012 at 08:06 AM Report #451059 Posted April 24, 2012 at 08:06 AM 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
Baderous Posted April 24, 2012 at 11:12 AM Report #451087 Posted April 24, 2012 at 11:12 AM 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.
joelbrito Posted April 24, 2012 at 12:57 PM Report #451106 Posted April 24, 2012 at 12:57 PM 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
AJBM Posted April 24, 2012 at 05:21 PM Author Report #451178 Posted April 24, 2012 at 05:21 PM e eu nao uso subclasses tenho a classe pessoa e depois tenho variaveis do tipo pessoa, mas a minha duvida esta em como fazer a restricao as idades
HappyHippyHippo Posted April 24, 2012 at 05:39 PM Report #451190 Posted April 24, 2012 at 05:39 PM 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 Portugol Plus
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now