C# 類、對象、方法和屬性詳解


一、相關概念:

1、對象:現實世界中的實體(世間萬物皆對象)

2、類:具有相似屬性和方法的對象的集合

3、面向對象程序設計的特點:封裝 繼承 多態

4、對象的三要素:屬性(對象是什么)、方法(對象能做什么)、事件(對象如何響應)

 

☆相互關系:類是對象的抽象,對象是類的實例,類是一種抽象的分類,對象則是具體事物。

比如如果車是一個類,某個人的一輛奔馳車就是一個對象,車的顏色質量就是它的屬性,啟動、停止這些動作則可以定義為車的方法。

 

二、類的定義與語法

1、定義類:

[修飾符] class 類名  

{

   類成員

}

 

2、類的訪問修飾符:public internal

a) public:可訪問域是所在的程序和任何引用的程序 訪問不受限制

語法:

 public class 類名

 {

   類成員

 }

 

b) internal:可訪問域定義范圍內 (默認訪問修飾符)

語法:

(internal) class 類名

 {

   類成員

 }

 

3、類成員:數據成員和字段

a)  數據成員:字段和常量

字段:變量

聲明:類型 字段名

例:

public class Persion
{
    public string name;
}

 

b) 方法成員 (方法是類的行為,告訴我們類能夠做什么,)

 實例方法:

修飾符 返回值類型 方法名(參數列表)

 {

      方法體

 }

 修飾符:如:public、private、protected、internal

 返回值類型:若方法無返回值,則使用 void

例:

public class Example01  //實例方法

{

    public void SayHello()  //定義一個無參無返回的方法

    { 

    Console.WriteLine("Hello There")

}

static void Main()

{

Example01 objA=new Example01()

objA.SayHello()    //創建對象並調用方法

}

}

 

靜態方法:

修飾符 static返回值類型 方法名(參數列表)  //增加了static關鍵字

 {

      方法體

 }

例:

public class Example01  //實例方法

{

    public static void SayHello()  //定義一個靜態方法

    { 

    Console.WriteLine("Hello There")

}

static void Main()

{

Example01.SayHello()    //不需要創建對象

}

}

 

靜態方法與實例方法的區別靜態方法只與類有關,它不依賴於對象的存在而存在;實例方法則在對象存在后才能使用。

 

4、成員的訪問修飾符:public、private、protected、internal

 a)  public:公有成員

 b) private:私有成員

 c) protected:保護成員

 d) internal:內部成員

例:

代碼如下

復制代碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication2
{
    public class Employee
    {
        private float sum;
        public int day;
        public float wage;
        //定義方法輸出工資信息
        public void Show()
        {
            sum = day * wage;
            Console.WriteLine("工作時間:{0},每天工資:{1},總工資:{2}",day,wage,sum);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            Employee employee = new Employee();
            employee.day = 20;
            employee.wage = 50;
            //employee.sum:無法訪問  因為它為私有成員
            //調用方法現實工資
            employee.Show();
        }
    }
}

 

 

 

 

三、實例化對象:關鍵字:new

語法:

類 對象名稱=new 類();

 

例:

代碼如下

復制代碼

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
  
namespace ConsoleApplication1 

    public class car 
    { 
        private string carName; 
        private string carType; 
        private int price; 
  
        public string CarName 
        { 
            get { return carName; } 
            set { carName = value; } 
        } 
        public string CarType 
        { 
            get { return carType; } 
            set { carType = value; } 
        } 
        
        public int Price 
        { 
            get { return price; } 
            set { price = value; } 
        } 
  
        public void  action() 
        { 
            Console.WriteLine("一輛名叫{0}車,型號是{1},價錢是:{2}",carName,carType,price); 
        } 
          
    } 
  
    //創建實例並訪問字段和方法 
    class Program 
    { 
        static void Main(string[] args) 
        { 
            //創建car類的實例 
            car vehicle = new car(); 
           //給實例賦值 
            vehicle.CarName = "奔馳"; 
            vehicle.CarType = "XZ001"; 
            vehicle.Price = 1000000; 
  
            //調用方法 
            vehicle.action(); 
  
  
  
        } 
    } 
}

 

 

四、屬性

1、

 a) 概念:用於訪問類的字段的成員

 b) 屬性用途:保證數據安全,作數據的驗證

 

2、聲明:

訪問修飾符 數據類型 屬性名

{

  get{return 字段;}  //讀訪問器,通過它外部用戶可以讀取屬性的值

  set{字段=value;}  //寫訪問器,通過它外部用戶可以為屬性賦值,用戶輸入的值就存放在value關鍵字中,並可以進行輸入值驗證               

}

例:

public class Student

{

private int age;   //私有字段,防止用戶直接訪問

public int Age

{

get{return age;}  //用於讀取age的值

set

{

if((value>=18)&&(value<=45))

age=value;  //為age賦值並驗證

else

age=18;

}

}

}

 

3、特殊屬性:

a) 只讀屬性:

public 數據類型 屬性名稱

{

get{return 字段;}

}

b) 自動屬性:

public 數據類型 屬性名稱{get;set;}

 

五、方法的參數

1、值參數:按值傳遞

2、引用參數:向方法傳遞實參在內存中的地址,按地址傳遞

3、輸出參數:從方法傳遞回一個結果

關鍵字:out

4、數組型參數:參數只允許是一組數組,當方法的參數前帶有params關鍵字時,就是帶數組型參數的方法(使用引用傳遞)

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM