主函数的特殊之处:
1 格式是固定的
2 被 jvm 所识别和调用
解析:
public : 因为权限必须是最大的
static : 不需要对象的,直接用主函数所属类名调用即可
void : 主函数没有具体的返回值
main : 函数名,不是关键字,只是一个 jvm 识别的固定的名字
String[] args : 这是主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型
public static void main(String[] args){ //new String[0]
// 虚拟机在调用的时候,传的是 new String[0]
// 之所以主函数带个参数,是因为,在运行 Java程序时,可以在运行程序的同时,指定一些具体的参数值
System.out.println(args);//[Ljava.lang.String;@c17164
System.out.println(args.length); // 0
for(int x=0; x<args.length; x++)
System.out.println(args[x]);
}
主函数是静态的 --- 解析
// 实际开发中,不会这么写,类如果有属性,有方法,会单独写,然后在主函数中,创建该类的对象,调用方法
class StaticDemo{
int num = 4; // num 不加 static,说明 num 是这个对象,特有的数据
public static void main(String[] args) {
/*
调用的话,会出现错误,说无法从 静态上下文中,引用非静态方法(show);
把 show() 改为静态的,说,无法从 静态上下文中 引用 非静态变量 num
实际开发中,不会这么写,在这里想调用 show() 方法,两种方式:类名 或者 对象名
new StaticDemo().show(); // new一个对象来调用
*/
show();
}
public void show(){
System.out.println(num);
}
}
网友评论