C#面向对象程序设计基础(1)

(1)抽象与封装
每一个个体称为对象
对象的属性,描述对象的特征
对象的方法,体现对象的行为
抽取出本质的、共性的东西,而忽略一些非本质的、
次要的内容,这就是抽象
由这些个体抽象出来的就是类,它代表一类事物
类与对象之间的关系就是抽象与具体的关系,对象是类的实例

封装就是把数据表现形式和对数据的操作细节隐藏起来,用户通过接口对数据进行操作,而不必知道数据表达、数据操作的细节
行为和属性封装在类的内部,用户只能通过接口操作类内部的数据
(2)类
(2.1)定义类

类修饰符  class  类名
{
   类体
}

其中类修饰符是不必须的,类体用于定义类的成员,包括数据成员、成员函数

class Complex
{
//数据成员
 private double real;
 private double img;
//成员函数
 public Complex(double r,double i)
 {
   real=r;
   img=i;
 }
 public double Abs()
  {
   double val=real*real+img*img;
   return Math.Sqrt(val);
  }
}

(2.2)类的成员
在这里插入图片描述
(3)对象
因为对象是类的实例化,所以必须先由类创建对象,即类的实例化,然后再使用
(3.1)创建对象

类名 对象名=new 类名(参数)

Goods cloth=new Goods(10);

也可以分为两个部分

Goods cloth;
cloth=new Goods(10);

在创建对象时,必须使用构造函数。构造函数是一类特殊的成员函数,主要用于为对象分配空间,完成初始化工作。
格式如下:

访问修饰符 类名(形参列表)
{
 函数体
}

public Goods(int s)
{
 SNO =s;
 count++;
}

构造函数
①须与类名相同
②可带参数,为类的数据成员赋初值
③无返回值,不能有return语句
④在创建对象时自动调用,不需要再程序中显示调用
⑤若不定义构造函数,编译系统会自动生成默认的构造函数
⑥可被重载,不可被继承

析构函数也是特殊的成员函数
格式为:

~类名()
{
 函数体
}

~Person()
{
 
}

析构函数
①名字与类名相同,前面加~
②不能带参数
③无返回值
④撤销对象时,自动调用

⑥不能被继承,也不能被重载
(3.3)使用对象
先创建后使用,先用new运算符创建对象,然后使用“.”运算符访问对象中的成员,访问形式:

对象名.数据成员
对象名.成员函数

Course computer=new Counse(123,"面向对象程序设计",4);
string result=computer.Display(); 

(4)字段与属性
(4.1)字段
字段就是定义变量时声明的变量。字段包括
实例字段(没用static修饰符声明的字段,每个类实例都包含一份单独的字段拷贝)、
静态字段(被static修饰符声明的字段,所有的类实例,共享一个静态字段)、
只读字段(用readonly修饰符声明的字段,是特殊的实例字段,只能在字段声明或构造函数中被赋值,其他地方不能改变)

class Book
{
 public readonly long Isbn;//只读字段
 private string BookName;//实例字段
 private static int Count;//静态字段
}
  • 我的理解:字段就是类体里的数据成员中的变量
    实例字段生命周期为类实例生成到类实例撤销
    静态字段生命周期为类的载入到类的撤销
    (4.2)
    属性用来刻画对象的特征或表示对象的状态,它提供对类或对象的访问。
    如:这个人生身高大约1米7,中等身材,圆脸
    属性与字段的不同在于,属性不允许直接操作类的数据,而字段允许。
    只能通过访问器来操作类的数据,她把读取和修改对象特性的操作与程序代码
    关联起来。
访问修饰符 数据类型 属性名
{
  get {get访问器代码块}
  set{set访问器代码块}
}

public long Isbn
{
 get {return isbn;}//只读属性(等于public long Isbn{get;private set;})
}
public string bookName
{
 get {return BookName;}//读写属性      (等于public string BookName{get;set;})
 set {bookName=value;}
} 
public decinal Price 
{
 get{return Price;}
 set{
        if(value>0)
        price=value;
        }
}
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值