黑马程序员 C#面向对象基础知识点

----------------------<ahref="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a><ahref="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

C#面向对象

 

面向对象

 

· 面向对象不是取代面向过程。

类,对象

类是抽象的,对象是具体的,“人”是类,“张三”是“人”这个类的对象。按钮是类,某个按钮就是对象。对象可以叫做类的实例。类就像int,对象是10.

字段

   和某个对象相关的变量,字段就是类的状态。人这个类有姓名、年龄、身高等字段,类不占内存,对象占内存。

方法

类能够执行的动作,比如问好,吃饭等。

类的继承

类之间可以有继承关系,比如“电脑”类可以从“电器”类继承,这样的好处是“电脑”类只需要定义自己特有的字段,方法就可以,也就是只要定义内存大小,CPU型号这些字段或者弹出光驱等方法就可以。

父类、基类

     电脑类是电器类的子类,反之是父类。

     基类(可翻译成基业,祖宗十八代传下来的)子类到父类到更高一层。

面向对象的三个特征:封装,继承,多态。

 

 

 

定义类

 

语法:

Class 类名

{

 

}

     与已有的类平行,建好之后在大括号中定义类的字段,方法。

类中以public为类型所写的字段,方法,和属性,在其他平行类中都可调用。

 

 

成员访问级别

 

字段、方法、属性都可以叫类的成员,它们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中“封装”的目的。

访问级别

Public (任何地方都可以访问)

Private (默认级别,只能本类成员访问)

还有internalprotected

 

 

 

属性

   惯用法:属性开头字母大写,字段开头字母小写。

Class person

{

   Privateint age;

   Publicint Age;

   {

      Set{age=value;}  //赋值(用户赋的值)

      get{return age;}  //取值

}

Public void sayhello()

{

   Console.writeLine(“我的年龄{0}”age);

}

}

 

   属性可以进行非法值的判断。

   属性中可以直有set或只有get,当这种情况出现的时候就叫做只读属性。

定义属性时,可以只写

        Set

        get

 因为编译器自动帮我们生成私有字段和setget代码块。

 

 

对象的引用

 

int i=10

int j=i

i++

得出 j=10

 

Person p1=new person(10)

      P2=p1

      P1++

得出 p2=11

 

 

Intdatetimeboolchar等类型都属于值类型,赋值的时候是传递。

普通对象则是引用类型,赋值的时候是传递引用。

函数也是引用传递

 

 

 

 

构造函数

 

·构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。

 

·构造函数可以有参数,new对象的时候传递函数参数即可

 

·构造函数可以重载,也就是有多个参数不同的构造函数

 

·如果不指定构造函数,则类有一个默认的无参构造函数,如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。

 

   作用:构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。

 

 

 

继承

 

语法:

Class 类名:父类名

{

}

 

   父类中的属性、方法,子类都可以使用,子类中也可以创建新的属性,方法。

 

   一个类也可以有多个类,当父类中新建一个属性,这个类的所有子类都可以使用该属性。

   Object类是所有类的基类。没有指定父类那么父类就是object

 

异常与异常处理

 

·传统的错误表示方式:错误码。

      错误码需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预置的错误。

·错误码的缺点:不处理则很难发现,每次处理则很麻烦;难以看出错误的原因;容易使得程序进入不确定状态。

·try-catch    Exception ex  异常也是对象。

·Exception类主要属性:message(错误信息)、stackTrace(异常堆栈)

·发生异常后程序就默认推退出了,try代码块中的后续代码不会被执行。Catch以后的代码则会继续执行。

·不要吃掉异常,一般情况下不需要处理异常。

·扔出自己的异常,仍:throw,抓住:catch

 

 

 

 

常量与静态成员

 

常量就是不变的变量。

在方法中生命表变量,程序易读,一个地方变了所有地方都变了,当你需要这个值不做任何变化时,就把它声明成常量。

 

Public const 不用new一个类就可以直接调用

 

 

静态成员

 

     不需要new的字段直接可以调用的就是静态成员。

·全局变量。Static类变量。静态变量就是全局变量。

·不用new就能用的方法:static方法,static方法其实就是普通函数。

·在static方法中可以调用其他static成员,但是不能调用非static成员。在非static方法中可以调用static成员。

·静态类,不能被new的类就是静态类。

 

 

命名空间

 

·namespace(命名空间)用于解决类重名的问题,可以看做“类的文件夹”

·在代码中使用其他类的时候需要using类所在的namespace System.collections.arraylist,快速引入的方法,右键→解析。

·如果代码和被使用的类在一个namespace则不需要using

·可以修改默认的namespace,因此不要认为在相同文件夹下就不用using,不在相同文件夹下就需要using

 

 

索引器

 

·C#中提供了按照索引器进行的访问

·定义索引器的方式

     Stringthis [int index]

{

Get{return””}

Set{}

}

 

  String为索引器的类型,[]中是参数列表。进行索引器写操作就是调用set代码块,在set内部使用value得到用户设置的值;进行读操作就执行get代码块。

·索引器参数可以不止一个,类型也不限制,几乎可以是任意类型。

----------------------<a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a><ahref="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值