1  public class BirthDate {
2 private int day;
3 private int month;
4 private int year;
5
6 public BirthDate (){}
7
8 public BirthDate (int d,int m,int y){
9 day = d;
10 month = m;
11 year = y;
12 }
13
14 //getting and setting……
15
16 public void display(){
17 System.out.println(year + "-" + month + "-" + day);
18 }
19  }
20  public class TestBirthDate{
21 public static void main(String args[]){
22 Example ex = new Example();
23 int date = 9;
24 BirthDate d1= new BirthDate(7,7,1970);
25 BirthDate d2= new BirthDate(1,1,2000);
26 ex.change1(date);
27 ex.change2(d1);
28 ex.change3(d2);
29 System.out.println("date=" + date);
30 d1.display();
31 d2.display();
32 }
33 public void change1(int i){ i = 1234; }
34 public void change2(BirthDate b){
35 b = new BirthDate(22,2,2004);
36 }
37 public void change3(BirthDate b){
38 b.setDay(22);
39 }
40  }
问题1:这程序有没有问题?我是从一个很专业的讲义上看到的
问题2:为什么TestBirthDate类中(22行)平白无故的出来一个Example类还创建了对象?
问题3:26-28行的change1、change2、chagnge3是什么,有什么作用,是Example的方法吗?能直接引用吗?为什么又在33-39行有定义?
问题4:38行setDay的方法体不用写清楚吗?
       

解决方案 »

  1.   

    问题1:这程序有没有问题?我是从一个很专业的讲义上看到的  //程序不完整 无法判断有没有问题
    问题2:为什么TestBirthDate类中(22行)平白无故的出来一个Example类还创建了对象? //我想这个Example是不是印错了 应该是TestBirthDate吧?不然就没法解释了
    问题3:26-28行的change1、change2、chagnge3是什么,有什么作用,是Example的方法吗?能直接引用吗?为什么又在33-39行有定义? //改变生日属性的
    问题4:38行setDay的方法体不用写清楚吗? //这个方法应该是BirthDate类定义的
      

  2.   

    问题1:这程序有没有问题?我是从一个很专业的讲义上看到的 
    问题2:为什么TestBirthDate类中(22行)平白无故的出来一个Example类还创建了对象? 
    问题3:26-28行的change1、change2、chagnge3是什么,有什么作用,是Example的方法吗?能直接引用吗?为什么又在33-39行有定义? 
    问题4:38行setDay的方法体不用写清楚吗? 示例是值传递,引用传递相关的。1:BirthDate类需要get set方法,Example 改为TestBirthDate
    2:见1
    3:change1 向方法传递基本类型并修改
       change2,3 向方法传递引用类型并修改,只是注意修改的方式,一个是改变引用,一个是修改对象值
      

  3.   

    问题2:
    Example 改为TestBirthDate.问题3就可以解释了。
    问题4:
    14 //getting and setting……
    我想书上是省略了没有显示get和set方法。