- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章举例讲解Java编程中this关键字与super关键字的用法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
this 总要有个事物来代表类的当前对象,就像C++中的this指针一样,Java中的this关键字就是代表当前对象的引用。 它有三个主要的作用: 1、在构造方法中调用其他构造方法。 比如有一个Student类,有三个构造函数,某一个构造函数中调用另外构造函数,就要用到this(),而直接使用Student()是不可以的。 2、返回当前对象的引用。 3、区分成员变量名和参数名。 看下面的例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
public
class
Student
{
private
String name;
private
int
age;
private
String college;
public
Student()
{
age =
20
;
}
public
Student(String name)
{
this
();
//can not be call Student,only use this() method.
this
.name = name;
System.out.println(
"this student name is "
+name);
}
public
Student(String name,String college)
{
this
(name);
//C++中可以直接用Student(name)调用其他构造函数
this
.college = college;
System.out.println(
"this student name is "
+name+
" college is "
+college);
}
public
Student upgrade()
{
age++;
return
this
;
}
public
void
print()
{
System.out.println(
"name is: "
+name
+
" age is: "
+age
+
" college is: "
+college);
}
public
static
void
main(String[] args)
{
Student student1 =
new
Student(
"linc"
);
Student student2 =
new
Student(
"linc"
,
"shenyang college"
);
student2.upgrade().print();
}
}
|
迷失在茫茫的对象海洋时,不要忘了用this来找到自我.
super super是this的父辈。从面相对象的角度说,这两个概念是很好理解的。 子类从父类继承过来,父类的protected及以上的属性和方法在子类中是天生就具有的。那么,为什么还要有super这个关键字? 第1、看父类的构造 子类构造时要先调用父类的默认构造函数的,这与C++的构造属性一致。当父类有多个构造函数时,你需要指定调用哪个。这是就需要使用super(arg1,arg2...)。 需要注意的是,在子类的构造函数中调用基类的构造函数时,必须要把super写作最前面,否则报错。 第二,在子类覆盖父类的一些方法中再调用父类的此方法。大家都知道,在子类中覆盖父类的一些方法是面向对象中多态的一种方式,而因为其他种种原因,需要在此方法中调用父类的此方法,用以区分,此时需要使用super来完成.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
public
class
ClassLeader
extends
Student
{
private
String duty;
public
ClassLeader()
{
duty =
"class monitor"
;
}
public
ClassLeader(String duty,String name,String college)
{
super
(name,college);
this
.duty = duty;
}
public
void
print()
{
super
.print();
System.out.println(
"duty is "
+ duty);
}
public
static
void
main(String[] args)
{
ClassLeader leader =
new
ClassLeader(
"life"
,
"linc"
,
"shenyang"
);
leader.print();
}
}
|
将两个类文件放在同一个目录,编译并运行:
1
2
3
|
D:\workspace\Java\project261\super>javac
-d
. *java
D:\workspace\Java\project261\super>java ClassLeader
|
运行结果:
1
2
3
4
|
this student name is linc
this student name is linc college is shenyang
name is: linc age is: 20 college is: shenyang
duty is life
|
看看在其他语言中是怎样来处理的: C#中提供了base关键字来完成super相似的功能,C++直接用基类的名字来调用.
最后此篇关于举例讲解Java编程中this关键字与super关键字的用法的文章就讲到这里了,如果你想了解更多关于举例讲解Java编程中this关键字与super关键字的用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
1、流程控制语句主要有if、ii...else、elseif(有时也可以写成else if)、switch四种。 PHP中语句格式为: if(条件满足) {执行语句} if(条件满足) {执行
目录 DFS初步概念 DFS例题-迷宫游戏 题目描述 输入输出格式 输入输出样例
This question两年前被问到,但它提到的资源要么不是很有帮助(恕我直言),要么链接不再有效。 必须有一些很好的教程才能理解 Phaser .我已经阅读了 javadoc,但我的眼睛呆滞了,因
This question两年前被问到,但它提到的资源要么不是很有帮助(恕我直言),要么链接不再有效。 必须有一些很好的教程才能理解 Phaser .我已经阅读了 javadoc,但我的眼睛呆滞了,因
这个正则出自这个网站 http://www.regexlab.com/zh/regref.htm 正向预搜索:"(?=xxxxx)","(?!xxxxx)"
chr(9)、chr(10)、chr(13)、chr(32)、chr(34) 所有关于 ASCII码的表格:[url]http://www.asciitable.com/[/url] chr(13)
我是一名优秀的程序员,十分优秀!