- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java中各种关键字的作用和区别
姓名:范爽 学号:2014218449
一、this??super??static??abstract?public??private各自的用法
(一)this
1. this是指当前对象自己。
当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:
public class A {
String s = Hello;
public A(String s) {
System.out.println(s = + s);
System.out.println(1 - this.s = + this.s);
this.s = s;
System.out.println(2 - this.s = + this.s);
}
public static void main(String[] args) {
new A(HelloWorld!);
}
}
运行结果如下:
s = HelloWorld!
1 - this.s = Hello
2 - this.s = HelloWorld!
在上述例子中,构造函数A中,参数s与类A的变量s同名,这时如果直接对s进行操作则是对参数s进行操作。若要对类A的变量s进行操作就应该用this进行引用。运行结果的第一行就是直接对参数s进行打???结果;后面两行分别是对对象A的变量s进行操作前后的打印结果。
2. 把this作为参数传递
当把自己作为参数传递给别的对象时,也可以用this。如:
public class A {
public A() {
new B(this).print();
}
public void print() {
System.out.println(Hello from A!);
}
}
public class B {
A a;
public B(A a) {
this.a = a;
}
public void print() {
a.print();
System.out.println(Hello from B!);
}
}
运行结果如下:
Hello from A!
Hello from B!
在上述例子中,对象A的构造函数中,用new B(this)把对象A自己作为参数传递给了对象B的构造函数。
3. 注意匿名类和内部类中的中的this。
有时候,我们会用到一些内部类和匿名类。当在匿名类中用this时,这个this则指的是匿名类或内部类本身。这时如果我们要使用外部类的方法和变量的话,则应该加上外部类的类名。如下面这个例子:
public class A {
int i = 1;
public A() {
Thread thread = new Thread() {
public void run() {
for(;;) {
A.this.run();
try {
sleep(1000);
} catch(InterruptedException ie)
}
}
}
}
thread.start();
}
public void run() {
System.out.println(i = + i);
i++;
}
public static void main(String[] args) throws Exception {
new A();
}
(二)Super
1.???? 子类的构造函数如果要引用super的话,必须把super放在函数的首位.
class Base {
??? Base() {
?????? System.out.println(Base);
??? }
}
public class Checket extends Base {
??? Checket() {
?????? super();
?????? System.out.println(Checket);
??? }
??? public static void main(St
原创力文档


文档评论(0)