new一个类为什么要加上this 还是不明白new一个类出来的时候为什么要加上this,必须的加上吗?加上别的参数不可以吗?向大家求教:……TextView tv = new TextView(this)……Androidthisnew 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 this代表当前对象,要看你的TextView(?)构造方法里面的类型,比如说TextView(Panel p)这个构造方法,this就代表Panel或其子类的类型参数 构建TextView类时需要一个当前类对象呗!无非是一个构造函数嘛! TextView tv = new TextView(this)这段代码在哪个类中,this就指向哪个对象,把这个对象传给TextView构造函数,作为构造函数的参数 new 的时候关键看构造方法的参数 this代表的是当前对象,换成具体的对象就可以了 new TextView(this)中的this是指TextView构造器需要接受一个参数,而当前对象正好和这个参数类型一样,所以就可以把当前对象传进去,这个和new TextView("param")是一样的. TextView类正好有一个构造方法,该方法有一个参数,该参数的类型与你当前这个this的类型相同。 this对象,并不一定就是当前的对象 .this要看你是用在什么的环境中,也就是上下文中.通常this指代的是调用它的对象. this指的是你当前对象,其中这个对象是就近原则,谁离他最近就是指的那个对象,如果你不想用这个this你可以将你要传的对象放进去 好好看书,好好读代码。this我刚开始学的时候也是不太明白。 TextView类正好有一个构造方法,该方法有一个参数,该参数的类型与你当前这个this的类型相同。 实际上你问得这个问题是为什么构造时需要加 this,这个问题上面的网友已经回答了我是想说一下 this 这个关键字在Java中,调用一个方法一般需要通过对象的引用,即 a.function(b);这里的调用看起来只是传入的一个参数b,实际上还有一个隐式参数被传入,这就是这个对象a的引用这个隐式参数如何在方法内使用呢?那就是使用this这个关键字。由此也可以理解为什么类的静态方法中不能使用this关键字,就是因为调用一个类的静态方法的时候,根本就没有传入这个隐式参数。 TextView tv = new TextView(this)可以看下TextView这个类的构造方法,构造方法需要一个参数。构造函数中可定需要一个当前的类对象作为参数,所以你需要一个this的参数。或者你可以这样试下:package com.test;import java.util.ArrayList;import java.util.List;import java.util.Random;public class TestUtil { /** * @param args */ public static void main(String[] args) { } public void run() { /* * 用this和实例化一个当前类的对象作为参数,是一样的 */ // 用法1 ThreadDemo ThreadDemo = new ThreadDemo(this); // 用法2 TestUtil testUtil = new TestUtil(); ThreadDemo ThreadDemo1 = new ThreadDemo(testUtil); }}package com.test;public class ThreadDemo implements Runnable { private String num; ThreadDemo(String num) { this.num = num; } ThreadDemo(Object aa) { } public void run() { // TODO Auto-generated method stub System.out.println(num); }} java初学者 Junit如何测试返回对象无法在测试类里构建的方法 请高手帮忙 内部类调试问题 eclipse3.3中如何屏蔽视图最大化时特效? 请各位给个详细的解答方法 新手求助 有没有像VB那样自由拖动控件的开发环境?? 黄文奇 jdbc向数据库里插数据为什么commit了数据库里还是没有数据 【源码分享】Java实现蜘蛛纸牌 java 成员变量在方法中的值
无非是一个构造函数嘛!
这段代码在哪个类中,this就指向哪个对象,把这个对象传给TextView构造函数,作为构造函数的参数
this要看你是用在什么的环境中,也就是上下文中.
通常this指代的是调用它的对象.
这里的调用看起来只是传入的一个参数b,实际上还有一个隐式参数被传入,这就是这个对象a的引用
这个隐式参数如何在方法内使用呢?那就是使用this这个关键字。由此也可以理解为什么类的静态方法中不能使用this关键字,就是因为调用一个类的静态方法的时候,根本就没有传入这个隐式参数。
构造函数中可定需要一个当前的类对象作为参数,所以你需要一个this的参数。或者你可以这样试下:
package com.test;import java.util.ArrayList;
import java.util.List;
import java.util.Random;public class TestUtil {
/**
* @param args
*/
public static void main(String[] args) {
} public void run() {
/*
* 用this和实例化一个当前类的对象作为参数,是一样的
*/
// 用法1
ThreadDemo ThreadDemo = new ThreadDemo(this);
// 用法2
TestUtil testUtil = new TestUtil();
ThreadDemo ThreadDemo1 = new ThreadDemo(testUtil);
}
}package com.test;public class ThreadDemo implements Runnable { private String num;
ThreadDemo(String num) {
this.num = num;
}
ThreadDemo(Object aa) {
} public void run() {
// TODO Auto-generated method stub
System.out.println(num);
}}