导航:首页 > 编程语言 > javathisclass

javathisclass

发布时间:2023-01-16 16:12:49

java中this的用法

一、指自己所在的对象。
比如在一个方法中,调用其他对象的变量或方法时,可以使用那个对象的对象名,比如aa.abc();
而调用自己所在对象的方法或变量时,不知道别人给起了什么名,所以直接用this.abc()就可以了。
二、看一个小例子中“this”的用法!

/**

* @author feng-neusoft

*

* 本示例为了说明this的三种用法!

*/

package test;

public class ThisTest {

private int i=0;

//第一个构造器:有一个int型形参

ThisTest(int i){

this.i=i+1;//此时this表示引用成员变量i,而非函数参数i

System.out.println("Int constructor i——this.i: "+i+"——"+this.i);

System.out.println("i-1:"+(i-1)+"this.i+1:"+(this.i+1));

//从两个输出结果充分证明了i和this.i是不一样的!

}

// 第二个构造器:有一个String型形参

ThisTest(String s){

System.out.println("String constructor: "+s);

}

// 第三个构造器:有一个int型形参和一个String型形参

ThisTest(int i,String s){

this(s);//this调用第二个构造器

//this(i);

/*此处不能用,因为其他任何方法都不能调用构造器,只有构造方法能调用他。

但是必须注意:就算是构造方法调用构造器,也必须为于其第一行,构造方法也只能调

用一个且仅一次构造器!*/

this.i=i++;//this以引用该类的成员变量

System.out.println("Int constructor: "+i+"/n"+"String constructor: "+s);

}

public ThisTest increment(){

this.i++;

return this;//返回的是当前的对象,该对象属于(ThisTest)

}

public static void main(String[] args){

ThisTest tt0=new ThisTest(10);

ThisTest tt1=new ThisTest("ok");

ThisTest tt2=new ThisTest(20,"ok again!");

System.out.println(tt0.increment().increment().increment().i);

//tt0.increment()返回一个在tt0基础上i++的ThisTest对象,

//接着又返回在上面返回的对象基础上i++的ThisTest对象!

}

}

运行结果:

Int constructor i——this.i: 10——11

String constructor: ok

String constructor: ok again!

Int constructor: 21

String constructor: ok again!

14

细节问题注释已经写的比较清楚了,总结一下,其实this主要要三种用法:

1、表示对当前对象的引用!

2、表示用类的成员变量,而非函数参数,注意在函数参数和成员变量同名是进行区分!其实这是第一种用法的特例,比较常用,所以那出来强调一下。

3、用于在构造方法中引用满足指定参数类型的构造器(其实也就是构造方法)。但是这里必须非常注意:只能引用一个构造方法且必须位于开始!

还有就是注意:this不能用在static方法中!所以甚至有人给static方法的定义就是:没有this的方法!虽然夸张,但是却充分说明this不能在static方法中使用!

❷ Java里的this问题

this只Student3这个对象。

public Student3(String name,int age,int classNum){
this.name=name;
this.age=age;
this.classNum=classNum;
}

这里面因为有两个name,为了区分,this.name就是Student3的一个属性,而这个构造方法里的name是传过来的name。

可以这样去理解:
public Student3(String name1,int age1,int classNum1){
//这样就不存在一个name对应参数列表的值和类的属性值,就不用 this指定了。在这里推荐写成原文的形式,用this代表Student3这个类,当然也可以写成Student3.name = name1
name=name1;
age=age1;
classNum=classNum1;
}
当调用new Student3("zhangsan", 10, 1);时,会把Student的name属性,age属性,classNum属性赋成相应值。

❸ 在java中类名.this得到的是什么

你这个问题应该是问在3g平台下面把,那么得到的是上下文对象-context。在j2se得到是当前类的一个对象

❹ 关于JAVA中this关键字的用法问题

你要知道a1对象里面的name是a1,a2对象里面的name是a2,
A a1=new A("a1"); 生成一个a1对象的同时调用构造方法name=a1
a1.func2(); 调用a1对象里面的func2方法,当前对象为a1
A a2=new A("a2"); 生成一个a2对象的同时调用构造方法name=a2
this.func1(); this表示当前对象,this.func1();也就是当前对象的func1方法。就是a1的func1方法。输出的当然func1 of a1 is calling
a2.func1(); 指明为a2的func1()
输出的当然func1 of a2 is calling

❺ Java:关于Java中的this,这里为什么加不加都一样呢

this是指的对象本身,通过this可以调用本对象拥有的所有方法和属性,当然不加this也可版以调用。

一般用this的情权况:

  1. 当局部变量与成员变量相同名时,例如 this,x = x;this.x 是个成员变量,而x是个局部变量

  2. 在myeclipse下用this可以提示后面的方法或者成员变量

  3. 在内部类或匿名内部类中使用this来指向内部类本身

  4. 将类本省作为参数传递

❻ java中的this语句

java中this有两种用法:
1、代表当前类
public class Dog{
private String name;
private float age;
public setName(String name){
this.name = name;
}
.......
}
这里的this就代表的当前的这个Dog类。this.name可以理解为dog.name,只是理解,不是等于。
2、在构造函数中的使用
public class Dog{
private String name;
private int age;
//有一个参数的构造函数
public Dog(String name){
this.name = name;
}
public Dog(String name,int age){
this.name = name;
this.age = age;
}
//这个无参构造方法里调用的有两个参数的构造方法,这个也就是this的第二种用法了!
public Dog(){
this("nihao",20);
}
}

❼ 关于java this.getClass();

Java的每个类都带有一抄个运行时袭类对象,该Class对象中保存了创建对象所需的所有信息。
可以用.class返回此 Object 的运行时类Class对象,也可以用getClass()获得。
获得此对象后可以利用此Class对象的一些反射特性进行操作,
例如:
this.getClass().newInstance(); //用缺省构造函数创建一个该类的对象
this.getClass().getInterfaces(); //获得此类实现的接口信息
this.getClass().getMethods();//获得此类实现的所有公有方法

Class.forName(" ... JDBC driver class name...."); // Class类的静态方法forName, 向DiverManager注册这个JDBC driver类

❽ java的.class和.this是什么什么是封闭类为什么只有封闭类才可以使用.this

你可以这样理解,.this是指当前运行时实例化的这个特定对象,因为只有封装的类才能实例化出对象,所以是有封装类才能使用.this;.class是运行时这个实例化对象的类信息,用于反射

❾ 谁能系统的讲解一下JAVA里this的性质和用法

this关键字是对一个对象的默认引用。this关键字用来表示以后调用当前方法的对象的引版用。
Ø 使用this调用权成员变量,解决成员变量和局部变量的同名冲突
Ø 使用this调用成员方法
Ø 使用this调用重载的构造方法,只能在构造方法中使用,必须是构造方法的第一条语句

❿ Java 单例模式同步锁this与Class的区别

synchronized(this) 表示的是所有线程需要排队获取当前类的实例的锁;而 synchronized(xxx.class) 表示的是所有线程内需要排队获容取当前类的锁;区别就在于 this 是一个实例,而 xxx.class 是一个整个的 class 信息。

阅读全文

与javathisclass相关的资料

热点内容
templatewebjs下载 浏览:774
note3应用程序未安装 浏览:714
dos看图工具 浏览:15
微信直接加为好友 浏览:467
可以用微信传送的文件app 浏览:294
pdf文件解析乱码 浏览:479
光照无关图代码 浏览:688
Linux读写文件前八位 浏览:597
word如何绘制饼状图 浏览:172
w7系统搜索文件夹 浏览:618
java线程变量 浏览:854
苹果电脑word是只读文件 浏览:691
ps5国行备份文件大小 浏览:754
linux恢复删除文件命令 浏览:805
win10家庭版打不开qq文件 浏览:794
女生来例假有哪个app比较好 浏览:66
调用后台接口为什么不显示数据 浏览:363
js判断重复 浏览:422
联通如何切换到网络电视 浏览:191
学编程的优势哪里靠谱 浏览:939

友情链接