public class TrainingOfThis {
String color;
public TrainingOfThis(String str)
{
this.color=str;
}
...
}
这样用即正确,但是
public class TrainingOfThis {
String color;
public TrainingOfThis(String str)
{
TrainingOfThis.color=str;
}
...
}
就会报错“不能非静态字段进行静态引用”?
字段静态非静态都是什么概念?
新手请教“java中this的用法
答案:3 悬赏:50 手机版
解决时间 2021-02-22 23:55
- 提问者网友:欲劫无渡
- 2021-02-22 18:00
最佳答案
- 五星知识达人网友:怙棘
- 2021-02-22 18:35
TrainingOfThis.color 这个指的是 TrainingOfThis 这个类里的静态成员color。
你还是翻翻书吧,这太基础了~
我在这儿乱说不利于你基础知识掌握~
你还是翻翻书吧,这太基础了~
我在这儿乱说不利于你基础知识掌握~
全部回答
- 1楼网友:轮獄道
- 2021-02-22 20:58
首先,this指向方法的隐式参数,即调用此变量或方法的对象(就是你说的当前对象)。 看下面这个例子: class test{ private string a; void a(string a){ this.a =a; } public static void main(string[] args){ test t1 = new test(); test t2 = new test(); t1.a("a");//调用a这个方法的时候,this指向t1这个对象 t2.a("a");//调用a这个方法的时候,this指向t2这个对象 } } 第二,如果this(...)出现在构造器或其它方法的第一句,那么说明这个构造器将调用同一类中的其他构造器或方法。 比如: public a(int x,int y) { ... } public a(int x,int y,string z) { this(x,y);//调用a(int x,int y) z=... }
- 2楼网友:渊鱼
- 2021-02-22 19:20
找本Java疯狂讲义,仔细看。
想写文章(程序),写字(语法)都是问题,那么一定要仔细的学习才行。
其实静态和非静态的翻译不是很准确,正确的叫法应该是“属于类的”(静态的)还是“属于对象的”(非静态的),字段不如叫Feild更好,包含变量、方法而已。
属于类的变量,在类被声明时就被创建了,而属于对象的Feild在对象被创建时才会被创建。
因此如果允许在属于类的方法中使用属于对象的变量,那么这个属于对象的变量可能还没被创建,因此不允许这么做。
你找本Java语法的书仔细看2个月,将来会省至少2年的时间。
忠言逆耳利于行,急功近利不可取。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
正方形一边上任一点到这个正方形两条对角线的 |
阴历怎么看 ? |