java中有的方法为什么要定义成静态的? 静态方法和实例方法的选择?
5个回答
展开全部
1。静态方法的特点:
直接调用类名+方法名,不需要实例化类对象。
如:
Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如:
Hello
hello=new
Hello(参数1~n);
hello.P();
2。程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。
3。main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。
一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。
直接调用类名+方法名,不需要实例化类对象。
如:
Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如:
Hello
hello=new
Hello(参数1~n);
hello.P();
2。程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。
3。main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。
一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。
展开全部
1。静态方法的特点:
直接调用类名+方法名,不需要实例化类对象。
如:
Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如:
Hello
hello=new
Hello(参数1~n);
hello.P();
2。程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。
3。main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。
一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。
直接调用类名+方法名,不需要实例化类对象。
如:
Hello.P();
非静态方法则必须实例化一个对象出来,再通过对象调用该方法如:
Hello
hello=new
Hello(参数1~n);
hello.P();
2。程序被打包成.jar文件后(相当于.exe文件),给外界唯一的接口就是main方法。使用者双击.jar文件,其实就是让虚拟机执行main方法。
3。main方法不是提供给程序员的,而是提供给虚拟机和使用客户的。
一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
分两个阶段
阶段一:先载入类
阶段二:然后才能依据类来实例化对象
而static的方法、变量都是属于类的,非static的则属于对象
如果在阶段一,访问非static的方法,因为还没有对象,所以不能访问成功
如果在阶段二,一个类有那么多对象在内存生存着,类也不知道该访问哪个对象的实例变量
阶段一:先载入类
阶段二:然后才能依据类来实例化对象
而static的方法、变量都是属于类的,非static的则属于对象
如果在阶段一,访问非static的方法,因为还没有对象,所以不能访问成功
如果在阶段二,一个类有那么多对象在内存生存着,类也不知道该访问哪个对象的实例变量
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例如果方法f()被类A定义成静态方法,那么f()方法对于类A只有一个入口,也就
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
javap分析方法的动态链接和静态链接
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询