ASP.NET.2.0.in.C.Sharp.2005.From.Novice.to.Professional的读书笔记[5]

CHAPTER3 Types,Objects,and Namespaces

The Basics About Classes

类之间是依据三个重要的因素相互联系的.

属性:你可以通过属性访问一个类的数据,有些数据是只读的,有些则是可读写的.
方法:方法是对类的操作,与属性不同的是,方法产生的一系列动作会改变类的状态。
事件:事件则是,当某个动作发生或某个属性改变的时候,对应的操作.

除此之外,类有着他自己私有的数据,以及外部可以访问的数据,类看上去就象是一个黑盒,你只需要知道怎么使用他,而不需要知道他是怎么工作的,但你必须得知道类中的属性,事件,及方法,这些就是组成类的成员.

Static Members

DateTime myDate = DateTime.Now;//定义一个DateTime对象,并将现在的系统时间赋值给他.
myDate = myDate.AddDays(1);//在对这个对象进行修改时,必须使用对象的名字,因为AddDays()是instance方法.
myDate = DateTime.AddDays(1);//这样写是无意义的,AddDays()是无法用static方法进行调用的.

在前面所讲到的MATH类的方法中有些是static有些是instance.例如Math.Sqrt(81)是static.

A Simple Class
类的定义有着自己的结构.如
public class MyClass
{
   //类的代码.
}

Building a Basic Class

public class Product
{
    private string name;
    private decimal price;
    private string imageUrl;
}//定义了一个类,这个类中用来存放产品的名字,价格,以及图片的Url地址.
建立类,类成员需要用到的关键字,public能够被任何的类访问,private只能被自己的类访问,internal只能被此程序的所有的代码访问,protected只能被自己的类或者继承此类的类访问,protected internal只能被此程序访问或继承他的类访问.(这里关于这几个关键字写的不是很清楚,建议大家看看VC++的书籍,和这是一模一样的,这里一定理解清楚,不然以后对类里面属性的访问会存在很多问题.)

Creating a Live Object

书中所举例子中加入了最后一行,saleProduct =null;的作用是清楚内存中的内容,而实际上此行是不需要的,因为当程序运行完了之后,垃圾回收运行机制就会启动,会自动执行与此行相同的功能.

Adding Properties

在添加属性之前,是无法使用类他的,上面的代码虽然已经添加了,但VS2005中可以看到他们是在field里面的,如果要使用他们还需要进行如下操作.
public class Product
{
    private string name;
    private decimal price;
    private string imageUrl;

    public string name
    {
        get
        { return name; }
        set
        { name = value;}
    }

    public decimal price
    {
        get
        { return price; }
        set
        { price = value; }
    }

    public string imageUrl
    {
        get
        { return imageUrl; }
        set
        { imageUrl = value; }
    }
}

现在如果你建立Product的对象的话,可以使用saleProduct.name = "Kitch Carbage";语句了,哇塞,示例代码中一个厨房用的垃圾桶要50刀,我可买不起啊.400RMB,可真够贵的,资本主义的垃圾桶都比社会主义国家的垃圾桶要好,天理何在啊.

Adding a Basic Method

这个是要我们来构建一个函数,他有许多效用.

public class Product
{
.............

    public string GetHtml()
    {
        string htmlString;
        htmlString = "<h1>" + name + "</h1><br />";
        htmlString += "<h3>Costs:" + price.ToString() + "</h3><br />";
        htmlString += "<image src=" + imageUrl + ">";
        return htmlString;
    }
}

Adding a Constructor

建立一个初始化函数,当建立类的对象的时候,可以对对象进行实例化,还有其他的作用哦.如果你不建立初始化函数,那么.NET会自动建立一个什么都不干的初始化函数.

public class Product
{
.............

    public string GetHtml()
    {
        string htmlString;
        htmlString = "<h1>" + name + "</h1><br />";
        htmlString += "<h3>Costs:" + price.ToString() + "</h3><br />";
        htmlString += "<image src=" + imageUrl + ">";
        return htmlString;
    }
    public Product(string name,decimal price)
    {
        this.name = name;
        this.price = price;       
    }//初始化的时候要调用两个参数,将这两个参数分别赋值给自己类的成员name 和 price.
}

Adding a Basic Event

此处关于在类中建立响应事件,由于没有很好的例子,很难理解,也很难记住这个.不过我找到了 http://www.yesky.com/SoftChannel/72342380468109312/20040220/1770096.shtml 这里面对事件的使用有比较详细的讲解,但是要真正的去理解事件机制,还是需要自己动手和自己去看源代码才行.

Testing the Product Class

测试这个网页,在CHAPTER3的文件夹中,我发现添加域的同时还可以添加属性,可以让他们之间相互关联,这要慢慢的体会了.本人测试通过,全部手写,也完全理解了,建立类,定义类的域,定义类的属性,建立构造函数,在类中添加函数,现在发现类真的很秒.奇妙.
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值