javathisstatic
⑴ java中static与this区别及使用
static:静态修饰符
static表示“全局”或者“静态”的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念。
this:代表当前的对象
this关键字主要有三个应用:
(1)this调用本类中的属性,也就是类中的成员变量;
(2)this调用本类中的其他方法;
(3)this调用本类中的其他构造方法,调用时要放在构造方法的首行。
⑵ Java: this 不能用于static 方法的详细原因
因为被static修饰的函数,在程序被初始化的时候已经加载进内存了,这是为了以后可以直接由类来调用,而this关键字写在static函数内,指代的是此class的实例化对象
由于static方法初始化后会放在全局数据区,this代表的变量还没有被实例化,此时编译不通过的
⑶ java中this为什么不能在static方法中使用呢
static的目的是使方法或属性独立于类的实例,使用类去访问,而不是实例(但实例也可以访问),所以他修饰的方法或属性也叫全局方法或属性。
而像super或是this,他们都是相对与某个对象而言的,跟具体的一个对象相关联,而static是相对于类而言的,所以不能在static里用this或是super。
一楼的兄台说错了,就算你加上static也不可以,不信你到main方法里用this调用个静态方法试试看~~
⑷ java中为什么在static中不能使用this关键字
在方法中定义使用的this关键字,它的值是当前对象的引用.也就是说你只能用它来调用属于当前对象的方法或者使用this处理方法中成员变量和局部变量重名的情况.
而且,更为重要的是this和super都无法出现在static 修饰的方法中,static 修饰的方法是属于类的,该方法的调用者可能是一个类,而不是对象.如果使用的是类来调用而不是对象,则 this就无法指向合适的对象.所以static 修饰的方法中不能使用this.
⑸ java语言中this和static怎么用呢
this指的是当前对象的指针
static表示静态,静态的东西存放的位置与普通变量不一样,生存期,有效期,作用域都不一样
⑹ Java static方法里为什么不能使用this关键字
this表示当前类的对象,由static修饰的方法是由类直接调用,不需要创建对象,所以在static里不能用this.
⑺ 我不知道java中this与static有什么冲突
你是不是哪里理解错了,this一般就是作为某个对象来引用的,而static是静态的,创建时机不一样的,所以static的反而不能用this引用才对啊。
再说你这个方法,这个this引用的不是你的i,是一个Leaf对象,这个i是这个对象的成员属性,你的测试中就是调用了两次increament方法,修改了这个对象的成员属性值
⑻ Java static方法里为什么不能使用this关键字
java中的static是类区域,换句话说就是所有该类的所有实例共享的区域,而this指的是当前的类实例索引。在类区域中是无法确定某个类实例的。
eg。
class A
{
private static Stirng Static = "123";
}
这个字符串Static所有A的实例都可以访问到。
反过来,
class A
{
public static void fun()
{
this // 这里不能使用 因为 static区域内不能确定是某个特定的A的实例
}
}