a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 106|回复: 0

[专业语言] java认证之Javathis、super的用法(2)

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
java认证之Javathis、super的用法(2), q* a* u0 ^2 G7 r- l
在构造函数中$ U& o4 n, K1 K8 n  Y1 M0 e1 y$ l
构造函数是一种特殊的方法,在对象初始化的时候自动调用。在构造函数中,this和super也有上面说的种种使用方式,并且它还有特殊的地方,请看下面的例子:7 G9 n+ C  c5 u
class Person{7 A* `1 Q& N5 c; H7 ~3 X( p% k
public static void prt(String s){
+ M/ g: w( U% h' M$ x# wSystem.out.println(s);7 T0 z* h7 E: l) R* n
}
6 M& |* ^% \0 s6 w) u  NPerson(){. ^9 z; S- C4 X! b# z+ I! t
prt(“A Person.”);
% Z/ b- O/ T' f. y5 j/ Q}
% ~- C, W- E' o/ p3 M  m$ M# }  hPerson(String name){1 M7 O+ D1 n7 i! x" }6 B0 l0 S
prt(“A person name is:”+name);$ r" d, R) a8 |+ p$ a
}5 h6 h' U5 [2 [. u5 [5 c' C5 R/ S
}  J+ [. J3 f% N6 u
public class Chinese extends Person{- r. K" m  `& O) v7 E6 u" v
Chinese(){
* [2 G6 j+ O2 Q: M5 Zsuper(); //调用父类构造函数(1)
$ }% j* `9 M% l' H( L5 P# |. i$ {3 |; ?; Kprt(“A chinese.”);//(4)
7 `4 N: }& _' O' Z/ G2 I# U}3 O/ \- i- L0 k6 Y! q; u7 T0 a1 j$ g
Chinese(String name){( a% l( e) e) k. d; @
super(name);//调用父类具有相同形参的构造函数(2)% a6 `' N& z6 T- |9 S
prt(“his name is:”+name);
5 x/ S, ]3 k. C! B; ?# w}
' |) S' O$ d0 U, ~% O/ tChinese(String name,int age){
3 U) r* L2 A0 U' j( y8 Dthis(name);//调用当前具有相同形参的构造函数(3)# {' [0 a2 s+ }1 v
prt(“his age is:”+age);
0 J) D, g/ D6 q}. r. E# k# P( X' s( p0 v
public static void main(String[] args){
1 `7 ?: r5 K# a, X$ D% dChinese cn=new Chinese();
1 \1 p& _3 e( f; ocn=new Chinese(“kevin”);6 a9 @; Q* N0 k0 H8 W/ v5 X& M; [
cn=new Chinese(“kevin”,22);5 @/ C, p) T, I$ v+ ?
}
' d+ n7 Q6 Q  }1 ^' h( T}8 A, C+ j: K: q' d+ E9 U. z
在这段程序中,this和super不再是像以前那样用“。”连接一个方法或成员,而是直接在其后跟上适当的参数,因此它的意义也就有了变化。 super后加参数的是用来调用父类中具有相同形式的构造函数,如1和2处。this后加参数则调用的是当前具有相同参数的构造函数,如3处。当然,在 Chinese的各个重载构造函数中,this和super在一般方法中的各种用法也仍可使用,比如4处,你可以将它替换为“this.prt”(因为它 继承了父类中的那个方法)或者是“super.prt”(因为它是父类中的方法且可被子类访问),它照样可以正确运行。但这样似乎就有点画蛇添足的味道 了。
/ A2 N* w' u5 F6 H1 _9 r2 {1 |) m最后,写了这么多,如果你能对“this通常指代当前对象,super通常指代父类”这句话牢记在心,那么本篇便达到了目的,其它的你自会在以后的编程实践当中慢慢体会、掌握。另外关于本篇中提到的继承,请参阅相关Java教程。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-13 04:04 , Processed in 0.219114 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表