main方法

一.

Main 方法是程序的入口点,程序控制在该方法中开始和结束。该方法在类或结构的内部声明。它必须为静态的。它可以具有 void 或 int 返回类型。在 Main 方法中创建对象和调用其他方法。声明 Main 方法时既可以不使用参数,也可以使用参数。后一种形式使程序可以读取命令行参数。

命令行参数请参见
Main | 返回值 | C# 程序的常规结构 | 命令行参数教程
Main 方法可以使用参数,在这种情况下它采用下列形式之一:

static int Main(string[] args)
static void Main(string[] args)
Main 方法的参数是表示命令行参数的 string 数组。通常通过测试 Length 属性来检查参数是否存在,例如:

if (args.Length == 0)
{
   Console.WriteLine("Please enter a numeric argument.");
   return 1;
}
还可以使用 Convert 类或 Parse 方法将字符串参数转换为数值类型。例如,下面的语句使用 Int64 类上的 Parse 方法将字符串转换为 long 型数字:

long num = Int64.Parse(args[0]);
也可以使用别名为 Int64 的 C# 类型 long:

long num = long.Parse(args[0]);
还可以使用 Convert 类的方法 ToInt64 完成同样的工作:

long num = Convert.ToInt64(s);
有关更多信息,请参见 parse 方法和 Convert 类。

示例
在此示例中,程序在运行时采用一个参数,将该参数转换为一个长数字,并计算该数字的阶乘。如果没有提供参数,则程序发出一条消息来解释程序的正确用法。

// Factorial_main.cs
// arguments: 3
using System;
public class Factorial
{
   public static long Fac(long i)
   {
      return ((i <= 1) ? 1 : (i * Fac(i-1)));
   }
}

class MainClass
{
   public static int Main(string[] args)
   {
      // Test if input arguments were supplied:
      if (args.Length == 0) 
      {
         Console.WriteLine("Please enter a numeric argument.");
         Console.WriteLine("Usage: Factorial <num>");
         return 1;
      }

      // Convert the input arguments to numbers:
      try
      {
           long num = long.Parse(args[0]);
           Console.WriteLine("The Factorial of {0} is {1}.",
                        num, Factorial.Fac(num));
           return 0;
      }
      catch (System.FormatException)
      {
         Console.WriteLine("Please enter a numeric argument.");
         Console.WriteLine("Usage: Factorial <num>");
         return 1;
      }
   }
}

二.

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()方法并不向操作系统返回“退出代码”。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");
  }
 }

 
5.  main()方法只作为Java应用程序的入口。Applet程序不需要main()方法,一般由浏览器不同方式启动,其入口程序一般为init()方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值