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

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

void setName( String name )
{
this.name = name ;
}
void setAge ( int age )
{
this.age = age ;
}
void setPartner( Person partner )
{
this.partner = partner ;
}
public String getName()
{
return name ;
}
public  int getAge()
{
return age ;
}
public Person getPartner()
{
return partner ;
}

public void marry(Person  p)
{
if ( age < 24 || p.age < 22 )
{
System.out.println("未达到结婚年龄 ");
}
else if ( gender == p.gender )
{
System.out.println("同性 ");
}
else if ( (partner != null) && (p.partner != null) )
{
System.out.println("某一方已婚 ");
}
else
{
System.out.println("恭贺");
}
}
}class Person12 
{
public static void main ( String [] args )
{
Person a = new Person ("人人" , 25 , true , null  );       
Person p = new Person ("人21" , 25 , true , null );
a.marry(p);
}
}

Person partner 我这样才能给他赋值呢 我现在只是知道只能给他空值null 谁能给我说下这是什么意思嘛?Person partner是什么意思呢?

解决方案 »

  1.   

    a.setPartner(p);
    p.setPartner(a);
    partner的类型是Person类型,意思是Person类里面的一个字段,它引用另外一个person对象实例。
      

  2.   

    首先你用new的方法创建2 个对象,他们的partner都为null
    然后你再掉用setPartner()来进行赋值..
    顺便说一句,每一个JAVA文件都需要有一个public类.你这样写编译的过吗??
    还有我建议一个JAVA无特殊情况时都只写一个类..不要写多个.这个习惯不好..从小养成良好的编程习惯是很必要的.等你养成坏习惯,想改都难.
      

  3.   

    恩 那我现在想给a弄一个配偶给他 可我要怎么给他呢 我意思就是直接给他那个a.setPartner(p);p换成字符要怎么做呢  Person  p 能给我说下在这里是什么意思嘛???
      

  4.   

    呵呵 咱这里只能结婚 不给离婚的 Person  p这个在这里是什么意思 怎么用呢啊??
      

  5.   

    Person personA = new Person("张三配偶", 28, false, null);
    Person personB = new Person("张三", 28, true, personA);
      

  6.   

    对,你直接进行a.setPartner(p);
    因为此时P已经是一个引用变量,他指向了一个对象,你对他进行操作,他就是操作这个对象,这个你要从内存角度来看。