天天看點

asp.net

一、封裝

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

/// <summary>

///Class1 的摘要說明

/// </summary>

public class Calculator

{

public Calculator()

{

//

//TODO: 在此處添加構造函數邏輯

}

public abstract class Calculator

public abstract double But(double a, double b);

public class Add : Calculator //接口法運算

public override double But(double a, double b) //重寫

{

double result = 0;

result = a + b;

return result;

}

public class Sub : Calculator

public override double But(double a, double b)

result = a - b;

public class Mul : Calculator

result = a * b;

public class Div : Calculator

result = a / b;

public class Every //定義運算符

private Calculator calculate = null; //執行個體化一個基類的引用對象

public Every(Calculator ca) //calculator為派生類的一個對象

this.calculate = ca; //把派生類的對象賦給基類的引用對象

public double But(double a, double b, String c)

return this.calculate.But(a, b); //傳回計算結果

}

 二、背景代碼

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page

protected void Page_Load(object sender, EventArgs e)

protected void Button1_Click(object sender, EventArgs e)

string c = DropDownList1.SelectedItem.ToString();

double a = Convert.ToDouble(TextBox1.Text);

double b = Convert.ToDouble(TextBox2.Text);

Every every =null;

if (DropDownList1.SelectedIndex == 1)

{

every = new Every(new Add());

}

else if (DropDownList1.SelectedIndex == 2)

every = new Every(new Sub());

}

else if (DropDownList1.SelectedIndex == 3)

{

every = new Every(new Mul());

else if (DropDownList1.SelectedIndex == 4) {

every = new Every(new Div());

string answer = every.But(a, b, c).ToString();

string result = TextBox1.Text + DropDownList1.SelectedItem.ToString() + TextBox2.Text;

if (TextBox3.Text == answer)

Response.Write("<script>alert('回答正确!')</script>");

ListBox1.Items.Add(result + "=" + TextBox3.Text.Trim());

else

Response.Write("<script>alert('答題錯誤!')</script>");

ListBox1.Items.Add(result + "=" + TextBox3.Text.Trim());

TextBox1.Text = "";

TextBox2.Text = "";

TextBox3.Text = "";

}

 三、實作

asp.net
asp.net

總結:做了這兩次作業我總結出來面向對象程式設計,并不是類越多越好,類的劃分是為了封裝,但分類的基礎是抽象,具有相同屬性和功能的對象的抽象集合才是類。

總體感受就那麼多,其實還是對這些模式不熟悉不了解,還要好好學