rt 这好像是基础知识来的
但以前没碰到过望大虾们给小弟讲解讲解 谢谢
但以前没碰到过望大虾们给小弟讲解讲解 谢谢
解决方案 »
- 能利用Math.random()生成随机负数么?
- ???、、、、用Java做出一个什么样的小软件,小工具,大家觉得有用呢???????
- 请问JSE1.6怎么实现webservice服务端
- 高手指导下啊,看不明白
- 我想编一个类似网络邮盘的程序,出问题了,懂smtp协议的进
- 急!!!Linux 下javac 编译的问题,高分求解....
- OutputStream的方法void write(int b)为什么不设计成void write(byte b)呢?
- finalize问题:结果不是我所想象的
- 单词词频统计,为什么出不来效果?
- 单引号问题
- 求SWT可拖动控件 例子
- java3d 可否载入 3d 模型 具体方法是?我是rookie
但是static方法是没有这个隐含参数的,因为static方法和类的实例无关
它只在类装载的时候初始化
很多书都把静态变量称作类级变量
比如, Object o=new Object();
o.toString(); //实际上是有参数传递的toString(Object this),且o==this
这样在非静态方法中就可以通过this来得到调用对象的其他域和方法,私有域的也行。(2) 静态方法是属于类的,而并不属于某个对象。所以没有隐式参数this,自然也就不能通过this调用对象本身了。
但这并不意味这不能调用非静态域。我们可以通过显示参数传递来做到这一点:
class MyClass{
private int nonStaticData=0;
private static int staticData=0; public static void operStaticMethod(MyClass mc){
System.out.println(staticData); //直接使用类中的静态域
System.out.println(mc.nonStaticData); //使用对象mc中的非静态域
}
} MyClass c=new MyClass();
MyClass.operStaticMethod(c);
没有static的其他方法,非静态方法,必须在类实例化时,才有内存空间,所以在类实例化之前是无法调用的。
所以,静态方法里不能调用非静态方法,除非你先实例化那个类。
this指针是指向类的对象,在实例化对象时jvm会在堆区分配内存给一个具体的对象,this指针指向这个对象。而类中的static域始终是在静态区分配内存,this指向堆区,所以不能调用。
static是属于类的。this是对象指针