日期:2014-05-20  浏览次数:20832 次

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

欢迎大家讨论。

------解决方案--------------------
简单如下,有不确切的定方请指教

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("很遗憾,你们不能结婚");
}
}
------解决方案--------------------
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);
}
}
------解决方案--------------------
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);
}
}
------解决方案--------------------
public class Person {
String name;
int age;
String gender;