写一个类Person,包含以下属性:String name; int age; boolean  gender;Person partner。为Person类写一个marry(Person  p)方法,代表当前对象和p结婚,如若可以结婚,则输出恭贺信息,否则输出不能结婚原因。要求在另外一个类中写一个主方法,来测试以上程序。(下列情况不能结婚:1,同性;2,未达到结婚年龄,男<24,女<22;3,某一方已婚)欢迎大家讨论。

解决方案 »

  1.   

    简单如下,有不确切的定方请指教public class Person{
    private String name; 
    private int age; 
    private boolean  gender;/*true is man */
    private Person partner;
    /* 简单表示一下,这里最好添加一些get ,set 函数来设置一下姓名,性别等*/

    public void Person(String name,int age,boolean gender,Person partner ){
    this.name=name;
    this.age=age;
    this.gender=gender;
    this.partner=partner;
    }
    public void marry(Person  p){

    if(this.gender==true&&this.gender!=p.gender&&this.age<24&&p.age<22&&this.partner==null&&p.partner==null)
    System.out.println("恭喜二位可以结婚");
     
    else if(this.gender==false&&this.gender!=p.gender&&this.age<22&&p.age<24&&this.partner==null&&p.partner==null)
             System.out.println("恭喜二位可以结婚");
             else System.out.println("很遗憾,你们不能结婚");
    }
    }
      

  2.   

    LS的年龄判断有误
    借用LS的代码
    class Person{ 
        private String name;  
        private int age;  
        private boolean  gender;/*true is man */ 
        private Person partner; 
        /* 简单表示一下,这里最好添加一些get ,set 函数来设置一下姓名,性别等*/     public void Person(String name,int age,boolean gender,Person partner ){ 
            this.name=name; 
            this.age=age;  
            this.gender=gender; 
            this.partner=partner; 
        } 
        public void marry(Person  p){ 
            if (this.gerder && p.gender) {
                System.out.println("同性,不能结婚");
                return;
            }
        
            if ((this.gender)?(this.age<24 || p.age<22):(this.age<22 || p.age<24)) {
                System.out.println("未达到结婚年龄");
                return;
            }        if (this.partner!=null || p.partner!=null) {
                System.out.println("某一方已婚");
                return;
            }        this.partner = p;
            p.partner = this;
            System.out.println("恭喜二位可以结婚"); 
      
        } 
    }public class Test {
        public static void main(String[] args) {
            Person boy = new Persion("boy", 25, true, null);
            Person girl = new Person("girl", 23, false, null);
            boy.marry(girl);
        }
    }
      

  3.   

    public class Person {
    static final boolean man = true,falme =false;
    String name ;
    int age;
    boolean gender;
    Person partener;
    public Person(String n,int a,boolean g,Person p) {
    this.name = n;
    this.age = a;
    this.gender = g;
    this.partener = p;
    }
    public void marry(Person p) {
    if(gender&&p.gender) {
    System.out.println("gender is the same");
    return;
    }else if((age<24)||(p.age)<24) {
    System.out.println("age don't reach");
    return;
    }
    System.out.println("恭喜,恭喜");
    }
    public static void main(String[] args) {
    Person p1 = new Person("张三",16,man,null);
    Person p2 = new Person("李四", 28,falme,p1);
    p2.marry(p1);
    }
    }
      

  4.   

    public class Person {
    String name;
    int age;
    String gender;
    Person partner;


    public  Person(String name,int age,String gender){
    this.name=name;
    this.age=age;
    this.gender=gender;
    }


    public void Marry(Person p){
    partner=new Person("hui",24,"woman");

    if(!p.gender.equals(partner.gender))
    {
    if(p.gender.equals("man")){
    if(p.age>=24){
    if(partner.age>=22){
    System.out.println("Marry");
    }
    else{System.out.println("The age of girl is not enough");}
    }
    else{System.out.println("The age of man is not enough");}
    }
    else{
    if(p.age>=22){
    if(partner.age>=24){
    System.out.println("Marry");
    }
    else{System.out.println("The age of man is not enough");}
    }
    else{System.out.println("The age of girl is not enough");}

        }
    }
    else{System.out.println("The gender is same");}
    }

    public static void main(String args[]){
    Person p=new Person("liu",25,"man");

    p.Marry(p);
    }
    }
      

  5.   

    遗憾!没有人写的完全规范正确,基本功有待提高阿。public class Person {    public static final boolean M = true, F = false;    private String name;
        private int age;
        private boolean gender;
        private Person partner;    public Person(String name, int age, boolean gender) {
            this.name = name;
            this.age = age;
            this.gender = gender;
        }    public String getName() {
            return name;
        }    public int getAge() {
            return age;
        }    public boolean getGender() {
            return gender;
        }    public boolean isMarried() {
            return partner != null;
        }    public void marry(Person p) {
            if (gender == p.getGender())
                System.out.println("Same gender!");
            else if (isMarried() || p.isMarried())
                System.out.println("Someone married already!");
            else if (gender == M && age < 24
              || gender == F && age < 22
              || p.getGender() == M && p.getAge() < 24
              || p.getGender() == F && p.getAge() < 22)
                System.out.println("Someone too young!");
            else {
                System.out.println("Congratulations!");
                partner = p;
            }
        }    public static void main(String[] args) {
            Person tom, jerry, jack, lisa;
            tom = new Person("Tom", 24, Person.M);
            jerry = new Person("Jerry", 22, Person.F);
            jack = new Person("Jack", 18, Person.M);
            lisa = new Person("Lisa", 20, Person.F);        System.out.println("Tom is trying to marry Lisa...");
            tom.marry(lisa);
            System.out.println("Tom is trying to marry Jack...");
            tom.marry(jack);
            System.out.println("Tom is trying to marry Jerry...");
            tom.marry(jerry);
            System.out.println("Tom is trying to marry Lisa, again! ...");
            tom.marry(lisa);
            
        }}
      

  6.   

    不好意思,partner = p; 后面漏了一句:p.partner = this;