java this是对什么的引用(在java中类名.this得到的是什么)
各位老铁们好,相信很多人对java this是对什么的引用都不是特别的了解,因此呢,今天就来为大家分享下关于java this是对什么的引用以及在java中类名.this得到的是什么的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
java中的this语句
//Thinking in java里的内容。。
class This_{
String s="no";
int i= 0;
This_(String s){
this.s= s;//这里的this.s是说s是这个类的变量而不是形参
System.out.print(this.s);}
This_(int i, String s){
this(s);/*这个就是你的问题,这里的this(s)是说把形参s代入上面的那个构造器,构造器的名字和类名是一样的,你仔细观察一下,this是这个类的引用,而这个类的名字和构造器的名字一样。。*/
this.i= i;
System.out.println(""+i);}
}
public class Q9{
public static void main(String[] args){
This_ t= new This_(1,"yes");
This_ h= new This_("Hi");
}
}
/*输出的应该是
yes 1
Hi
*/
/*我可能没说清,看Thinking in java那本书吧,连着构造器那部分一起多看几遍就明白了。。另外 this语句只用在构造器之间而且必须放在第一位这是规定。。*/
在java中类名.this得到的是什么
这个一般在内部类里面用。。类名.this表示那个类名所代表的类的对象。。。
比如class A{
public void method(){
A.this就是表示A的对象。。在这种情况下和this是一样的
}
class B{
void method1(){
A.this还是表示A的对象。。但是这里是在内部类里面。。所以这里的this就是内部类B的对象了。。但是我们经常会在内部类里面调用外部的东西。。所以就用A.this这种方式就行了
}
}
}
java this什么意思
想理解this首先要理解两个概念,类和对象。一个一般的类可以new很多对象,每一个对象都有一个this来指向这个对象本身。类本身是没有this的,因为类本身是一个抽象的概念。要想用类的方法和属性,就必须new一个他的对象,这时会产生一个对应的this,就是this object;或者用静态方法,静态方法可以不用new对象,因为是属于类的方法,所以所有静态方法里是不能出现this的。
比如:
class A{
private int data;
public void setData(int data){
this.data= data;////这个this表示的是这个类new的一个对象,而不是类本身。就是这个类没有new出一个对象之前,是不能调用这个方法的。
}
public int getData(){
return this.data;////
}
public static void print(){
System.out.println("This IS a static functions.");//这是一个静态方法,里面是不允许有this的,因为静态的属性和方法属于类,属于公共的东西,而不专属于某一个对象
}
}
java中this作为参数指什么
java中的this随处可见,用法也多,现在整理有几点:
1. this是指当前对象自己。
当在一个类中要明确指出使用对象自己的的变量或函数时就应该加上this引用。如下面这个例子中:
public class Hello{
String s="Hello";
public Hello(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){
Hello x= new Hello("HelloWorld!");
}
}
运行结果:
s= HelloWorld!
1-> this.s= Hello
2-> this.s= HelloWorld!
在这个例子中,构造函数Hello中,参数s与类Hello的变量s同名,这时如果直接对s进行操作则是对参数s进行操作。若要对类Hello的成员变量s进行操作就应该用this进行引用。运行结果的第一行就是直接对构造函数中传递过来的参数s进行打印结果;第二行是对成员变量s的打印;第三行是先对成员变量s赋传过来的参数s值后再打印,所以结果是HelloWorld!
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的构造函数。
OK,关于java this是对什么的引用和在java中类名.this得到的是什么的内容到此结束了,希望对大家有所帮助。