class Temp{
 private String guojia;
 private String shengfen;
 private String chengshi;
 public Temp(){};
 public Temp(String guojia,String shengfen,String chengshi){
  this.guojia = guojia;
  this.shengfen = shengfen;
  this.chengshi = chengshi;
 }
 
 public String Info(){
  return "地址信息:" + "\n" + 
     "\t|- 国家:" + this.GetGuojia() + "\n" + 
     "\t|- 省份:" + this.GetShengfen() + "\n" + 
     "\t|- 城市:" + this.GetChengshi() + "\t";
 }
 public void SetGuojia(String guojia){
  this.guojia = guojia;
 }
 public void SetShengfen(String shengfen){
  this.shengfen = shengfen;
 }
 public void SetChenshi(String chenshi){
  this.chengshi = chengshi;
 }
 public String GetGuojia(){
  return guojia;
 }
 public String GetShengfen(){
  return shengfen;
 }
 public String GetChengshi(){
  return chengshi;
 }
}public class Test{
 public static void main(String args[]){
  Temp t = new Temp("中国","陕西","西安");
  System.out.println(t.Info());
 }
}
主函数那里我可以看懂 就是那个Set那里 我怎么感觉他并没有运行? 

解决方案 »

  1.   

    你并没有调用set方法,set 方法怎么运行呀!只有调用才能运行
      

  2.   

     "\t|- 国家:" + this.GetGuojia() + "\n" + 
    上面这句如何理解
    我怎么老是不理解this
      

  3.   

    this 就是指对象自己,完全可以去掉。
      

  4.   

    this代表本对象
    public void SetChenshi(String chenshi){
      this.chengshi = chengshi;
    }
    this.chengshi 是对象的实例变量chengshi
    右边的chengshi是局部变量,参数
    set方法通过参数chengshi给实例变量this.chengshi赋值
    这里this不能去掉
      

  5.   

     兄弟你的那个set那里是执行了的
    只是你没有测试出来而已 我把我测试给你看看你就知道了啊
    class Temp{
     private String guojia;
     private String shengfen;
     private String chengshi;
     public Temp(){};
     public Temp(String guojia,String shengfen,String chengshi){
      this.guojia = guojia;
      this.shengfen = shengfen;
      this.chengshi = chengshi;
     }
     
     public String Info(){
      return "地址信息:" + "\n" + 
         "\t|- 国家:" + this.GetGuojia() + "\n" + 
         "\t|- 省份:" + this.GetShengfen() + "\n" + 
         "\t|- 城市:" + this.GetChengshi() + "\t";
     }
     public void SetGuojia(String guojia){
      this.guojia = guojia;
     }
     public void SetShengfen(String shengfen){
      this.shengfen = shengfen;
     }
     public void SetChenshi(String chengshi){
      this.chengshi = chengshi;
     }
     public String GetGuojia(){
      return guojia;
     }
     public String GetShengfen(){
      return shengfen;
     }
     public String GetChengshi(){
      return chengshi;
     }
    }public class LoginFrm{
     public static void main(String args[]){
      Temp t = new Temp("中国","陕西","西安");
      t.SetGuojia("china");//测试
      t.SetShengfen("sichuan");//测试
      t.SetChenshi("chengdu");//测试
      System.out.println(t.Info());
     }
    }你把这个测试删除和不删除对比一下 我觉得你应该明白了
      

  6.   

    1楼正解。
    你把3个set方法去掉,照样可以运行。
      

  7.   

     SetGuojia() SetShengfen SetChenshi 这些都没用调用,所以也没有执行。  main()函数里只执行了  构造函数  Temp(String guojia,String shengfen,String chengshi)  只有main函数是不需要调用的。而其他所有的java函数,都需要被调用,才会执行。
     而不会平白无故地被执行。
      

  8.   

    老大 setXX()方法是用来封装用的啊 要不你咋修改private成员啊 还有方法名首写字母要小写 没看过全大写的!!!