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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值