using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace back_end.App_Code
// 命名空間 專案名稱
// 別的專案要使用就要using過去 別的專案也可以一個類別同樣名稱(因為命名空間不一樣)
{
public class Person
// 修飾詞 類別 類別名稱
{//field 特徵欄位(屬性)
}
}
###系統分析文件 類別圖
##類別鑄造物件
屬性視窗 建置動作 內容改為編譯
建置編譯過後就可以using Person近來鑄造物件
Namespace必須要注意路徑不然引用不進來
###建構子其實是一種方法功能為鑄造物件,建構出來的物件具有括弧可帶參數。
物件後面打點因該要有屬性方法事件成員
人資會先塞選條件 然後才會pass到部門
當50都通過它也不會全pass過去
送25壓25人在手上
所以很大關係是靠緣分
620會有廠商來招募 可以投不是相同職類相關的
可以定義屬性內容(需要符合定義型態
以上為物件實作
類別 ( 設計圖概念
物件 ( 設計圖做出來的東西
Tb.id=”TextBox1”;
Tb.text=”abcde;
板手形狀icon都是屬性 ( 上面的person還沒定義成屬性所以都是欄位 field )
##封裝
類別實作項目就叫封裝(資訊隱藏)
閃電形狀事件
正方形紫色為方法
類別裡面定義的東西在使用類別的時候是看不到的
不必知道怎麼被實做出來的
為何需要封裝?
##修飾詞
修飾詞 有三種等級
Public 公開 任何人都可存取
Protected 保護 除了同類別 繼承類別的成員也可以存取
Private 私有 (C#沒有加修飾詞預設 ( 只有同一類別的其他成員可以存取
###實作時必須封裝成屬性不可以用field
欄位為何不可以直接存取?
避免不合理的輸入 如 年齡 age int = -18 ( 年齡不可能為負數
###Field欄位封裝為attibut屬性
屬性不成文的寫法第一個字要大寫
Public string Name
{
Get{name = “第一名” return name;}; //取值
set; //給值
}
Public string Speak(string content){return name+”講了”+content;}
Response.write(speak);
方法分為(不傳參數與傳參數)
/// 教人如何使用你建構的物件
###37OO_Person.aspx.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ASPnet.App_Code;
namespace ASPnet
{
public partial class _37OO_Person : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//Random r = new Random();
TextBox tb = new TextBox();
//TextBox tb2 = new TextBox();
//TextBox tb3 = new TextBox();
//TextBox tb4 = new TextBox();
//TextBox tb5 = new TextBox();
Person Mary = new Person();
//Response.Write(Mary.Name);
Response.Write(Mary.Jump());
Person Jason = new Person();
Jason.Name = "Jason Lee";
Jason.Age = -18;
string speak= Jason.Speak("我是一個大帥哥!!");
Response.Write(speak);
////Jason.gender = true;
////Jason.height = 172;
//Jason.weight = 68.5M;
////Jason.name = "Jason Lee";
}
}
}
###App_Code/ Person.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace ASPnet.App_Code
{
public class Person
{
//field
string name= "第一名";
int age;
bool gender;
decimal height;
decimal weight;
//Attibute(屬性)
public string Name
{
get
{
if(string.IsNullOrEmpty(name))
name = "第一名";
return name;
}
set
{
if(!string.IsNullOrEmpty(value))
name = value;
}
}
public int Age
{
get
{
return age;
}
set
{
if (value < 0)
age = 0;
else
age = value;
}
}
public decimal Height
{
get
{
return height;
}
set
{
if (value < 0)
height = 5;
else
height = value;
}
}
public decimal Weight
{
get
{
return weight;
}
set
{
if (value < 0)
weight = 1;
else
weight = value;
}
}
public bool Gender
{
get { return gender; }
set { gender = value; }
}
//方法
//說話(Speak())方法
/// <summary>
/// 請傳入要說的話
/// </summary>
/// <param name="content"></param>
/// <returns></returns>
public string Speak(string content)
{
return name + "講了「" + content + "」";
}
public string Jump()
{
return name + "嚇了一跳!!";
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using ASPnet.App_Code;
namespace ASPnet
{
public partial class _39OO_Polymorphism : System.Web.UI.Page
{
Animal animal;
IAnimalMove imove;
IAnimalSpeak ispeak;
Dog dog = new Dog();
Cat cat = new Cat();
Person person = new Person();
Fish fish = new Fish();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
int flag = 1;
if (RadioButtonList1.Items[0].Selected)
animal = person;
else if (RadioButtonList1.Items[2].Selected)
animal = cat;
if (RadioButtonList1.Items[1].Selected)
{
imove = dog;
ispeak = dog;
flag = 2;
}
else if (RadioButtonList1.Items[3].Selected)
{
imove = fish;
flag = 3;
}
if (flag==1)
{
Label1.Text = animal.Speak();
Label1.Text += animal.Move(5);
}
else if (flag == 2)
{
Label1.Text = ispeak.Speak();
Label1.Text += imove.Move(8);
}
else if (flag == 3)
{
Label1.Text = imove.Move(8);
}
}
}
}