java 新手 为什么 java类中 要有 static静态方法???
4个回答
展开全部
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方法不是提供给程序员的,而是提供给虚拟机和使用客户的。 一个软件你没法让客户知道你内部的详情,当然客户也就没办法知道怎么去实例化对象,更不知道实例化对象时需要输入什么参数了。所以只能采用静态方法。
展开全部
/**
*静态与对象无关 , 先于对象而存在
*类方法: 静态方法 不用创建对象就可以调用的方法 , 不能访问对象的信息
*常见错误:无法从静态上下文中引用非晶态 , 表示没有对象 , 访问对象的信息
*/
public class StaticExer01 {
public static void main(String[] args) {
Fruit.print(); //静态方法 直接调用
//Fruit f = new Fruit();
new Fruit().test();
}
}
class Fruit {
//静态属性
static String no = "我是静态属性 no ";
//成员属性 实例属性
String name = "我不是静态属性 name ";
//静态方法
//凡是静态的只能访问静态的 方法|属性
public static void print () {
//此时不能输出 name 因为 name不是静态方法 它属于对象,而此时并未创建对象
//但可以直接输出 no 因为 no 是静态属性
System.out.println(no);
Fruit f = new Fruit();
System.out.println(f.name+" 我在静态方法中");
System.out.println("==============================");
}
//成员方法
public void test () {
Fruit.print(); //成员方法可以访问一切(包括静态和非静态)
System.out.println(this.name+" 我在成员方法中");
}
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
比如你在A类里写了一个静态方法sub(int a,int b),是计算两个数的和,那么你只需要A.sub(数据1,数据2)就行了,如果sub()方法不是静态的,那么需要实例化类A,A MYA=new A();如果你要多次计算两个数的和,那么就要不断创建对象然后撤销对象。但静态就直接调用了sub()方法,而且静态方法只加载一次而已
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
main函数就是一个最好的例子
main函数必须是静态的,不需要创建main函数所在类的对象就可以执行改函数。
main函数必须是静态的,不需要创建main函数所在类的对象就可以执行改函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |