您的位置:首页 > 职场人生

黑马程序员--面向对象(二)

2012-05-03 16:10 190 查看
------------------
Windows Phones 7手机开发、.Net培训、期待与您交流! ----------------------

面向对象-----类

(1)在类定义中,也提供了该类中所有成员的定义,包括字段、方法和属性,所有的成员都有自己的访问级别,下面的关键字之一来定义:

最后两个关键字可以合并使用,所以也有protected internal成员。它们只能由项目中派生的代码来访问。

字段、方法和属性都可以使用关键字static来声明,这表示它们是类的静态成员,而不是对象实例的成员。

属性字段可以访问对象中包含的数据,这个对象数据可以用于区分不同的对象,因为同一个类的不同对象在属性和字段中存储了不同的值。

<1>字段

在asp.net中,公共字段以PascalCasing形式来命名,而不是camelCasing。这里使用这种命名方法,。

字段用来存储与类有关的数据,字段是与类相关的变量。

字段和变量的区别:直接在类中的数据成员为字段,他用访问修饰符和数据类型类定义

(public string name;),字段就像类的一个小数据库,用来存放与类相关的数据;而单纯的变量是没有修饰符的(int age;),他不能直接在类里面定义,只能在函数里面定义,他用来作为方法的一个临时变量。

字段也可以使用关键字readonly,表示这个只读字段只能在执行构造函数的过程中赋值,或由初始化赋值语句赋值。

Class MyClass

{

Public readonly int MyInt=12;

}

<2>.属性的定义

属性用来隐藏字段,提高字段的安全性。

属性拥有两个类似于函数的块,一个块用于获取属性的值,另一个块由于设置属性的值,

这两个块也称为访问器,分别用get和set关键字来定义,可以用于控制对属性的访问级别。可以忽略其中的一个块来创建只读或只写属性(忽略get块创建只写属性,忽略set块创建只读属性)。还可以将set设置为受保护的,get设置成公共的。属性至少要包含一个块,才是有效的。

Get块必须有一个属性类型的返回值。简单的属性一般与一个私有字段相关联,以控制对这个字段的访问,此时get块可以直接返回该字段的值。

Private int myInt;//一个字段

Public int MyIntProp//一个属性

{

get { return myInt;}

set {myint=value;}

//value等于类型于属性相同的一个值,所以如果属性和字段使用相同的类型,就不必担心数据类型转换了。

}

注:属性可以使用virtual,override和abstract关键字,就像方法一样,但这几个关键字不能用于字段。

public class person //定义基类

{

private string name;

private string adress;

public string Name

{

get { return name; }

set {name = value; }

}

public string Adress

{

get{return adress; }

set{adress = value; }

}

public void print()

{

Console.WriteLine("姓名: " + Name + "\n" + "地址" + Adress);

}

}

public class Student:person //继承person类

{

private string studentId; //定义一个字段

public string StudenId//定义一个属性

{

get{return studentId; }

set{ studentId = value; }

}

public void print1()//定义一个方法,但是不能和基类的方法重名哦!如果和基类的重名了,那么会把基类的方法给隐藏掉。如果真的想隐藏掉基类的方法,那么可以在前面加一个new关键字。

{

Console.WriteLine("学号" + StudenId+"\n");

}

}

public class Professor:person

{

private string title;

public string Title

{

get{ return title; }

set{title = value; }

}

public void print1()

{

Console.WriteLine("官位 " + Title);

}

}

class Program

{

static void Main(string[] args)

{

Student s = new Student();

s.Name = "报文";

s.Adress = "云南农业大学";

s.print();//调用基类中的方法;

s.print1();//调用自己类中的方法;

Professor p = new Professor();

p.Title = "教授";

p.Adress = "大学";

p.print();

p.print1();

Console.Read();

}

}

------------------
Windows Phones 7手机开发、.Net培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: