java中this关键字含义,分析选项中关于java中this关键字
如何解决写爬虫IP受阻的问题?立即使用。
相关:《Java视频教程》
1.当一个成员变量和一个局部变量有相同的名字时,当这被用在一个方法中时,它意味着该方法所在的类中的成员变量。(这是当前对象本身)
公共类Hello {
String s= Hello
公共Hello(字符串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);
}
公共静态void main(String[] args) {
Hello x=新Hello(HelloWorld!);
system . out . println( s= x . s);//验证成员变量值的变化}
}结果是:
s=HelloWorld!
1 - this.s=你好
2 - this.s=HelloWorld!
s=HelloWorld!在这个例子中,在构造函数Hello中,参数S与类Hello的成员变量S同名,所以如果直接对S进行操作,就会对参数S进行操作.如果要对Hello类的成员变量s进行操作,应该用这个来引用。运行结果的第一行是直接打印构造函数中传递的参数S的结果;第二行是成员变量S的打印;第三行是在打印之前将传递的参数S值赋给成员变量S,所以结果是HelloWorld!第四行是直接打印类中成员变量值的主函数,也可以验证成员变量值的变化。
2.当将自己作为参数传递时,也可以使用这个。(这是要传递的当前参数)
A级
公共A() {
新B(这个)。print();//调用b的方法。
}
公共作废打印(){
system . out . println( hello aa from A!);
}
}
B类{
A a
公共B(A a) {
this.a=a
}
公共作废打印(){
a . print();//调用的方法。
system . out . println( hello ab from B!);
}
}
公共类HelloA {
公共静态void main(String[] args) {
A aaa=新A();
AAA . print();
B bbb=新B(AAA);
BBB . print();
}
}结果是:
来自A的你好!
来自B的HelloAB!
来自A的你好!
来自A的你好!
来自B的HelloAB!在这个例子中,在对象A的构造函数中,new B(this)用于将对象A本身作为参数传递给对象B的构造函数。
3.有时候,我们会使用一些内部类和匿名类,比如事件处理。当在匿名类中使用时,这指的是匿名类或内部类本身。这时如果要使用外部类的方法和变量,就要加上外部类的类名。比如:
公共类HelloB {
int I=1;
公共HelloB() {
Thread thread=新线程(){
公共无效运行(){
for(int j=0;j20j ) {
hellob . this . run();//调用外部类的方法
尝试{
睡眠(1000);
} catch(interrupted exception ie){
}
}
}
};//注意这里有一个分号
thread . start();
}
公共无效运行(){
system . out . println( I= I);
我;
}
公共静态void main(String[] args)引发异常{
new HelloB();
}
}在上面的例子中,thread是一个匿名类对象。在其定义中,它的run函数使用外部类的run函数。这时候因为函数同名,直接调用就不行了。这时候有两种方法,一种是改变外部运行函数的名称,但是这种方法对于一个开发中期的应用来说是不可取的。然后,您可以使用此示例中的方法将此引用添加到外部类的类名中,以说明将要调用外部类的方法运行。
4.在构造函数中,可以通过这个调用同一个类中的其他构造函数。比如:
公共类ThisTest {
ThisTest(字符串str) {
system . out . println(str);
}
ThisTest() {
这个(‘这次测试成功了!’);
}
公共静态void main(String[] args) {
ThisTest ThisTest=new ThisTest();
}
}为了更准确地说明这种用法,另一个例子是:
公共类ThisTest {
私人年龄;
私有字符串str
ThisTest(字符串str) {
this.str=str
system . out . println(str);
}
this test(String String,int age) {
这个(str);
this.age=年龄;
System.out.println(年龄);
}
公共静态void main(String[] args) {
Thistthistest=newthistest(本次测试成功,25);
}
}结果是:
这个测试是成功的。
25值得注意的是:
1:在构造中调用另一个构造函数时,调用动作必须放在初始位置。
2:不能在除构造函数之外的任何函数中调用构造函数。
3:在一个构造函数中只能调用一个构造函数。
5.这同时传递多个参数。
公共类TestClass {
int x;
int y;
static void show test(test class TC){//实例化对象
system . out . println(TC . x TC . y);
}
void seeit() {
showtest(这个);
}
公共静态void main(String[] args) {
test class p=new test class();
p . x=9;
p.y=10
p . seeit();
}
}结果是:
9代码中的showtest(this ),其中这是将当前实例化的P传递给showtest()方法,它运行。
有关编程的更多信息,请访问:编程入门!以上就是这个关键字在java中的使用方法。更多详情请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。