c#程序刚开始启动的时候都会有唯一一个入口函数main()函数,而非静态成员又称实例成员,必须作用于实例。在程序刚开始运行的时候,未建立任何实例,因此无法调用实例成员,包括非静态的Main方法。为了能够在程序的开始执行Main方法,必须将其声明为静态。
顺便说明,在Main方法中调用的成员也必须是静态的,除非建立过相应的实例。
namespace lover_P.Test {
public class Test {
public void InstanceMethod() {} // 实例成员(非静态)
public static void StaticMethod {} // 类型成员(静态)
public static void Main() {
InstanceMethod(); // 错误!调用了实例成员,而此时并没有建立实例
StaticMethod(); // 正确!可以调用静态成员
Test SomeTest = new Test(); // 建立本类型的一个实例
SomeTest.InstanceMethod(); // 再在这个实例上调用实例成员就对了
SomeTest.StaticMethod(); // 附加一句,在实例上调用静态成员也是错误的!
}
}
}
static 表示方法是静态的就是说方法在程序被编译的时候就被分配了内存,使用的时候不用生成某个类型的对象,直到程序退出才释放。
void 表示方法没有返回值,就是方法没有renturn 关键字。
main 是方法名,当然这个方法是特殊的方法,是Main()就是说是主函数,就是整个程序的入口,程序被编译后从这里开始执行,这也是main方法要是static的原因,因为在啥都没做的时候这个函数就得存在。
string[] args 表示命令行参数是字符串数组,就是说,你在命令行(黑框框)里输入的参数可以使多个字符串(在某种意义上意味着什么都可以是命令行参数)。
运行时会弹出命令窗口,你可以在那里输入一些参数,string[] args 指的就是你在命令窗口输入的参数。args是用来处理命令行参数的。命令行参数,就是你运行这个程序的时候给它传的参数。它是可选项,不是必须的。
如何向C# Main函数传递参数呢?我们看到C# Main函数带有一个string[] args参数,那么你知道它有什么实际的功能呢?下面我们来具体谈谈:
C#控制台应用程序下,我们常常看到Main函数带有一个string[] args参数,那么你知道它有什么用处?
步骤1:建立一个控制台应用程序,暂且命名为Main.cs
步骤2:贴上下面这段代码。
using System;
class Program{
static void Main(string[] args){
int argsLength = args.Length;
Console.WriteLine("Main函数参数args的长度:" + argsLength.ToString());
for (int i = 0; i < argsLength; i++)
{
Console.Write("第" + i.ToString() + "位是:");
Console.WriteLine(args[i].ToString());
}
}
}
步骤3:编译并运行Main.cs,生成Main.exe文件
步骤4:在命令行模式下输入c:\>Main a b c ,敲回车看结果
输出结果为:
Main函数参数args的长度:3
第0位是:a
第1位是:b
第2位是:c
由于参数个数是未知的,所以允许输入任意多个,也可以不输入。
C#四种访问修饰符是什么
Public:公有的,是类型和类型成员的访问修饰符。对其访问没有限制。
Internal:内部的,是类型和类型成员的访问修饰符。同一个程序集中的所有类都可以访问
Private:私有的,是一个成员访问修饰符。只有在声明它们的类和结构中才可以访问。
Protected::受保护的,是一个成员访问修饰符。只能在它的类和它的派生类中访问。
一、 main方法分析
1、 publicstatic void main(String [] args)
{
//代码块
}
2、 public:共有的
static:静态的
void:没有返回值
mian:主方法名称
String[] args:表示参数为字符串
二、 作业:
创建一个羊类,使用static实现羊类,记录一共创建了几只羊,
class HomeWork1
{
public static void main(String[] args)
{
Sheep s1 = new Sheep("喜洋洋");
Sheep s2 = new Sheep("美羊羊");
Sheep s3 = new Sheep("懒洋洋");
System.out.println(Sheep.getCount());
}
}
class Sheep
{
private String name;
private static int count = 0;
public Sheep(String name)
{
this.name = name;
count++;
}
public static int getCount()
{
return count;
}
}
---------------------
作者:Lqc_javaEngineer
来源:CSDN
原文:https://blog.csdn.net/u014756517/article/details/51067377
版权声明:本文为博主原创文章,转载请附上博文链接!