------------------ 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培训、期待与您交流! ----------------------