C#1面向对象

最近在学习C#,手边又没有本子,无奈之下就将需要记得东西写在博客上,就当自己的笔记本了。对大家有用就好,没有也不要批我。吐舌头

  在面向对象语言中,封装数据的基本单位是类,用户也可以在C#中自己定义类,其定义方法为:

[访问修饰符] class 类名称[:父类名]

{

[成员修饰符] 类的成员变量或者成员函数;

}

访问修饰符包括public,private、protected、internal、protected internal和partial.

public:表示任何外部的类都可以不受限制地存取这个类的方法和数据成员。

private:表示类中的所有方法和数据成员只能在此类中使用,外部无法存取。

protected:表示除了本身的类可以使用之外,任何继承自此类的子类都可以进行存取。

internal:表示在当前项目中都可以进行存取。该访问权限用于基于组件的开发,这是由于它们可以使组件以私有方式工作,而该项目外的其他代码均无法访问。

protected internal:表示仅限于当前项目进行存取。

partial:表示局部类型,类的定义和实现可以分布在多个文件中,但都需要使用partial进行标注。


类成员包括数据成员、函数成员和嵌套成员。数据成员包括成员变量、常量和事件;函数成员包括方法、构造函数、析构函数、属性、索引器和操作符等。嵌套类型是在类内部定义的类、结构和枚举等。


C#常用的基础类

Convert 类:位于system命名空间下,用于将一个值类型的数据转换成另一个值类型的数据

String类:表示的是一系列不可变的字符。不可变是因为无法直接修改给该字符串分配的堆中的字符串

StringBuilder 类:位于System.Text命名空间下,此类是在原来字符串占用的内存空间上进行处理,可以动态的分配占用的内存空间大小。

DateTime类、TimeSpan类

Math类:位于System命名空间下,为通用数学函数提供常量和静态方法


属性的声明

属性在类模块内是通过一定的方式声明的,即先指定字段的访问修饰符,后跟属性的额类型、属性的名称,最后是声明get访问器和set访问器的代码模块。表示如下:

<span style="font-size:18px;">AccessModifier Type PropertyName
{
	get
	{
		//取值代码
	}
	set
	   {
		//赋值代码
	}

}</span>

如果一个属性只有get语句部分,则不能对其进行赋值操作,所以该属性就是一个只读属性,同样对于一个只写属性,可以采用只提供set方法来实现。


构造函数

构造函数是在类被实例化时需要首先执行的函数,用于完成对象的初始化操作。它的定义与方法的声明类似,但是没有返回值,它的名字必须与它所在的类的名字相同。

在类中声明构造函数时必须指定标识符和构造函数体。通常,构造函数的类型修饰符为public类型。若是private类型,则表示该类不能被实例化,且用于只含有静态成员的类中。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace gouzao
{
    public class gouzao
    {
        public int salary;
        public gouzao(int daysalary)
        {
            salary = daysalary * 290; //计算日薪
        }
        public gouzao(int weeklySalary, int weeks)
        {
            salary = weeklySalary * weeks; //计算周薪
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            gouzao p = new gouzao(1000);
            System.Console.WriteLine("员工日薪:{0}", p.salary);
            gouzao f = new gouzao(500,52);
            System.Console.WriteLine("员工周薪:{0}", f.salary);
            Console.ReadKey();
        }
    }
}

析构函数 

析构函数是在类被删除之前最后执行的函数,用来释放被类实例所占用的资源,一个析构函数的表示方法为:

class Book

{

...

~Book()

{

Console.WriteLine("Book 已经被删除");

}

}

析构函数是自动调用的,没有修饰符,也不带参数。一个类中有且只有一个析构函数,无法进行重载。


命名空间

命名空间包含可在程序中使用的类、结构、枚举、委托和接口,下面是一些常用的命名空间:

System:定义通常使用的数据类型和数据转换的基本.NET类

System.Collections:定义列表、队列和位数组字符串表

System.Data:定义ADO.NET数据库结构

System.Drawing:提供对基本图形功能的访问

System.IO:允许读、写数据流和文件

System.Text:ASC||、Unicode、UTF-7和UTF-8字符编码处理

简单的说就是通过在程序开头包括:using System;则可以使用代码:Console.WriteLine("hello");代替System.Console.WriteLine("hello");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值