面向对象不是取代面向过程的
类、对象。"人"是类,"张三"是人这个类的对象。
类是抽象的,对象是具体的。按钮就是类,某个按钮就是对象。对象可以叫做类的实例。类就像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. Iterator的remove方法可保证从源集合中安全地删除对象(转)

    如果对正在被迭代的集合进行结构上的改变(即对该集合使用add.remove或clear方法),那么迭代器就不再合法(并且在其后使用该迭代器将会有ConcurrentModificationExcept ...

  2. 不带缓存的I/O和标准(带缓存的)I/O

    首先,先稍微了解系统调用的概念:       系统调用,英文名system call,每个操作系统都在内核里有一些内建的函数库,这些函数可以用来完成一些系统系统调用把应用程序的请求传给内核,调用相应的 ...

  3. dojo 总结

    对以前项目中用到的dojo框架进行一个框架式的总结,以备参考学习. 主要组成... 1 开发注意... 3 Dojo代码约定... 3 Dojo形式的脚本库... 4 Dojo Build. 4 Do ...

  4. C# 中通过API实现的打印类

    using System;using System.Collections;using System.Text;using System.Runtime.InteropServices; using ...

  5. jsp+servlet+jquery 用jquery uploadify最新版本实现多文件上传

    //这是script代码 <link rel="stylesheet" type="text/css" href="uploadify/uplo ...

  6. Java中的public、protected、default和private的区别

    (1)       对于public修饰符,它具有最大的访问权限,可以访问任何一个在CLASSPATH下的类.接口.异常等.它往往用于对外的情况,也就是对象或类对外的一种接口的形式. (2)      ...

  7. 关于RotateAnimation的各构造方法的参数

    本文以RotateAnimation的构造方法 讲解. RotateAnimation(float fromDegrees, float toDegrees) 其他构造器的旋转也可参考这副图. Rot ...

  8. Android eMMC Booting

    Android eMMC Booting Contents [hide] 1 eMMC binaries 1.1 Creating the GPT table 1.2 Modifying .IMG F ...

  9. 注意map<> 的[]

    其实在之前一篇关于map的基本操作中已经提到过注意[]操作,这里再强调一下. 先看下面的程序: #include<iostream> #include<map> using n ...

  10. 【Python】如何安装easy_install?

    [Python]如何安装easy_install? http://jingyan.baidu.com/article/b907e627e78fe146e7891c25.html easy_instal ...