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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马连家华 中级黑马   /  2012-3-13 11:34  /  2956 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Noword 于 2012-3-13 11:36 编辑

总是混,没头绪,太笨了,都不是复习能解决的了...
谁帮解释下,下面的程序
class Person
{
        String name;
        Person(String name)
        {
                this.name = name;//this是调用这个函数的对象么?
                //那么这句就只有一个作用,就是对象调用Person函数时给对象传个name值么?
        }
        public String getName()
        {
                return name;
        }
}
class Student extends Person
{
        Student (String name)
        {
                super(name);//这句具体怎么调用的..
        }
}
new Student("lisi").getName//这句又是怎么调用的

12 个回复

倒序浏览
你怎么不问1+1为什么等于2啊{:soso_e120:}
回复 使用道具 举报
  1. class Person
  2. {
  3.          String name;
  4.          Person(String name)
  5.          {
  6.                  this.name = name;//this是调用这个函数的对象么?
  7.                  //那么这句就只有一个作用,就是对象调用Person函数时给对象传个name值么?
  8.                                  //this代表当前运行的对象。当创建一个对象的时候就会调用这个构造函数,
  9.                                  //为name赋值;
  10.          }
  11.          public String getName()
  12.          {
  13.                  return name;
  14.          }
  15. }
  16. class Student extends Person
  17. {
  18.          Student (String name)
  19.          {
  20.                  super(name);//这句具体怎么调用的..、
  21.                                  //super代表超类,这句话意思是调用超类(父类)带参数的构造函数;
  22.          }
  23. }
  24. new Student("lisi").getName();//这句又是怎么调用的
  25. //这句是创建一个匿名对象并调用匿名student对象的getName方法。
复制代码

评分

参与人数 1黑马币 +2 收起 理由
黑马连家华 + 2 谢了哦

查看全部评分

回复 使用道具 举报
没必要这么刷分吧{:soso__8683455465457726061_3:}
回复 使用道具 举报
冯林 发表于 2012-3-13 11:41
你怎么不问1+1为什么等于2啊

能不能表打击我,我们刚学1+1的时候有很多人问为什么等于2的
回复 使用道具 举报
class Person
{
        String name;
        Person(String name)
        {
                this.name = name;//this是调用这个函数的对象么?                    this只指哪个对象调用这个函数就指这个对象
                //那么这句就只有一个作用,就是对象调用Person函数时给对象传个name值么?             把name作为参数传入然后赋值给成员变量name 构造函数是初始化作用
        }
        public String getName()
        {
                return name;
        }
}
class Student extends Person
{
        Student (String name)
        {
                super(name);//这句具体怎么调用的..              super()是父类(也就是超类)的构造函数
        }
}
new Student("lisi").getName//这句又是怎么调用的              创建一个Student对象,然后传入"lisi"然后调用getName或者该名字

评分

参与人数 1技术分 +2 收起 理由
职业规划-刘倩老师 + 2 赞一个!

查看全部评分

回复 使用道具 举报
class Person
{
         String name;
         Person(String name)
         {
                 this.name = name;//this是调用这个函数的对象么?
                 //那么这句就只有一个作用,就是对象调用Person函数时给对象传个name值么?
                                 //你意思貌似是对的 但是不能这么说啊 this是这个类的对象 不能说是函数的对象
                 //函数没有对象

         }
         public String getName()
         {
                 return name;
         }
}
class Student extends Person
{
         Student (String name)
         {
                 super(name);//这句具体怎么调用的..
                                 //super是超级的 这里是指父类  
                                 //相当于父类Person的一个对象 这么写会调用父类的构造方法Person(String name)

         }
}
new Student("lisi").getName //这句又是怎么调用的
/*
new Student("lisi").getName//这句又是怎么调用的????
首先这句话写错了,应该是 new Student("lisi").getName();
这个体现的是继承  
虽然你在子类Student中没有明确的定义 但是由于父类中含有
public String getName()
         {
                 return name;
         }
这个方法 所有子类就会继承父类的这个方法

*/

评分

参与人数 2技术分 +2 黑马币 +2 收起 理由
职业规划-刘倩老师 + 2
黑马连家华 + 2 谢谢啦,很详细

查看全部评分

回复 使用道具 举报
蒙武辉 黑马帝 2012-3-13 11:58:37
8#
楼主肯于学习,值得我们学习,想当初我们刚学的时候也不是一样啊?多问问,多想,总有一天会知道的。
回复 使用道具 举报
赵英坤 发表于 2012-3-13 11:49
没必要这么刷分吧

看不懂什么意思...
回复 使用道具 举报
this.name = name;//this是调用这个函数的对象么?  this代表Person类的一个对象  哪个对象调用就代表哪个对象 比如Person p1 = new Person("张三")这时this就指向p1  Person P2 = new Person("李四");这时this就指向p2
                //那么这句就只有一个作用,就是对象调用Person函数时给对象传个name值么?        对象不能调用构造函数 构造函数是对象初始化时自动调用的 用来给对象初始化  这句话的作用是把对象初始化时的值传递给name
super(name);//这句具体怎么调用的..  这是super语句 构造函数间相互调用只能用this,super语句  这句话是把Student对象初始化时的字符串传递给构造函数Student (String name)中的name, 这个name再传递给构造函数Person(String name)中的name,然后再把这个name赋给Person类中的String类型的 name变量

new Student("lisi").getName//这句又是怎么调用的   这句话就是新建了一个Student对象,初始名字是"lisi"(具体调用过程上面已经说过了),然后调用该对象的getName()方法(由于继承的关系,Student对象也得到了父类中的getName()方法)    不知道把你讲晕了没有  希望你能够明白 其实不难的 毕老师视频里讲的很清楚.

评分

参与人数 2技术分 +2 黑马币 +3 收起 理由
职业规划-刘倩老师 + 2
黑马连家华 + 3 嗯,你讲的很详细,谢谢了!

查看全部评分

回复 使用道具 举报
蒙武辉 发表于 2012-3-13 11:58
楼主肯于学习,值得我们学习,想当初我们刚学的时候也不是一样啊?多问问,多想,总有一天会知道的。 ...

其实,这么简单的问题,有点不太敢问...
回复 使用道具 举报
谢谢大家,了解了
回复 使用道具 举报
每次毕老爷在视频里问:"懂了吗?""有问题吗?"什么的,我就想说不懂,很多问题...然后他就自己又说:"哎,都懂..","没问题是吧?!"然后就接着讲....
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马