Java中main()方法以及命令行参数的若干注意
2009-12-14 22:26
main方法的完整定义语法:public static void main(String[] args){}
命令行格式:java [命令参数] 文件名 [args[0](用户参数) args[1] ... 比如 java - cs AClass a b c<enter>
1. 关于main()方法中的修饰符public
java虚拟机规范并没有要求main一定是public的,所以public可以省略,它只是为了main()方法可以从任意一个java运行环境中调用。不过没有public 虽然编译无错误,但是虚拟机无法启动应用程序。
2. 关于main()方法中的关键字static
静态方法不能访问实例字段。但可访问自身类中的静态字段。
main方法是且必须是一个静态方法,所以static 必须写。为了不需要构造类实例。如果没有static,运行时出错。
3 . main()方法的返回类型和返回值
main(String[] arg)如果不写void会有编译错误
如果不写static和[]会有运行错误
main()方法并不向操作系统返回“退出代码”。java中,如果main方法正常退出,Java程序的退出代码为0,表示成功地实行完毕程序。若要用不同的退出代码终止程序,则使用System.exit方法。
因为main()方法是可以重载的,所以返回类型可以void ,int ,boolean... 但如果从应用程序的入口main()方法的角度看,则只能用void返回。
4. main()方法及命令行参数相联系的若干注意
当缺少String[]args时,虽然编译可以通过,但是运行时无法获取有效的main方法,运行时候会报错。其中方法参数名字args可以改变。
要知道知道String数组长度,可以直接用args.length即可。
当没有用户参数的时候,如果进行args[0]等的访问,会抛出一个数组越界异常。
如下操作,由于main()方法的参数类型正确,所以编译可以通过,但运行时会出错。
public class Test
{
public static void main(String argv)
{
System.out.println("hello cruel world");
}
}
如果超过边界访问args[],编译正常,运行出错。
如:
public class Test{
public static void main(String[] args){
String foo=args[1];
String bar=args[2];
String baz=args[3];
}
}
java Test Red Green Blue
what is the value of baz?
A. baz has value of ""
B. baz has value of null
C. baz has value of "Red"
D. baz has value of "Blue"
E. baz has value of "Green"
F. the code does not compile
G. the program throw an exception
Answer:G
5. main()方法只作为Java应用程序的入口。Applet程序不需要main()方法,一般由浏览器不同方式启动,其入口程序一般为init()方法。
6. main可作为普通方法名。
如:
public class Droitwich
{
class one
{
private class two
{
public void main() //注意这里的main方法
{
System.out.println("two");
}
}
}
}
显示:编译正常
分享到:
相关推荐
public static void main(String[] args) { int n = 5; // 三角形的高度 for (int i = 1; i ; i++) { for (int j = 1; j ; j++) { System.out.print("* "); } System.out.println(); } } } ``` 2. 等腰...
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入姓名:"); String name = scanner.nextLine(); System.out.println("请输入性别(M/F):"); ...
public static void main(String[] args) { new IrregularShapeDemo(); } protected void processMouseEvent(MouseEvent e) { //鼠标事件处理 if(e.getID() == MouseEvent.MOUSE_PRESSED) { ...
public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter a degree in Celsius: "); double celsius = input.nextDouble(); double fahrenheit = (9.0 /...
public static void main(String[] args) { int size = 5; // 正方形的边长 // 输出正方形的上边框 for (int i = 0; i ; i++) { System.out.print("*"); } System.out.println(); // 输出正方形的内部 ...
public static void main(String[] args) { int count = 0; for (long i = 1; i ; i++) { long temp = i * i * i; long sum = 0; while (temp > 0) { sum += temp % 10; temp /= 10; } if (i == sum) { ...
public static void main(String[] args) { Shape circle = ShapeFactory.createShape("Circle"); circle.draw(); Shape square = ShapeFactory.createShape("Square"); square.draw(); Shape triangle = ...
public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入长方形的长:"); double length = scanner.nextDouble(); System.out.println("请输入长方形...
public static void main(String[] args) { Scanner cin = new Scanner(System.in); System.out.println("请输入你的名字:"); String name = cin.nextLine(); // 读取一行文本 System.out.println("请输入你的...
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int L = sc.nextInt(); double[] doubles = new double[N]; for (int i = 0; i ; i++) { doubles[i]...
public static void main(String[] args) { Rectangle rectangle = new Rectangle(10, 5); System.out.println("矩形的面积: " + rectangle.getArea()); Triangle triangle = new Triangle(8, 6); System.out....
public static void main(String[] args) { // 使用JOptionPane显示对话框获取用户输入 String str = JOptionPane.showInputDialog("请输入字符串:"); char[] c = str.toCharArray(); // 将字符串转换为字符...
public static void main(String[] args) { SwingUtilities.invokeLater(() -> new ParabolaExample().setVisible(true)); } } ``` 在这个例子中,我们定义了一个开口向上的抛物线,并通过循环计算不同x值对应的...
public static void main(String[] args) { Application.launch(MainApp.class, args); } } ``` 其中,`MainApp`类是JavaFX应用程序的入口,负责创建舞台、设置场景和添加3D爱心: ```java public class ...
public static void main(String[] args) throws IOException, NotFoundException, ChecksumException, FormatException { File qrCodeFile = new File("input.png"); BufferedImage image = ImageIO.read...
public static void main(String[] args) { printPascalTriangle(6); // 输出6行的杨辉三角 } } ``` 在这个代码中,`printPascalTriangle`方法接受一个整数参数,表示要生成的杨辉三角的行数。数组`triangle`...
2. **主方法**:解释Java程序的入口点——主方法(`public static void main(String[] args)`)的作用和结构。 3. **面向对象编程**:详细讲解面向对象编程的概念,如类的继承、接口、抽象类以及多态性。 4. **GIS...
public static void main(String[] args) { int numRows = Integer.parseInt(args[0]); // 输入的行数 int[][] triangle = new int[numRows][]; for (int i = 0; i ; i++) { triangle[i] = new int[i + 1]; ...