面向对象不是取代面向过程的
类、对象。"人"是类,"张三"是人这个类的对象。
类是抽象的,对象是具体的。按钮就是类,某个按钮就是对象。对象可以叫做类的实例。类就像int,对象就像10.字段field(和某个对象相关的变量),字段就是类的状态。人这个 类有姓名、年龄、身高等字段。类不占内存,对象才占内存。
方法:方法就是累能够执行的动作,比如问好、吃饭等。
类的继承,类之间可以有继承关系,比如电脑类可以从"
电器"类继承,这样的好处是"电脑"类只需要定义自己特有的字段、方法就可以,也就是只要定义了内存大小,cpu型号这些字段或者弹出光驱等方法 就可以。父类。基类。电脑类是电器类的子类。重用。
面向对象的三个特征:封装、继承、多态。
没有现象对象的世界中的难题。

成员访问级别
字段、方法、属性都可以叫做类的成员,他们都需要定义访问级别。访问级别的用处在于控制成员在哪些地方可以被访问,这样达到面向对象中"封装"的目的
几个访问级别:public(任何地方都可以访问);privae(默认级别。只能由本类中的成员访问)。还有internal/protected两个级别,以后会讲。
class Person{

private string Name;

public void GiveName(string name){
Name=name;//拒绝不好听的名字
}

public void SayHello(){
Console.WriteLine("你好,我是{0}",Name);
}

}

Person tom=new Pewson();
tom.GiveName("tom");
//tom.Name="tom";
tom.SayHello();

永远不要把字段public

属性
惯用法:属性开头字母大写,字段开头字母小写
class Person
{
private int age;

public int Age
{
get{return age;}
set{age=value;}
}

public void SayHello()
{
Console.WriteLine("我的年龄是{0}",Age);
}
}
只用set或者只用get就可以定义只读或者只写属性(只写的不常见)
可以为set、get设置访问级别
例子,限制非法值的设置
字段和属性的区别是什么?属性看似字段、不是字段,可以进行非法值控制,可以设置只读。
set/get块内部其实就是get_***/set_***方法。

面向对象04
面向对象版聊天机器人
机器人呢有不同的名字、维护自己的FullLevel,可以SayHello(我叫***),可以喂食(Eat(int foodCount)),可以对它说话(Speak),对异常情况(错误的喂饭数字,喂得太多会撑死了)进行处理,有两个机器人供选择,一开始通过1、2数字选择聊天机器人。

Reflector 反编译器在vs的什么地方,怎么找不到呀?

面向对象编程基础8 构造函数
构造函数用来创建对象,并且可以在构造函数中对对象进行初始化
构造函数式用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。
构造函数可以有参数,new对象的时候传递函数参数即可
构造函数可以重载,也就是有多个参数不同的构造函数。
如果不指定构造函数,则类有一个默认的无参构造函数。
如果指定了构造函数,则不在有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。

面向对象编程基础10 继承

public class Chinese Person
{
public string HuKou{get;set;}
public void KongFu(){......}
}
Chinese p1=new Chinese();
p1.Name="李雷";
p1.HuKou="北京朝阳区";
p1.SayHello();
p1.KongFu();
定义类的时候不指定父类,则父类是Object类,Object类是任何类
的直接或者间接父类。

异常与异常处理
传统的错误表示方式:错误码。举例。需要知道不同错误码的含义,如果不处理错误码,则程序可能陷入不可以预知的错误。
错误码的缺点::不处理则很难发现,每次处理则很麻烦;
难以看出错误的原因;容易使得程序进入不确定状态。
try catch.Exception ex异常也是对象。
Exception 类主要属性:Message/StackTrace
发生异常后程序默认就退出了,后续代码不会执行。
catch以后的代码则会继续执行。
不要吃掉异常
扔出自己的异常

常量与静态成员
Const常量。常量名要大写。一定不会变的声明成常量。
全局变量。static类变量。
不用new就能用的方法:static方法,static方法其实就是普通函数。
在static 方法中可以调用其他static方法、字段、属性。在非static方法中可以调用static的方法、字段。
静态类,不能被new的类就是静态类。静态类一般用来实现一些
函数库。***Helper,SqlHelper,PageHelper

命名空间
namespace(命名空间),用于解决类重名问题,可以看做"类的文件夹"
在代码中使用其他类的时候需要using类所在的namespace.
System.Collections.ArrayList,快速引入的方法,右键--->解析

为什么使用Convert/Console等类不需要自己写using?
如果代码和被使用的类在一个namespace则不需要using.
可以修改默认的namespace,因此不要认为在相同文件夹下就不用using,不在相同文件夹下就需要using.

索引器
C#中提供了按照索引器进行访问的方法
定义索引器的方式:string this[int index]{get{return "";}
set {}},string为索引器的类型,[]中是参数列表。进行索引器写操作就是调用set代码块,在set内部使用Value得到用户设置的值;进行读操作就执行get代码块。
索引器参数可以不止一个,类型也不限于int,几乎可以是任意类型

C#面向对象基础01的更多相关文章

  1. java基础学习05(面向对象基础01)

    面向对象基础01 1.理解面向对象的概念 2.掌握类与对象的概念3.掌握类的封装性4.掌握类构造方法的使用 实现的目标 1.类与对象的关系.定义.使用 2.对象的创建格式,可以创建多个对象3.对象的内 ...

  2. 081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字

    081 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 06 new关键字 本文知识点:new关键字 说明:因为时间紧张,本人写博客过程中只是 ...

  3. 080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则

    080 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 05 单一职责原则 本文知识点:单一职责原则 说明:因为时间紧张,本人写博客过程中只是 ...

  4. 079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象

    079 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 04 实例化对象 本文知识点:实例化对象 说明:因为时间紧张,本人写博客过程中只是对知 ...

  5. 078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类

    078 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 03 创建类 本文知识点:创建类 说明:因为时间紧张,本人写博客过程中只是对知识点的关 ...

  6. 077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象

    077 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 02 类和对象 本文知识点:类和对象 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  7. 076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学

    076 01 Android 零基础入门 02 Java面向对象 01 Java面向对象基础 01 初识面向对象 01 Java面向对象导学 本文知识点:Java面向对象导学 说明:因为时间紧张,本人 ...

  8. python面向对象基础-01

    面向对象(OOP)基本概念 前言 话说三国时期曹军于官渡大败袁绍,酒席之间,曹操诗兴大发,吟道:喝酒唱歌,人生真爽! 众将直呼:"丞相好诗",于是命印刷工匠刻板印刷以流传天下; 待 ...

  9. java基础学习05(面向对象基础01--类实例分析)

    面向对象基础01(类实例分析) 实现的目标 1.如何分析一个类(类的基本分析思路) 分析的思路 1.根据要求写出类所包含的属性2.所有的属性都必须进行封装(private)3.封装之后的属性通过set ...

随机推荐

  1. Index & Statistics ->> Rebuild Index会不会覆盖原先Index的WITH选项设置

    昨天因为工作中遇到要对某个数据库的表通通启用data_compression,突然有个念头,就是如果我当初用"ALTER INDEX XXX ON YYY REBUILD WITH (DAT ...

  2. Lantern免费使用教程【转】

    转自:http://www.mfbuluo.com/13710.html 自从谷歌去年退出中国后,可能是意识到中国市场的潜力,所说这款Lantern免费的软件,背后有谷歌的资助,这一点部落无法肯定. ...

  3. dojo 二 AMD模块

    可参考官方教程:http://dojotoolkit.org/documentation/tutorials/1.7/hello_dojo/教程里主要定义了两个方法,setText设置文本内容和res ...

  4. 10.10 dos实验

    一. 实验目的 (1)认识DOS: (2)掌握命令解释程序的原理: (3)掌握简单的DOS调用方法: (4)掌握C语言编程初步. 二. 实验内容和要求 编写类似于DOS,UNIX的命令行解释程序 (1 ...

  5. tc srm 636 div2 500

    100的数据直接暴力就行,想多了... ac的代码: #include <iostream> #include <cstdio> #include <cstring> ...

  6. android 启动第三方程序的代码

      //启动媒体库 Intent i = new Intent(); ComponentName comp = new ComponentName("com.android.camera&q ...

  7. XE4 IOS开发环境配置

    l 配置IOS的安装开发环境 使用RAD XE4开发IOS程序,一台MAC是必须的(也可以用虚拟机), MAC上需要安装Xcode, 独立版本的Commnand Line Tools 以及RAD的pa ...

  8. 五款好玩又好用的Linux网络测试和监控工具

    五款好玩又好用的Linux网络测试和监控工具 [51CTO精选译文]在这篇介绍几款Linux网络测试实用工具的文章中,我们使用Bandwidthd.Speedometer.Nethogs.Darkst ...

  9. UVA 11865 Stream My Contest 组网 (朱刘算法,有向生成树,树形图)

    题意: 给n个点编号为0~n-1,0号点为根,给m条边(含自环,重边),每条边有个代价,也有带宽.给定c,问代价不超过c,树形图的最小带宽的最大值能达到多少? 思路: 点数才60,而带宽范围也不大,可 ...

  10. 工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别

    工作流Activiti5流程变量 任务变量 setVariables 和 setVariablesLocal区别 因为网上的资料比较少.结合源码把相关API写下来. 设置流程级别变量: runtime ...