java面向对象(main函数)-java读书笔记
面向对象(main函数)
主函数被JVM调用,是固定的格式,是程序入口。
1)public:表示主函数访问权限最大。
2)static:表示主函数随着类的加载而加载。
3)void:主函数无返回值。
4)main:非关键字,但是被JVM识别的特殊单词。
5)String[] args:参数的类型是一个数组,该数组中的元素是字符串,简称字符串数组。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class Test
{
public static void main()
{
System.out.println(1);
}
public static void main(int x)
{
System.out.println(2);
}
public static void main(String[] args,int x)
{
System.out.println(3);
}
public static void main(String[] args)
{
System.out.println(4);
}
}
Q:编译能通过吗?
A:能,因为主函数也是函数,也可重载,但JVM所识别的格式是固定的(函数名称是main,参数列表是字符串数组)。
如果存在,比如这里存在,返回4。
如果不存在,虽然编译能通过,但运行时会出错。
错误: 在类 Test 中找不到主方法, 请将主方法定义为:
public static void main(String[] args)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:主函数里唯一能改(修改后,JVM仍识别)的地方是哪儿?
A:是字符串数组的名称。比如早期版本是arguments。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:JVM调用主函数时,主函数传入的是什么?
A:字符串数组的值只有两种:null 或 数组实体
第1句返回[Ljava.lang.String;@811c88,说明传入的是数组实体
第2句返回0,说明传入的数组的长度为0,即相当于 new String[0]
所以,JVM在调用主函数时,传入的是 new String[0]
class Test
{
public static void main(String[] args)
{
System.out.println(args);
System.out.println(args.length);
}
}
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Q:怎样往主函数里传入数据?
A:java 类名 主函数的参数
1)javac.exe启动编译器
2)java.exe启动JVM,JVM执行指定的类
3)该类调用其主函数时,会将参数传入。
比如输入:java Test aa bbb cccc
JVM会将类名后的数据,用空格分隔,自动封装到长度为3的数组里。
class Test
{
public static void main(String[] args)
{
for(int x=0;x
System.out.println(args[x]);
}
}
返回结果
aa
bbb
cccc
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
//也可这么传,运行时输入:java Test2
class Test2
{
public static void main(String[] args)
{
String[] arr={"aa","bbb","ccc"};
Test.main(arr);
}
}
class Test
{
public static void main(String[] args)
{
for(int x=0;x
System.out.println(args[x]);
}
}
本文来源 我爱IT技术网 http://www.52ij.com/jishu/5596.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
