封裝 重載 構造函數 靜態變量

namespace ConsoleApplication3
{
    class Class1
    {
        private string _name;

        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        private string _type;

        public string Type
        {
            get { return _type; }//取值
            set { _type = value; }//賦值
        }
        private string _food;

        public string Food
        {
            get { return _food; }
            set {
                if (value=="meat")
                    {
                       _food = "我吃肉!";
                    }
                else
                {
                    _food = "我不吃別的!";
                }
                
                }
        }
    }
}

  

namespace ConsoleApplication3
{
    class Class2//function 重載
    {
        public void function(string s)
        {
            Console.WriteLine(s);
        }
        public void function(string s,string s1)
        {
            Console.WriteLine(s+s1);
        }
    }
}

  

namespace ConsoleApplication3
{
    class Class3
    {
        /// <summary>
        /// 構造函數,每個類至少有一個構造函數(class a = new class()),函數名字與類名相同,而且沒有返回值,下面的public不寫也能夠默認存在,構造函數也能夠重載
        /// </summary>
        public void class4()//不是構造函數,是新的方法
        {
 
        }
        public Class3()//默認的構造函數
        {
 
        }

        public Class3(int a)//帶參數的構造函數數
        {
            Num1 = a;
        }

        public int Num1;
        public static int Num2;//靜態成員,不隨着NEW造對象走
       
    }
}

  

namespace ConsoleApplication3
{
    class Class4
    {
        public Class4(string sname,string ssex,int sold) 
        {
            name = sname;
            sex = ssex;
            old = sold;
        }
        public string name;
        public string sex;
        public int old;
    }
}

  

namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            Class1 s = new Class1();
            s.Food = "meat";
            s.Name = "tiger";
            s.Type = "less";
            Console.WriteLine(s.Food);//以上爲封裝




            Class2 data = new Class2();
            data.function("123");
            data.function("aaa"+"123");//函數重載

            


            Class3 data1 = new Class3();
            data1.Num1 = data1.Num1 + 3;//data1點不出Num2
            Class3.Num2 += 3;//不經過data1,直接經過Class調用
            Class3 data2 = new Class3();
            data2.Num1 = data1.Num1 + 3;
            Class3.Num2 += 3;//靜態成員Num2不隨着造的對象走,Num2爲3,3+3=6
            Console.WriteLine(Class3.Num2);//爲6
            Console.WriteLine(data2.Num1);
            Console.WriteLine(data1.Num1);


            Class3 data4 = new Class3();//構造函數的重載
            Class3 data3 = new Class3(2);//構造函數的重載有參數的
            Console.WriteLine(data3.Num1);//構造函數結果爲2,爲某些成員變量賦初始值




            Class4 t1 = new Class4("張三", "男", 18);//用構造函數給變量賦初始值
            Class4 t2 = new Class4("李四", "女", 17);
            Console.WriteLine(t1.name+t1.old+t1.sex);

            Console.ReadLine();
        }
    }
}
相關文章
相關標籤/搜索