A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈浩通 中级黑马   /  2015-3-22 20:38  /  1801 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class Teacher
{
    private String title;
    private String name ;
    private int age ;

    Teacher (String title)
   {
       System.out.println(name);
       this(name,age,title);
    }

    Teacher (String name, int age, String title)
   {
       System.out.println("OK");
    }

}


class Test
{
    public static void main (String[] args)
   {
      Teacher teacher1 = new Teacher("John");
      Teacher teacher2 = new Teacher("Mike",25,"TA");
    }

}
总是运行不出来,也不知道哪错了,还望大牛指点迷津啊


10 个回复

倒序浏览
好乱的感觉。。。。参数名感觉不对应。。。创建第一个对象的时候,如果传的参数是title的话,打印的却是name属性。最重要的是this(name,age,title);这行代码一定要放在构造函数的第一行。我把代码改了,不知道是不是你原本要实现的
  1. class Teacher
  2. {
  3.     private String title;
  4.     private String name ;
  5.     private int age ;

  6.     Teacher (String name)
  7.    {          
  8.      this.name=name;
  9.        System.out.println(name);
  10.       
  11.     }
  12.     Teacher (String name, int age, String title)
  13.    {
  14.            this(name);
  15.            this.title=title;
  16.            this.age=age;          
  17.            System.out.println(age);
  18.            System.out.println(title);
  19.        System.out.println("OK");
  20.     }
  21. }

  22. class Test
  23. {
  24.     public static void main (String[] args)
  25.    {
  26.       Teacher teacher1 = new Teacher("John");
  27.       Teacher teacher2 = new Teacher("Mike",25,"TA");
  28.     }

  29. }
复制代码
回复 使用道具 举报
this()和super()调用一定要放在第一行才行的!你下面的this(name,age.title);是该构造函数的第二行...
  1. Teacher (String title)
  2.    {
  3.        System.out.println(name);
  4.        this(name,age,title);
  5.     }
复制代码
回复 使用道具 举报
问题在于你没有关于形参和实参,构造函数 Teacher (String title)里的title是形参,把他改成任意的字符串,要想把成员变量传进去就用this.title=title;后面的构造函数的道理也是一样的。
回复 使用道具 举报
打错了好多字,问题在于你没有区分形参和实参,构造函数 Teacher (String title)里的title是形参,你把他改成任意的字符串都可以,要想把成员变量传进去就用this.title=title;后面的构造函数的道理也是一样的。
回复 使用道具 举报
学习了,赞一个
回复 使用道具 举报
学习来啦,顶一个!
回复 使用道具 举报
wenke 中级黑马 2015-3-23 10:34:40
8#
赞一个  代码写不少
回复 使用道具 举报
关山明月 发表于 2015-3-22 21:28
好乱的感觉。。。。参数名感觉不对应。。。创建第一个对象的时候,如果传的参数是title的话,打印的却是nam ...

我用记事本粘贴的,看的比较乱
回复 使用道具 举报
赞一个   
回复 使用道具 举报
赋值方式就没写,this要在构造方法的第一行
  1. package String7;

  2. class Teacher
  3. {
  4.     private String title;
  5.     private String name ;
  6.     private int age ;

  7.     Teacher (String title)
  8.    {
  9.             this.title = title;        //没有赋值,要写在第一行
  10.        System.out.println(title);
  11.       
  12.     }

  13.     Teacher (String name, int age, String title)
  14.    {
  15.             this.title =title; //三个都没有赋值
  16.             this.age = age;
  17.             this.name=name;
  18.        System.out.println("OK");
  19.     }

  20.    
  21. }


  22. class Test
  23. {
  24.     public static void main (String[] args)
  25.    {
  26.       Teacher teacher1 = new Teacher("John");
  27.       Teacher teacher2 = new Teacher("Mike",25,"TA");
  28.     }

  29. }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马