/*
写一个类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是什么意思呢?
写一个类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是什么意思呢?
p.setPartner(a);
partner的类型是Person类型,意思是Person类里面的一个字段,它引用另外一个person对象实例。
然后你再掉用setPartner()来进行赋值..
顺便说一句,每一个JAVA文件都需要有一个public类.你这样写编译的过吗??
还有我建议一个JAVA无特殊情况时都只写一个类..不要写多个.这个习惯不好..从小养成良好的编程习惯是很必要的.等你养成坏习惯,想改都难.
Person personB = new Person("张三", 28, true, personA);
因为此时P已经是一个引用变量,他指向了一个对象,你对他进行操作,他就是操作这个对象,这个你要从内存角度来看。