Java中为什么方法加个static。main方法才能调用static方法?

如题所述

第1个回答  2017-11-22
不是一定要加的,只是你加了之后可以在main方法里面直接调用,不需要创建对象;因为main函数是静态方法,所以有一些方法设置为静态是为了方便调用。
注意:1、在静态方法中,不能调用非静态方法及引用非静态变量。但是反过来却没问题。
2、JSR规范强制规定了main()方法的格式必须是: public static void main(String[] args){...}本回答被网友采纳

java里为什么主函数前面要加static修饰
因为对于非静态成员函数而言,默认情况下,参数列表中都会有一个this指针,例如fun(自定义参数),实际上编译后就变成这样类型:fun(自定义参数,某个类 this)。这样编译就会出错,多了一个参数,所以这个函数就不能作为线程函数了。加上static修饰之后,类的成员函数就不会加上默认this了,所以符合调用...

java中为什么一个类中的一个方法调用另一个方法需要将被调用的方法声明...
不是的,但如果你在main方法里面调用的话就得是static了,因为main本来就是静态方法,只能调用静态的方法了。如果不是在main方法里面就可以。

在java语言中,有时候变量常量声明时要加一个“static”,有的时候不加...
通过以上两种比较,就可以知道static用来修饰类成员的主要作用了,在java类库当中有很多类成员都声明为static,可以让用户不需要实例化对象就可以引用成员,最基本的有Integer.parseInt(),Float.parseFloat()等等用来把对象转换为所需要的基本数据类型。这样的变量和方法我们又叫做类变量和类方法。接下来讲一下...

请问JAVA的main函数前加的static和public是什么意思?代表了什么?不加呢...
static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当定义了类以后这段代码就已经存在了。如果main()方法没有使用static修饰符,那么编译不会出错,但是如果你试图执行该程序将会报错,提示main()方法不存在。因为包含main()的类并没有实例化(即没有...

java中为什么要把main方法定义为一个static方法
为了解决程序的运行问题,我们将这个main方法定义为static,这样的话,当我们在执行一个java代码的时候,我们在命令提示符中写:java Point(Point为一个类),解释器就会在Point这个类当中,去调用这个静态的main方法,而不需要产生Point这个类的对象,当我们加载Point这个类的时候,...

Java中常量为什么定义为public static final
static定义的类。。。不知道你指的是不是类中的静态方法。方法的话,和变量一样,可以用类名直接调用,但是不能直接访问这个类除静态外的变量和方法。如果是静态类的话,普通类是不支持声明为静态类的,只有内部类才可以。能直接作为一个普通类使用,不需要实例外部类。作用就很多了,它可以在他所属...

java static使用问题
后者是局部变量,只能在方法内引用该变量。再次,你要知道,main方法是一个静态方法,静态方法之前说过,是在类加载的时候就创建了,如果在方法里定义a,那方法里定义的变量a当然也同时加载了,程序就不会有问题。如果定义的是全局变量并且没有定义静态变量,那方法已经加载了,变量还没有被加载,那你说...

为什么java中public的方法不能被调用而static可以?
你的方法是在一个类里面的,要调用需要实例化对象,再通过对象调用方法,而static是静态意思,所以方法生成不受类实例影响,直接初始化,就可以直接调用了,简单理解就是,方法在类里面必须要先new一下生成这类,里面的方法才会激活,这样才能调用,static修饰后代码会先运行静态修饰的,所以方法就已经提前...

Java中为什么要有静态方法 和非静态方法之分
private static String color;public static String getColor(){ return color;} } 这时候,Dog的color就只有共性,都是某种颜色,你想现实中Dog的颜色可能会有多种,要更加符合现实的话,这个修饰color的static最好是去掉,方法也是如此。在java中方法有一个更好的取名——行为,字段也叫——属性。使...

java,接口为什么默认加上public static final ?
这个问题其实倒没有说什么为什么,可以说是一种标准吧,JAVA里面的接口是让别的类去实现的,所以接口必须稳定,一旦发布出接口,那就不允许改变了所以定为final别的类或者什么都不可以对这个接口进行修改,

相似回答