黑马程序员技术交流社区
标题:
Java static关键字具体作用?
[打印本页]
作者:
刘朋朋
时间:
2011-10-7 10:32
标题:
Java static关键字具体作用?
用static修饰的方法是能被直接调用,不需要实例化对象?
作者:
林国锋
时间:
2011-10-7 10:36
static修饰的对象会自己给一个初始值
如果是int类型就给一个0
如果是String类型会给一个空
作者:
成杰
时间:
2011-10-7 10:37
恩,这样是可以的。
类中的方法分两种:类方法和实例方法
static修饰的就是类方法,不但可以被类创建的对象使用而且可以直接通过类名调用
而没有static修饰的就是实例方法了,只能通过创建对象来调用
其实这个的原理在于:当类的字节码被调用到内存的时候,类方法会分配入口地址,而实例方法不分配,所以类方法可以被类直接调用,而实例方法只有当创建了对象才分配入口地址,才能被调用。不过是,实例方法的端口是所有类对象共享的,当创建第一个对象时,类中的实例方法就分配了入口地址,再创建的时候就不用再分配了。
作者:
欧阳超
时间:
2011-10-7 10:43
static 表示是静态的!用static修饰的方法在本类可以直接写方法名调用.在其他类里可以用类名.方法名调用.而不用实例化.加个static 修饰就是指程序的启动就被实例化了.
作者:
黄治文
时间:
2011-10-7 10:44
static成员独立于类的任何成员,声明为static的方法称之为静态方法,声明为static的变量称之为静态变量,它们能够被自己使用,不用引用实例对象,它们能够在类的任何成员创建之前被访问,以上的特点导致了它有以下的规则:
1.它们只能调用其他的static 方法
2.它们只能访问static数据。
3.它们不能引用this 或super
作者:
zhousaowen
时间:
2011-10-7 10:54
方法也是一个类的成员,当一个成员被static修饰之后,则是声明这个成员存在的形式是静态的,无论创建都少个类的实例对象,这个成员都不会在各个实例中呗额外分配空间保存,而是各个实例都未回这个指向的静态成员的引用。
静态成员的本质特点:他是属于类的域,而不归任何一个类的实例对象所有。
按我的自己的理解就是,静态存放在数据区域,加载类的时候,这个区域也就会加载进去,所以可以直接使用。
对方法来说,static一项重要的用途就是帮助我们在不必创建对象的前提下调用那个方法。正如以后会看到的那样,这一点是至关重要的——特别是在定义程序运行入口方法main()的时候。
下面有来一个例子:public class t2{
public static void main(String[] args)throws Exception{//主函数也是为静态的
RandomAccessFileDemo();//直接调用静态方法
}
public static void RandomAccessFileDemo()throws Exception{
/*该类不是I哦类体系子类,直接继承Object,
但是是IO包中的成员,因为具备读和写功能
内部封了一个数组,通过指针对数组的元素进行操作。可以通过getFilePointe获 取指针位置,
内部还封装了流,通过构造函数知道智能操作文件。*/
File f=new File("E:\\raf.txt");
RandomAccessFile raf=new RandomAccessFile(f,"rw");
raf.write("zhoushaowen".getBytes());
raf.writeInt(298);
raf.close();
}
}
作者:
张英杰
时间:
2011-10-7 11:12
static,优先于对象存在,不可以定义this、super关键词,它随着类的加载而执行,止执行一次,用于给类初始化。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2