Chinaunix首页 | 论坛 | 博客
  • 博客访问: 471140
  • 博文数量: 153
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1575
  • 用 户 组: 普通用户
  • 注册时间: 2016-12-20 17:02
文章分类

全部博文(153)

文章存档

2017年(111)

2016年(42)

我的朋友

分类: Java

2017-06-20 17:22:40

这几天看到类在继承时会用到thissuper,这里就做了一点总结,与各位共同交流,有错误请各位指正~

this

this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

this的用法在java中大体可以分为3种:

1.普通的直接引用

这种就不用讲了,this相当于是指向当前对象本身。

2.形参与成员名字重名,用this来区分:

class Person { private int age = 10; public Person(){

运行结果:

初始化年龄:10

Harry's age is 12

可以看到,这里age是GetAge成员方法的形参,this.age是Person类的成员变量。

如果你想学习Java可以来这个群,首先是二二零,中间是一四二,最后是九零六,里面有大量的学习资料可以下载。

3.引用构造函数

这个和super放在一起讲,见下面。

super

super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

super也有三种用法:

1.普通的直接引用

与this类似,super相当于是指向当前对象的父类,这样就可以用super.xxx来引用父类的成员。

2.子类中的成员变量或方法与父类中的成员变量或方法同名

class Country { String name; void value() {

运行结果:

Shanghai

China

可以看到,这里既调用了父类的方法,也调用了父类的变量。若不调用父类方法value(),只调用父类变量name的话,则父类name值为默认值null。

3.引用构造函数

super(参数):调用父类中的某一个构造函数(应该为构造函数中的第一条语句)。

this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。

class Person {

运行结果:

父类·无参数构造方法: A Person.

子类·调用父类”无参数构造方法“: A chinese coder.

父类·含一个参数的构造方法: A person's name is codersai

子类·调用父类”含一个参数的构造方法“: his name is codersai

父类·含一个参数的构造方法: A person's name is codersai

子类·调用父类”含一个参数的构造方法“: his name is codersai

子类:调用子类具有相同形参的构造方法:his age is 18

从本例可以看到,可以用super和this分别调用父类的构造方法和本类中其他形式的构造方法。

例子中Chinese类第三种构造方法调用的是本类中第二种构造方法,而第二种构造方法是调用父类的,因此也要先调用父类的构造方法,再调用本类中第二种,最后是重写第三种构造方法。


阅读(3604) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~