当前位置:编程学习 > JAVA >>

this引用

java中实例方法访问非静态成员是通过默认的this引用实现,那么实例方法访问静态成员是通过什么实现呢?
非静态内部类中的实例方法又是如何访问外部类的静态属性呢???
--------------------编程问答-------------------- 静态成员函数和属性的存储位置与普通的成员函数、属性是不一样的,所以不需要引用this。但为了与其他类的成员函数名冲突,使用的时候是className::functionName。不知道是不是你想要的解释。 --------------------编程问答-------------------- 这意思么?
public class Test2 {
static String str="1";
String str1="2";

public Test2(String str,String str1) {
System.out.println(Test2.str);
System.out.println(this.str1);
System.out.println(str);
System.out.println(str1);
}
public static void main(String[] args) {
Test2 test2 = new Test2("11","22");
test2.new Test3();
}
class Test3{
public Test3() {
System.out.println(str);
System.out.println(str1);
}
}
}
--------------------编程问答-------------------- 对于一个静态成员是不是存在一个与他类相关的类引用呢? --------------------编程问答-------------------- 在同一个类中(即在class A{}两个{}之间)可以直接使用静态成员变量,在别的类中用 类名.静态成员变量名 --------------------编程问答-------------------- 楼主 非静态内部类有 成员内部类,局部内部类,还有匿名内部类!

对于成员内部类,可以访问外部类的静态成员和非静态成员,你直接在内部类里面调用就可以吧?

我吃菜鸟··错了 还请大家纠正·· --------------------编程问答--------------------
引用 2 楼 AA5279AA 的回复:
这意思么?
public class Test2 {
static String str="1";
String str1="2";

public Test2(String str,String str1) {
System.out.println(Test2.str);
System.out.println(this.str1);
System.out.println(str);
System.out.println(str1);
}
public static void main(String[] args) {
Test2 test2 = new Test2("11","22");
test2.new Test3();
}
class Test3{
public Test3() {
System.out.println(str);
System.out.println(str1);
}
}
}


引用 2 楼 AA5279AA 的回复:
这意思么?
public class Test2 {
static String str="1";
String str1="2";

public Test2(String str,String str1) {
System.out.println(Test2.str);
System.out.println(this.str1);
System.out.println(str);
System.out.println(str1);
}
public static void main(String[] args) {
Test2 test2 = new Test2("11","22");
test2.new Test3();
}
class Test3{
public Test3() {
System.out.println(str);
System.out.println(str1);
}
}
}
前辈··我想问下 内部类 是放在那个区域的啊 ?是在方法区 还是堆里面··还是栈··· --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 首先说明白静态域是所有实例共享的,访问机制就是通过类名.静态变量.
例如Out为外部类,Inner为内部类,

引用 6 楼 a5534789 的回复:
Quote: 引用 2 楼 AA5279AA 的回复:

这意思么?
public class Test2 {
static String str="1";
String str1="2";

public Test2(String str,String str1) {
System.out.println(Test2.str);
System.out.println(this.str1);
System.out.println(str);
System.out.println(str1);
}
public static void main(String[] args) {
Test2 test2 = new Test2("11","22");
test2.new Test3();
}
class Test3{
public Test3() {
System.out.println(str);
System.out.println(str1);
}
}
}


引用 2 楼 AA5279AA 的回复:
这意思么?
public class Test2 {
static String str="1";
String str1="2";

public Test2(String str,String str1) {
System.out.println(Test2.str);
System.out.println(this.str1);
System.out.println(str);
System.out.println(str1);
}
public static void main(String[] args) {
Test2 test2 = new Test2("11","22");
test2.new Test3();
}
class Test3{
public Test3() {
System.out.println(str);
System.out.println(str1);
}
}
}
前辈··我想问下 内部类 是放在那个区域的啊 ?是在方法区 还是堆里面··还是栈···

jvm主存中还有一个名义上的方法区:用于存放类相关信息。如静态成员,常量池,方法体等;实例对象存放于堆区。这些对于内部类和外部类都是一样的。 --------------------编程问答-------------------- http://blog.csdn.net/itmyhome1990/article/details/7791174 --------------------编程问答-------------------- 静态成员就直接用类引用,某个类的实例当然有其类的应用,直接类引用就行了。类内部,可以省略前面的类名称,而实例内部应用可以省略this,所以一般用起来你看上去都一样。
补充:Java ,  Java SE
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,