C#面对对象的基础

C#是一门面对对象的编程语言,面对对象(简称OO,Object-Oriented),是一种编写方式,直接从对象出发(不过这只是编写方式,一样要从整个流程看待需要编写的程序,知道其过程)

万物皆为对象
对象:
对象的属性 认作为对象的一类事物的静态特征
对象的方法 认作为对象的一类事物的动态特征
对象=属性+方法
以上是从面对对象角度出发理解

在C#中存在类的概念,类实例化为对象来使用,实现其功能
类就是具有相同或相似(多态实现)性质对象的抽象,类有属性和方法,在C#具体实现有所差异
声明类:
[访问修饰符] class 类名
{
//类的成员声明,字段(相当于静态特征,也就是所谓的属性);属性(对字段的访问工具);方法;事件(把多个类联系起来)
}
类命名一般大写开头
访问修饰符: 要访问对象的访问权限(在C#中要访问的是类与类的成员)
public,private,internal,Protected,protected internal
作用对象分为两类:
作用于类:其它程序的类 对这个类的访问权限,如:using 命名空间,使用类库里的类
public 最高访问级别,对所有程序可见
private 最低访问级别,只用本程序可访问
internal 同一程序集中可访问
作用于类的成员:其它类 对这个类的成员的访问权限
public 所有类都可以访问
private 本类才可以访问
internal(内部的) 同一程序集里的类(本类和其他类)可以访问
Protected 本类或派生类访问
Protected internal (internal与Protected的结合)派生类或同一程序集的类才可以访问
相当于一个保险箱,先知道保险箱的位置(对类的访问),输入密码拿取里面的东西(对类成员的访问)
class不加修饰符,默认为internal
类成员不加修饰符,默认为private
接口没有显示的修饰符,接口与其成员默认为public

部分类:把一个类分成两个类,类名相同,访问修饰符一致,不能有同名元素
关键字 partial

    public partial class Student
    {
        public string a;
    }
    public partial class Student
    {
        public string b;
    }

创建对象:
类名 对象名=new 类名(构造函数的参数列表);
eg: Cat c=new Cat();;

类的成员:
1.字段
访问修饰符 数据类型 字段名;
2.属性
属性是字段的一种自然扩展,是访问字段的工具
属性通过get访问器的return读取字段的值
通过set访问器的value设置字段的值

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

自动属性:
可自动生成字段

public string Age { get; set; }

索引器:
是一种特殊的属性,索引器引用的不是字段变量,而是数组
只能应用于数组这种有序序列,集合这种有序序列无法使用,因为索引值大小超过了集合大小

        static void Main(string[] args)
        {
            DayArray d = new DayArray();
            d[0] = "Sunday";//把对象直接作为属性来使用,this指针直接引用当前对象
        }
    }

    class DayArray
    {
        string[] day = new string[7];
        public string this[int i] //this指针 下标值
        {
            get { return day[i];} //数组名字
            set { day[i] = value; }
        }
    }

3.方法(函数)
构造函数:
在类实例化时一定会执行的方法,用于类的初始化。
不显示声明构造方法,编译器会自动为类声明一个空的构造方法。
构造函数必须与类名同名
构造函数没有返回值
构造函数可以重载,为初始化类提供不同的方法
访问修饰符 类名(参数列表)
{
}
构造方法分两种:
默认构造函数:不带参数
不是默认构造函数:带参数
析构函数:
用于在对象生命周期结束时,执行释放内存空间,回收以分配资源
没有参数,没有修饰符,不能重载(只有一个)
~ 类名()
{
}

类的成员分两种:
静态成员:归类所有,使用static关键字修饰,指向同一个存储位置,静态成员时共享的
动态成员(实例成员):归对象所有,不使用static关键字修饰,不指向同一个存储位置,每次创建新的对象,都会创建新的地址,动态成员一旦随着对象创建以后,每次修改值都互不影响

在类的内部
实例方法可以访问实例成员,可以访问静态成员
静态方法只能访问静态成员

在类的外部
类名.静态成员
对象名.动态成员

this指针:指向当前正在执行的类的实例对象
静态方法不能使用this指针,因为静态成员不属于某个具体对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值