1. 程式人生 > >深入學習方法和屬性

深入學習方法和屬性

前言

  我們之前都學習過:屬性和方法,相信大家都知道他們的區別,那現在一起來跟著小編來走一下這些你可能不瞭解的知識點。

方法

  給大家1分鐘的思考時間,方法如何寫。。。。。。

  好了,不管大家有沒有思考出來,現在我來公佈答案嘍!

 訪問修飾符 返回型別 方法名(){ }

  再給大家1分鐘的思考時間,方法是用來幹什麼的

  沒錯,方法就是完成一個功能,查詢是否正在上機的方法就是完成了查詢是否正在上機的功能。那我需要完成一個功能,是否可能會需要一些“工具”,就像查詢是否正在上機,我是不是需要知道卡號,然後再去查這個卡號是不是正在上機。

  這個卡號就是寫在“()”裡的引數

。那作為引數的“卡號”是形參還是實參呢?

  實參 OR 形參

  還是接著上面的例子來:我需要查詢是否正在上機,在Facade層中我有了這樣的一個方法:

	public DataTable InquiryIsOnline(Entity.UserInfo UserInfo)
        {
        	return;
        }

  “()”裡面寫的是引數,這個是實體型別的UserInfo(當然UserInfo也可以換成其他的東西),它表明我需要一個Entity.UserInfo型別的引數,是形式上的引數

  接下來我們看U層的呼叫:

      Entity.UserInfo user = new Entity.UserInfo();
      
      Facade.LineFacade faca = new Facade.LineFacade();

      DataTable tab = faca.InquiryIsOnline(user);

  例項化外觀層,調外觀層中的方法,去執行我要查詢的功能,“()”裡也有一個引數user,這個user就是Entity.UserInfo型別的,並且是我傳過去去執行我的功能的引數,是實際的引數

  Entity

  通過上面的例子可以發現,我的引數需要是Entity.UserInfo型別的(重構後的大家都知道,Entity.UserInfo是我們自己寫的一個實體類,一般情況下一個實體類對應資料庫中的一張表,且型別一樣),那我為什麼需要傳遞Entity型別的呢?可不可以傳其他型別的呢?換個說法,重構中的Entity起到了什麼作用

  引數是寫在方法中的“()”裡進行傳遞的,我們不妨把這個看成是方法的兩隻手,如果我現在需要傳一個引數“卡號”,可以不通過Entity直接傳;現在我們又需要傳遞一個“學號”,兩個引數也可以直接傳,那現在我們又需要傳遞引數“姓名”“年齡”“專業”,5個引數一起傳,因為只有兩隻手,可能會出現丟值的情況。但是你把這5個引數都放到一個袋子裡,直接提著袋子來回傳,豈不快哉!所以這裡的Entity相當於一個袋子的作用!

  例項化

  對類A進行例項化:

A a = new A();

  那這裡的A()是什麼呢?沒錯就是構造方法(函式),如果()裡有引數,就是給物件進行賦值。而且呼叫方法前都有“=”

屬性

  屬性就不用多說了吧,直接來舉一個小例子:

private int shoutNum=3;          //宣告一個內部欄位,注意是private,預設叫的次數是3
public int ShoutNum         //ShoutNum屬性,注意是public,當中有兩個方法,get讀值,set賦值
{
	get
	{
		return shoutNum;
	}
	set
	{
		shoutNum=value;
	}	
}

方法與屬性的區別

  1)屬性是可以賦值的,而方法是用來傳值、傳參的,方法也有返回值。
  2)方法有兩隻小手。

大結局

  通過這次的“夜話方法和屬性”,對其瞭解的更深刻了,知識是需要重複學習的,對於這些需要多次重複學習的知識,打好基礎是很重要的。