c#程序剛開始啟動的時候都會有唯一一個入口函數(shù)main()函數(shù),而非靜態(tài)成員又稱實例成員,必須作用于實例。在程序剛開始運行的時候,未建立任何實例,因此無法調(diào)用實例成員,包括非靜態(tài)的Main方法。為了能夠在程序的開始執(zhí)行Main方法,必須將其聲明為靜態(tài)。?
順便說明,在Main方法中調(diào)用的成員也必須是靜態(tài)的,除非建立過相應(yīng)的實例。?
namespace lover_P.Test {?
public class Test {
public void InstanceMethod() {} // 實例成員(非靜態(tài))
public static void StaticMethod {} // 類型成員(靜態(tài))
public static void Main() {
InstanceMethod(); // 錯誤!調(diào)用了實例成員,而此時并沒有建立實例
StaticMethod(); // 正確!可以調(diào)用靜態(tài)成員
Test SomeTest = new Test(); // 建立本類型的一個實例
SomeTest.InstanceMethod(); // 再在這個實例上調(diào)用實例成員就對了
SomeTest.StaticMethod(); // 附加一句,在實例上調(diào)用靜態(tài)成員也是錯誤的!
}
}
}
static 表示方法是靜態(tài)的就是說方法在程序被編譯的時候就被分配了內(nèi)存,使用的時候不用生成某個類型的對象,直到程序退出才釋放。
void 表示方法沒有返回值,就是方法沒有renturn 關(guān)鍵字。
main 是方法名,當(dāng)然這個方法是特殊的方法,是Main()就是說是主函數(shù),就是整個程序的入口,程序被編譯后從這里開始執(zhí)行,這也是main方法要是static的原因,因為在啥都沒做的時候這個函數(shù)就得存在。
string[] args 表示命令行參數(shù)是字符串?dāng)?shù)組,就是說,你在命令行(黑框框)里輸入的參數(shù)可以使多個字符串(在某種意義上意味著什么都可以是命令行參數(shù))。
運行時會彈出命令窗口,你可以在那里輸入一些參數(shù),string[] args 指的就是你在命令窗口輸入的參數(shù)。args是用來處理命令行參數(shù)的。命令行參數(shù),就是你運行這個程序的時候給它傳的參數(shù)。它是可選項,不是必須的。
如何向C# Main函數(shù)傳遞參數(shù)呢?我們看到C# Main函數(shù)帶有一個string[] args參數(shù),那么你知道它有什么實際的功能呢?下面我們來具體談?wù)劊?/b>
C#控制臺應(yīng)用程序下,我們常常看到Main函數(shù)帶有一個string[] args參數(shù),那么你知道它有什么用處?
步驟1:建立一個控制臺應(yīng)用程序,暫且命名為Main.cs
步驟2:貼上下面這段代碼。
using System;
class Program{
????? static void Main(string[] args){
????? int argsLength = args.Length;
????? Console.WriteLine("Main函數(shù)參數(shù)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 ,敲回車看結(jié)果
輸出結(jié)果為:
Main函數(shù)參數(shù)args的長度:3
第0位是:a
第1位是:b
第2位是:c
由于參數(shù)個數(shù)是未知的,所以允許輸入任意多個,也可以不輸入。
C#四種訪問修飾符是什么
Public:公有的,是類型和類型成員的訪問修飾符。對其訪問沒有限制。
Internal:內(nèi)部的,是類型和類型成員的訪問修飾符。同一個程序集中的所有類都可以訪問
Private:私有的,是一個成員訪問修飾符。只有在聲明它們的類和結(jié)構(gòu)中才可以訪問。
Protected::受保護的,是一個成員訪問修飾符。只能在它的類和它的派生類中訪問。
一、??main方法分析
1、???????publicstatic void main(String [] args)
{
?? //代碼塊
}
2、???????public:共有的
static:靜態(tài)的
void:沒有返回值
mian:主方法名稱
String[] args:表示參數(shù)為字符串
二、??作業(yè):
創(chuàng)建一個羊類,使用static實現(xiàn)羊類,記錄一共創(chuàng)建了幾只羊,
?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
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請附上博文鏈接!