【笔记】《C#大学教程》- 第8章 基于对象的编程

1.类成员的默认访问修饰语是private

using System;

namespace TimeTest1.src
{
    public class Time1:Object
    {
        private int hour;
        private int minute;
        private int second;

        public Time1()
        {
            SetTime(0, 0, 0);
        }

        public void SetTime( int hourValue, int minuteValue, int secondValue )
        {
            hour = (hourValue >= 0 && hourValue < 24) ? hourValue : 0;
            minute = (minuteValue >= 0 && minuteValue < 60) ? minuteValue : 0;
            second = (secondValue >= 0 && secondValue < 60) ? secondValue : 0;
        }

        public string ToUniversalString()
        {
            return String.Format("{0:D2}:{1:D2}:{2:D2}", hour, minute, second);
        }

        public string ToStandardString()
        {
            return String.Format("{0}:{1:D2}:{2:D2} {3}",
                ((hour == 12 || hour == 0) ? 12 : hour % 12),
                minute, second, (hour < 12 ? "AM" : "PM"));
        }
    }
}
using System.Windows.Forms;
using TimeTest1.src;


namespace TimeTest1
{
    class Program
    {
        static void Main(string[] args)
        {
            Time1 time = new Time1();
            string output;


            output = "初始24小时制时间为:" +
                time.ToUniversalString() +
                "初始标准时间为:" +
                time.ToStandardString();


            time.SetTime(13, 27, 6);


            output += "初始24小时制时间为:" +
               time.ToUniversalString() +
               "初始标准时间为:" +
               time.ToStandardString();


            MessageBox.Show(output, "Testing Class Time1");
        }
    }
}


2.一个类可以包含重载构造函数提供多种途径来初始化对象。


3.对类属性的setter getter:

public int Hour
{
    get
    {
        return hour;
    }

    set
    {
        hour = ((value >= 0 && value < 24) ? value : 0);
    }
}


4.析构函数:

~Time1()
{
}

//强制垃圾回收
System.GC.Collect();
//等待垃圾回收完成
System.GC.WaitForPendingFinalizers();


5.静态类成员:

(1). static成员不能访问非static成员, 非static 类成员可以访问static 成员。

(2). static方法没有this引用。

//在A类中定义
private static int count;

public static int Count 
{
    get
    {
        return count;
    }
}

//调用
A.Count;

6.const 和readonly

(1). const成员默认为static 类型因此不需要额外添加static声明,const成员必须在声明时初始化;

(2). readonly成员可以在类构造函数中初始化,不能在初始化之前调用;

(3). 在构造函数中初始化一个static readonly成员时,必须使用static 构造函数;

(4). 二者一旦初始化之后无法修改值。

public const double PI = 3.14159;
public readonly int radius;

public Constants(int radiusValue)
{
    radius = radiusValue;
}

7.索引器:

提供类似数组中括号的索引读写值的方法

private int x = 0;
private int y = 0;

public double this[int index]
{
    get
    {
        return index == 0 ? x : y;
    }
    set
    {
        if (index == 0)
            x = value;
        else
            y = value;
    }
}

public double this[string name]
{
    get
    {
        return name == "x" ? x : y;
    }
    set
    {
        if ("name" == "x")
            x = value;
        else
            y = value;
    }
}


8.通过新建类库项目生成dll提供别的项目引用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值