黑马程序员技术交流社区

标题: 求解return,this,super三个关键字的具体用法 [打印本页]

作者: 嘿~~    时间: 2014-3-16 15:30
标题: 求解return,this,super三个关键字的具体用法
本帖最后由 嘿~~ 于 2014-3-16 16:38 编辑

如题,最好是给出一个程序加以注释来详细说明,谢谢了
作者: chen20134    时间: 2014-3-16 15:49

  1. class TT {
  2.     public TT() {
  3.         System.out.print("Hi!");
  4.     }
  5.     public TT(String s) {
  6.         this();                     //引用构造方法TT()
  7.         System.out.print("I am "+s);
  8.     }
  9. }

  10. public class Test11 extends TT {
  11.     public Test11() {
  12.         this("I am Jack.");        //引用父类构造方法TT(String s)
  13.     }
  14.     public Test11(String s) {
  15.         super(s);                  //调用父类构造方法TT(String s)
  16.         System.out.print("How are you?");
  17.     }
  18.     public static void main(String[] args) {
  19.         Test11 t = new Test11("Tom.");
  20.     }
  21. }
复制代码

1、this
this代表了当前对象的一个引用,可以理解为对象的另一个名字。
this关键字的适用场合(有3种):
(1)访问当前对象的数据成员时,使用形式为:this.数据成员。
(2)访问当前对象的成员方法时,使用形式为:this.成员方法(参数)。
(3)在重载构造方法中,引用同类的其他构造方法时,使用形式为:this(参数)。
2、super
super代表当前对象的直接父类对象,是当前对象之直接父类对象的引用。
super关键的使用场合(也有3种):
(1)访问直接父类中被隐藏的数据成员时,使用形式为:super.数据成员。
(2)访问直接父类中被覆盖的成员方法时,使用形式为:super.成员方法(参数)。
(3)访问(调用)直接父类的构造方法时,使用形式为:super(参数)。
3、return:
一般的就是用在有反回值的方法中,用来返回方法指定类型的值,同时结束方法执行;也可以用在返回值为void的方法中,用来终止方法运行;

作者: 张贺    时间: 2014-3-16 15:59
  1. public class MyTest
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 Student stu=new Student("Zhang",25,121);
  6.                 //调用stu的Info方法
  7.                 stu.Info();
  8.                 //获取方法返回值
  9.                 String info=stu.toString();
  10.                 System.out.println(info);
  11.         }
  12. }

  13. class Person
  14. {
  15.         public String name;
  16.         public int age;
  17.         //无参构造函数
  18.         public Person()
  19.         {       
  20.                 System.out.println("父类的无参构造器");
  21.         }
  22.         public void Info()
  23.         {
  24.                 System.out.println("每个人的信息都不同");
  25.         }
  26. }
  27. class Student extends Person
  28. {
  29.         public int number;
  30.         public Student(String name,int age,int number)
  31.         {
  32.                 //super用法一:调用父类的构造函数,可以是有参,无参
  33.                 super();
  34.                 //this用法一:调用类实例成员,二:调用自己的构造器!
  35.                 this.name=name;
  36.                 this.age=age;
  37.                 this.number=number;
  38.         }
  39.         public void Info()
  40.         {
  41.                 //super用法二:调用父类中的方法(主要是被重写的方法)
  42.                 super.Info();
  43.                 System.out.println("我是一名学生");
  44.         }
  45.         public String toString()
  46.         {
  47.                 //return的主要用法是返回方法的返回值
  48.                 return "Number:"+this.number+",Name:"+this.name+",Age:"+this.age;
  49.         }
  50. }
复制代码

作者: 嘿~~    时间: 2014-3-16 16:38
谢谢,太详细了,我要自己运行一下,仔细想想




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2