----------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------
面向对象有三个过程:封装、继承、多态。
类是抽象的,对象时具体的,对象可以叫类的实例。类之间可以有继承关系。字段field,是类的状态,类不占内存,对象占内存。方法,方法就是类能够和执行的动作。
int、datetime、bool、char等类型都属于值类型(ValueType),赋值的时候是传递拷贝。普通的对象则是引用类型,赋值的时候是传递引用。
异常与异常处理
传统的错误表示方式:错误码。难以看出错误原因,需要知道错误码的含义,如果不处理错误码,则程序陷入不可以预知的错误。
try catch。Exception ex异常也是对象。Exception类只要属性:Message、StackTrace。发生异常后程序默认就退出了,后续代码不会被执行。Catch以后的代码则会继续执行。不要吃掉异常,抛出自己的异常。
常量与静态成员
Const 常量。常量需要大写,一定不会变化的值才能声明为常量。
全局变量:static类变量。
不用new就能够用的方法:static方法,static方法其实就是普通的函数。在static方法中可以调用其他static成员,但不能调用其他static成员,在非static方法中可以调用static成员。
静态类,不能够被new的类就是静态类,静态类一般来实现一些库函数。如SqlHelper、PageHelper等。
命名空间:
Namespace(命名空间),用来解决类重名的问题,可以看做类的文件夹,可以修改默认的namespace。在代码中使用其他类的时候需要using类所在的namespace。如果代码和使用的类在一个命名空间,则不使用using
类使用实例代码:
class program
{
Static viod Main(string[] args)
{
Person p1=new Person();
P1.Name=”tom”;
P1.Height=180;
P1.Age=30;
P1.SayHello();
Console.ReadKey();
}
}
class Person //声明一个person类
{
public int Height;
public int Age;
public string Name;
public viod SayHello()
{
Console.WriteLine(“大家好,我叫{0},我的身高是{1},我的年龄是{2}”,this.Name,this.Height,this.Age);
}
}
字段、方法、属性都可以叫做类的成员Merber,他们都需要定义访问级别,访问级别的用处在于控制哪些地方可以被访问,正阳达到面向对象中“封装”目的。Public(任何地方都可以访问),private(默认级别,只能由本类中成员访问)。属性开头字母大写,字段开头字母小写。
练习:聊天机器人
namespace 聊天机器人
{
class program
{
Static void Main( string[] args)
{
机器人 r1=new 机器人();
r1.Name=”小I”;
r1.Eat(5);
r1.SayHello();
while(true)
{
String str=Console.ReadLine();
r1.Speak(str);
}
Console.ReadKey();
}
}
Class 机器人
{
Public string Name{get;set}
Private int FullLevel{get;set}
Public void SayHello()
{
Console.WriteLine(“我叫:{0}”,Name);
}
}
Public void Eat(int foodcount)
{
If(FullLevel>100)
{
return;
}
FullLevel=FullLevel+foodCount;
}
Public void Speak(string str)
{
if(FullLevel<=0)
{
Console.WriteLine(“饿死了,不说了”);
return;
}
if (str.Contains(“姓名”)||str.Contains(“名字”))
{
this.SayHello();//类的方法调用同类的另外一个方法
}
else if(str.Contains(“女朋友”))
{
Console.WriteLine(“年龄小,不考虑!”);
}
else
{
Console.WriteLine(“听不懂”);
}
FullLevel--;
}
}
构造函数:
构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。构造函数是用来创造函数的特殊对象,函数名类名一样没有返回值,连void都不用。构造函数可以没有参数,new对象的时候传递函数参数即可。构造函数可以重载,也就是有多个参数不同的构造函数。如果不指定构造函数,则类有一个默认的无参构造函数。如果制定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需自己写。
构造函数实例:
namespace 构造函数
{
class program
{ static void Main(string[] args)
{
Person p1=new person();
Person p2=new person(“tom”);
}
}
Class person
{
public person()
{
}
Public person(string name)
{
}
}
}
继承:定义类的时候不指定父类,则父类是Object类。Object类是任何类的直接或间接父类。
继承实例:
namespace 继承
{
class program
{
Static void Main(string[] args)
{
中国人 c1=new 中国人();
C1.Name=”李小龙”;
C1.SayHello(); //子类可以调用父类的方法
Console.ReadKey();
}
}
class person
{
Public string Name{get;set}
Public int Age{get;set}
Public void SayHello()
{
Console.WriteLine(“{0}”,this.Name);
}
}
Class 中国人:Person //指明中国人的父类是person类
{
}
}
索引器:
C#中提供了按照索引器进行访问的方法。定义索引的方式:string this[int index]{return”’;}set{},string为索引器的类型,[]中是参数列表。进行索引器写操作就是调用set代码块,在set内部使用value得到用户设置的值;进行读操作就执行get代码块。索引器可以不只一个,类型也不只int,几乎可以是任意类型。
---------------------- Windows Phone 7手机开发、.Net培训、期待与您交流! ----------------------