第4章 C#面向对象程序设计
食品感官评价 C 第4章 感官评定的方法分类及标度

35
标度(Scale)定义:
报告评价结果所使用的尺度。它是由顺序相连的 一些值组成的系统。这些值可以是图形的,描述的或 数字的形式。 ---中华人民共和国国家标准 感官分析方法学 使用标度评价食品GB/T 16290-1996
2015-1-10
36
一、数字对感官的实际应用
实际上,在感官评定中,标度方法就是感官体验的量 化方式,通过这种数字化处理,感官评定可以成为基于 统计分析、模型、预测等理论的一种定量科学。 类项评估法; 量值评估法; 线性标度法。 标度方法广泛用于需要量化感觉、态度或喜好倾向 性等各种场合,标度技术基于感觉强度的心理物理学模 型,即增强物理刺激的能量或增加食品组分的浓度或含 量,会导致其在感觉、视觉、嗅觉或味觉方面有多大程 度的增强。
2015-1-10 28
4.分析或描述实验
描述分析性试验是品评员对产品的所有品质特性进 行定性、定量的分析及描述评价。 所有感官特性包括外观、嗅闻的气味特征、口中的 风味特性(味觉、嗅觉及口腔的冷、热、收敛等知 觉和余味)及组织特性(质地)和几何特性(产品 颗粒、形态、及物性等)。 对品评员要求较高。
8
二、常用的感官评定实验方法
1. 差别试验
差别试验只要求品评员评定两个或两个以上的样品 中是否存在感官差异(或偏爱其一) 差别试验 成对比较检验法 二-三点检验法
三点检验法
“A”-“非A”检验 法 五中取二检验法
2015-1-10
9
a成对比较检验法
两个样品的对比测定,最简便的差别检验法 通过反复评定,判断哪个样品达到了产品设计上对 某特性的要求,如对甜度、嫩度、光泽等的要求
2015-1-10
18
适用范围:
C语言第四章.选择结构程序设计

case 常量表达式n: 语句n; default : 语句n+1; }
语句的执行过程:
先计算表达式的值,并逐个与其后的常量表达式值相 比较; 当表达式的值与某个常量表达式的值相等时,即执行
其后的语句;
然后不再进行判断,继续执行后面所有case后的语句;
如表达式的值与所有case后的常量表达式均不相同时,
a+b>c && x+y<b 等价于 ((a+b)>c) && ((x+y)<b)
2)逻辑运算的值: 逻辑运算的值也为“真”和“假”两种,用“1”和“0 ”
来表示。
反过来在判断一个量是为“真”还是为“假”时,以“0” 的数值代表“假”,以非“0”的数值代表“真”。
3)逻辑运算的规则:
(1)与运算&&
条件运算符和条件表达式
条件表达式通常用于赋值语句之中。 例如条件语句:
if(a>b) max=a;
else max=b; 可用条件表达式写为 max=(a>b)?a:b;
执行该语句的语义是:如a>b为真,则把a 赋予max, 否则把b 赋予max。
注意以下几点:
条件运算符的运算优先级 低于关系运算符和算术运算符,高于赋值符。 因此 max=(a>b)?a:b可以去掉括号而写为 max=a>b?a:b
注意:
(3) 在if 语句的三种形式中,所有的语句应为单个语句,
如果要想在满足条件时执行一组(多个)语句,则必须
把这一组语句用{ } 括起来组成一个复合语句。 例如:交换两个变量 if (a>b) { t= a; a=b; b=t; }
习题参考答案(第4章)

a' V XH
a
4-2 用换面法求线段CD的实长和对V面的倾角。
T.CD
d1
c1 d'
X 1 c' X
d
H X1 V1
a1'
b1'
c
4-3 用换面法求相互平行的两条直线AB、CD之间的距离。
b'
d'
a'
c'
X
b
d
a
c
AB、CD间距离
4-4 已知平行直线AB、CD之间的距离为15,用换面法求cd。
15
15
a' c'
b'
d'
b
X2
பைடு நூலகம்X1
a
d
c
高校教育精品PPT
25 1
4-5 已知直线AB与CD垂直相交,用换面法求c'd'。 b'
a'
c a
b d
4-6 用换面法求点到直线BC距离,并求垂足。
a'
c'
b'
c a
A到BC距离 b
O2
4-7 已知点A到直线BC的距离为15,求a。 a1
R15
b1
c1
O1
a b
c a'1
c'1 c2
a2
b1' b2
高校教育精品PPT
27 3
4-11 已知直线AB与 CDE的距离为10,用换面法求ab。
c' e'
b'
a' X
单片机原理及应用教程(C语言版)-第4章 单片机C语言及程序设计

4.3.2 C51变量的存储类型
三、外部存储
外部(存储)变量:用extern声明的变量为外 部变量,是在其它文件定义过的全局变量。 用 extern声明后,便可以在所声明的文件中使用。
需要注意的是:在定义变量时,即便是全局变 量,也不能使用extern修饰。
4.3.2 C51变量的存储类型
四、寄存器存储
动态(存储)变量:用auto定义的为动态变量, 也叫自动变量。
作用范围:在定义它的函数内或复合语句内部 当定义它的函数或复合语句执行时,C51才为 变量分配存储空间,结束时所占用的存储空间释放。 定义变量时,auto可以省略,或者说如果省略 了存储类型项,则认为是动态变量。动态变量一般 分配使用寄存器或堆栈。
“C51”概念:为了与ANSI C区别,把“单片 机C语言”称为“C51”,也称为“Keil C”。
4.1.1 C语言编程的优势
在编程方面,使用C51较汇编语言有诸多优势: 1)编程容易 2)容易实现复杂的数值计算 3)容易阅读与交流 4)容易调试与维护 5)容易实现模块化开发 6)程序可移植性好
本 无符号整型 unsigned int 2字节 0~65535 有符号整型 signed int 2字节 -32768~32767
类 无符号长整型 unsigned long 4字节 0~4294967295
型 有符号长整型 signed long 4字节 -2147483648~2147483647
MCS-51单片机有四个存储空间,分成三类, 它们是片内数据存储空间、片外数据存储空间和 程序存储空间。
MCS-51单片机有更多的存储区域:由于片内 数据存储器和片外数据存储器又分成不同的区域, 所以单片机的变量有更多的存储区域。
C语言第4章

4.4.4 for语句 格式:for(表达式1;表达式2;表达式3) 语句 100 例: ∑n
n=1
求解表达式1
表达式2
0
非0 说明:①for语句中省略表达式1; 循环体语句 ②for语句中省略表达式2; ③for语句中省略表达式3; 求解表达式3 ④ for语句中省略表达式1和表达式3; ⑤ for语句中省略所有表达式; ⑥表达式1和表达式3可以是逗号表达式; ⑦表达式2可以是关系或逻辑表达式,也可以是数 值或字符表达式,只要非零就执行循环体.
4.2顺序结构程序设计
程序中的语句,按照它们出现的先后顺序 逐条执行,这样的程序结构就是顺序结构。顺 序结构是程序设计的最基本结构。
【例4.1】
• #include <stdio.h> • int main(void) • { • printf("1*\n"); • printf("2**\n"); • printf("3***\n"); • printf("4****\n"); • printf("5*****\n"); • printf("6******\n"); • return 0;}
表达式
表达式1
=
表达式2
=
表达式n
=
default 语句n+1
语句1
语句2
……
语句n
表达式
表达式1
=
表达式2
=
表达式n
=
default 语句n+1 break
语句1 break
语句2 break
……
语句n break
《C语言程序设计(第五版)》第4章选择结构程序的设计 PPT课件

►(b*b-4*a*c)>=0
b*b-4*a*c>=0
►z= (x>y+3)
z= x>y+3
►(a>b)= = c
a>b= =c
►a=(b!=c)
a=b!=c
当然为提高程序的可读性、可维护性你不妨多使用 括号,因为C语言中的有些优先级很容易让你不小心犯 错。
C语言程序设计
第4章 选择结构程序设计
第10页
“>”的结果为“假”,即条件不成立。
C语言程序设计
第4章 选择结构程序设计
第5页
4.1 关系运算及关系表达式
4.1.1 关系运算符及其优先次序
运算符
含义
> 大于
优先级
结合性
>= 大于或等于 这些关系运算符等优
< 小于
先级,但比下面的优 先级高
左结合性
<= 小于或等于
== 等于 != 不等于
这些关系运算符等优 先级,但比上面的优 先级低
C语言程序设计
第4章 选择结构程序设计
第4页
4.1 关系运算及关系表达式
所谓“关系运算”实际上就是“比较运算”, 即将两个数据进行比较,判定两个数据是否符合 给定的关系。例如,
► “x>y+3”中的“>”表示一个大于关系运算。 ➢如果a的值是5,b的值是1,则大于关系运算
“>”的结果为“真”,即条件成立; ➢如果a的值是2,b的值是1,则大于关系运算
因为按照自左至右的结合方向,先执行关系运算
“a>b”得值为1(“真”),再执行关系运算“1>c”, 得值为0(“假”),因此y为0。
C语言程序设计
高树芳C语言程序设计--第四章
4.5 switch语句
案例4-10 计算成绩级别 案例4-11 根据月份求季度 案例4-12 输入算式做四则运算
38
4.5 switch语句
案例4-10 [案例任务]
计算成绩级别
输入百分制成绩,输出成绩级别A、B、C、D、E。 90~100分以上为A,80~89分为B,70~79为C, 60~69为D,0~59为E,其他成绩则显示“成绩 错误!”。
26
4.4
if语句
4.4.3多分支
案例4-7 用多分支求解分段函数
27
4.4
if语句
4.4.3多分支
案例4-7 用多分支求解分段函数
[案例任务]
对于如下函数: 用scanf函数输入x的值,输出y的值。 运行结果如下(输入的数据是9)
[解决方案]使用if „ else if„else语句。
28
4.4
分析下列程序的运行结果,掌握“与”、 “或”、“非”三个逻辑运算符及其优先级。
程序代码
11
4.3 逻辑运算符和逻辑表达式
相关知识: 1.逻辑运算符及其优先级 2. 逻辑表达式 3. 逻辑表达式的优先级与结合性
12
4.3 逻辑运算符和逻辑表达式
案例4-4 [案例任务]
逻辑运算中的“短路”现象
分析下列程序的运行结果,掌握多个运算对象 进行“与”、“或”情况下的“短路”现象。
22
4.4
if语句
4.4.2双分支
案例4-6 求两个数中的最大者
23
4.4
if语句
4.4.2双分支
案例4-6 求两个数中的最大者
[案例任务]
由键盘输入两个整数,输出它们中的最大 者。运行结果如下:
第4章C语言程序设计(张曙光)教材各章习题解答
1.(1)(ch>='a'&& ch<='z')(2)a%2==1(3)a>=1 && a<=8 && a!=7(4)10(5)x%3==0 && x%5==0(6)do-while(7)零次(8)continue(9)break(10)-1002.(1)D)(2)B)(3)C)(4)D)(5)C)3.(1)①getchar() ②a<=’u’③c=c+5 ④c=c-21(2)⑤b=i+1 ⑥c-11(3)⑦i%3==2 && i%5==3 && i%7==2 ⑧j%5==04.(1)else if(x<5.0)后面的;是错误的。
(2)s要赋初值0,循环体中要增加x++;(3)} while(n)后面差;。
(4)int i,t=1,s=0;for(i=1;i<=101;i+=2)后面的;是错误的。
循环体中应该执行3条语句,所以要用{}括起来。
(5)循环变量最好不要为浮点类型。
5.(1)0.5000000(2)3(3)9 8 7(4)y=66.#include <stdio.h>#include<math.h>int main(void){float a,b,c,p,disc,q,x1,x2;scanf("%f%f%f",&a,&b,&c);p=-b/(2*a);disc=b*b-4*a*c;if (disc>=0){q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf("x1=%f,x2=%f",x1,x2);}else{printf("方程没有实根");}return 0;}7.#include <stdio.h>int main(void){float x,y;scanf("%f",&x);if (x<1)y=1;else if (x<10)y=2*x-1;elsey=3*x-11;printf("y=%f",y);return 0;}8.#include <stdio.h>int main(void){int ge,shi,qian,wan,x;scanf("%d",&x);wan=x/10000;qian=x%10000/1000;shi=x%100/10;ge=x%10;if(ge==wan&&shi==qian)printf("this number is a 回文数\n");elseprintf("this number is not a 回文数\n");return 0;}9.#include <stdio.h>int main(void){float x,y;scanf("%f",&x);if(x<100)y=x;else if(x>=100&&x<200)y=.97*x;else if(x>=200&&x<500)y=.95*x;else if(x>=500&&x<1000)y=.9*x;elsey=.8*x;printf("all=%.2f",y);return 0;}10.#include <stdio.h>int main(void){int c,s;float p,w,d,f;scanf("%f%f%d",&p,&w,&s);if (s>=3000)c=12;elsec=s/250;switch (c){case 0:d=0;break;case 1:d=2;break;case 2:case 3:d=5;break;case 4:case 5:case 6:case 7:d=8;break;case 8:case 9:case 10:case 11:d=10;break;case 12:d=15;break;}f=p*w*s*(1-d/100.0);printf("距离为%.2f时的运费是:%.2f元。
(完整版)C语言基础练习题(含答案)
目录第1-3章C语言基础知识习题 (2)1 选择题 (2)2 填空题 (7)3 答案及部分解析 (9)第4章选择结构习题 (11)1 选择题 (11)2 填空题 (17)3 答案及部分解析 (23)第5章循环结构习题 (26)1 选择题 (26)2 填空题: (32)3 答案及部分解题分析 (39)第6章数组习题 (41)1. 单项选择题 (41)2. 填空题 (44)3. 判断题 (45)4. 程序填空题 (45)5. 阅读程序,分析程序的功能。
(49)第7章函数习题 (55)1. 单项选择题 (55)2. 填空题 (56)3. 判断题 (57)4. 程序填空题 (58)5. 写出下列程序运行结果 (59)第8章指针习题 (67)1 选择题 (67)2 填空题 (69)第1-3章C语言基础知识习题1 选择题1. 以下不是C语言的特点的是()。
A、语言简洁紧凑B、能够编制出功能复杂的程序C、C语言可以直接对硬件操作D、C语言移植性好2.下列字符序列中,不可用作C语言标识符的是()。
A.abc123 B.no.1 C._123_ D._ok3.正确的C语言标识符是()。
A._buy_2 B.2_buy C.?_buy D.buy?4. 请选出可用作C语言用户标识符的一组标识符()。
A.void B.a3_b3 C.For D.2adefine _123 -abc DOWORD IF Case sizeof5. 下列符号中,不属于转义字符的是()。
A.\\ B.\0xAA C.\t D.\06.不属于C语言关键字的是()。
A.int B.break C.while D.character7.是C语言提供的合法关键字的是()。
A.Float B.signed C.integer D.Char8.以下不能定义为用户标示符的是()。
A.scanf B.Void C._3com_ D.int9.一个C程序是由()。
C语言程序设计第4章
能够使用if语句和switch语句,进行 选择结构程序设计 会利用多分支结构解决较复杂逻辑 判断问题
目录
CONTENTS
00 案例4 百分制转换等级制 01 4.1 选择结构判定条件的构成 02 4.2单分支和双分支选择结构程序设计 03 4.3 多分支选择结构程序设计
目录
CONTENTS
04 4.4 小结 05 4.5 拓展案例
案例4 百分制转换等级制
问题描述
学生成绩管理系统中需要对老师录入的百分制转换为等 级制。百分制与等级制的对应关系如下:90-100 对应A、 80-89对应B、70-79对应C、60-69对应D、0-59对应E。
问题分析
这是一个需要根据不同条件作出相应选择的程序,根据 描述,我们可以定义float变量fScore用来存放成绩值, 从而根据题目列出下列条件表达式: fScore>=90&&fScore<=100 your grade is A fScore>=80&&fScore<=89 your grade is B fScore>=70&&fScore<=79 your grade is C fScore>=60&&fScore<=69 your grade is D fScore>=0&&fScore<=59 your grade is E
4.4 小结
(1)嵌套if-else语句和switch语句都是用来实现多分支选择结构的,它们的 应用环境不同,嵌套if-else 语句用于对多条件并列测试,从中取一的情形; switch语句用于单条件测试,从其多种结果中取一种的情形。 (2)一般情况下用switch能解决的问题,用嵌套if-else 也一样能解决,反 之用嵌套if-else 语句能解决的问题用switch也能解决,在使用时要根据具体 问题灵活运用。 (3)如果多分支选择结构中需要判断的逻辑关系只是是否相等,则最好用 switch语句。switch语句的执行效率高于嵌套if-else语句。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
26
4.3 方法
一、方法的声明 (1)方法声明的格式:
[方法修饰符] 返回类型 方法名(参数列表)
{ 方法实现部分 } (2)方法修饰符
方法修饰符有:new、public、protected、internal、 private、static、virtual、sealed、override、abstract 和extern。其中修饰符new、public、protected、internal、 private、static、的用法和前面讲的类似,只不过现在用 27 于方法。
④ internal
表明类成员是内部成员。内部成员可访问域限定于类 所在的程序集。 例4-3 类成员访问修饰符的使用。
12
类、枚举、接口和结构等的成员的访问修饰符
属于 enum class 默认的成员可访问性 public private 该成员允许的声明的可访问性 无 public protected internal private protected internal 无(不可再加public,更不能加 其它的比如Private等。) public internal private
④ private
仅允许在嵌套类声明时使用,被private关键字修 饰的内层类只能在外层类范围内使用
⑤ internal
表明类是一个内部类,内部类必须和访问类在同一程 序集中,否则访问类不能访问用internal修饰的类。
例如:
// Assembly1.cs ,编译成Assembly1.dll internal class BaseClass { public static int intM = 0; } // Assembly1_a.cs
① new new修饰符可以显式隐藏从基类继承的同名成员。 例如:
18
public class BaseC
{ public static int x = 55; } class DerivedC:BaseC
{
new public static int x = 100; static void Main(string[] args) { Console.WriteLine(x);
4
class TestAccess { static void Main() // Error { BaseClass myBase = new BaseClass(); }
}
⑥ abstract 表明类是一个抽象类,抽象类不能实例化,只能用作 其他类的基类。抽象类的用途是提供多个派生类可共享的 基类的公共定义,抽象类中的抽象方法(属性等)只声明不 实现。该修饰符的用法与java语言相同。
13
interface struct
public private
4、this关键字 this关键字引用类的当前实例。 this关键字的常用用途: ①限定被相同的名称隐藏的成员。 ②将this对象作为参数传递到其他方法。 ③声明索引器。 例4-4 this关键字的使用。 二、类的构造与析构函数 1、构造函数 (1)构造函数的特点 构造函数主要用于为对象分配存储空间,并对数据成员
}
}
19
② readonly
表明域为只读域。只读域只能在域的定义中和它所属 类的构造函数中进行修改,在其他情况下是只读的。
例如:
class myClass { public readonly double PI=3.1415始化有两种方法: ①对域声明时初始化。 例如: class myClass { public int x=100;
4.4 委托和事件
一、委托 二、事件
4.2 域、属性
4.5 索引器 4.6 继承与多态
一、域 二、属性
一、派生类 二、多态性
1
第4章 C#面向对象程序设计
4.1 C#面向对象程序设计基础 一、类与对象 1、类的声明 格式:
[类修饰符] class 类名[:基类类名][接口列表]
24
(2)set访问器 set访问器用来写私有域的值,因而至少包含语句: 私有域名=value; (3)get访问器 get访问器用来读私有域的值,因而至少包含语句:
return 私有域名;
2、属性的访问 静态属性的访问格式:
25
类名.属性名 非静态属性的访问格式: 对象名.属性名 例4-6 属性的使用
表明类成员是公有成员。公有成员访问不受限制,可 以在类内和类外的代码中访问。公有成员提供了类的外 部界面。
11
② protected
表明类成员是保护成员。保护成员可访问域限定于类 内或从该类派生的类内,不允许类外代码访问。
③ private
表明类成员是私有成员。私有成员可访问域限定于类 内,不允许类外和派生类访问。
6
(1)对象的声明 格式: 类名 对象名; 作用: 声明一个对象变量。 (2)对象实例化 格式:
new 类名([实参列表])
作用:调用类的构造函数创建一个对象实例。 对象的声明和对象实例化合起来用下面的格式:
7
类名 对象名=new 类名([实参列表]) 例如: class A { ……
}
A a=new A(); 3、类成员 (1)类成员分类 在c#中类成员有以下几种:
① sealed 表明方法是密封方法。密封方法在派生类中不能被重写。 ② extern 表明方法是外部方法。extern常用于在非托管代码中调 用Dll文件中的函数使用。
28
二、方法的参数 C#支持四种类型的参数,分别为: 值类型:不含任何修饰符; 引用类型:使用ref修饰符声明; 输出参数:使用out修饰符声明; 参数数组:使用params修饰符声明。 1、值类型参数传递 值类型参数传递也称为值传递,就是实参将其值 传递给形参,形参值的改变不会引起实参值的改变。
9
(2)静态成员和非静态成员 声明一个类成员时使用了static关键字,则该类成员 叫做静态成员,反之叫非静态成员。
静态成员和非静态成员的区别:
①性质不同 静态成员属于类所有,非静态成员属于类的对象所有。 ②访问方式不同 静态成员访问方式:
类名.成员名[(参数列表)]
非静态成员访问方式: 对象名.成员名[(参数列表)]
第4章 C#面向对象程序设计
4.1 C#面向对象程序设计基础
4.3 方法
一、类与对象 类的声明 对象的声明和实例化 类成员 this关键字 二、类的构造与析构函数 构造函数 析构函数
一、方法的声明 二、方法的参数 三、方法的重载 四、外部方法 五、运算符的重载
修饰符new、public、protected、internal、private、 static和abstract的用法和前面讲的用法基本类似,只是 现在用于属性。
用virtual修饰属性表明该属性是虚拟属性,虚拟属性 可在派生类中重写该属性。override只能用在派生类中修 饰重写的属性。 例如: class A {
(3)静态构造函数
15
静态构造函数用来初始化类的一些静态成员变量。它在 创建第一个实例或引用任何静态成员之前,由编译系统自 动调用,静态构造函数只会被调用一次。
在使用静态构造函数的时候应该注意几点:
①静态构造函数既没有访问修饰符,也没有参数。 ②一个类只能有一个静态构造函数。 ③无参数的构造函数可以与静态构造函数共存。 ④静态构造函数最多只运行一次,它在创建第一个类实 例或任何静态成员时,由.net自动调用。 ⑤静态构造函数不可以被继承。 如果在一个类中既没有定义实例构造函数,又没有定义 静态构造函数,则系统会给类自动生成一个实例构造函数 16 和静态构造函数。
{ 类成员; } 几点说明:
2
(1)类修饰符有:new、public、protected、private、 internal、abstract、sealed、partial。
① new
仅允许在嵌套类声明时使用,表明类中隐藏了由基类中 继承而来的与基类中同名的成员类。
例4-1 用new修饰符隐藏基类中的成员类。在此示例中, 嵌套类隐藏了基类中具有相同名称的类。 ② public 表明类可由任何其他类型访问。它和java语言中的 public修饰符的用法类似。 ③ protected 仅允许在嵌套类声明时使用,表示可以在外层类或外层 3 类的派生类中使用。
进行初始化。
14
构造函数具有如下特点:
①构造函数的名字必须与类同名; ②构造函数没有返回类型,它可以带参数,也可以不带 参数; ③构造函数的主要作用是完成对类的初始化工作; ④在创建一个类的对象(使用new关键字)时,编译系统 回自动调用类的构造函数初始化对象; (2)实例构造函数
负责初始化类中的实例变量(非静态变量),它只有 在用户用new关键字为对象分配内存时才被调用。实例构 造函数可以重载。
17
4.2 域、属性
一、域 域又称成员变量或字段。 1、域声明格式: [域修饰符] 类型 域名;
域的修饰符有:new、public、protected、internal、 private、static和readonly。修饰符public、protected、 internal、private和static的用法在前面已讲过。
⑦ sealed
5
表明类是一个密封类。密封类不能用作基类,所以不 能派生,关键字sealed和abstract不能同时使用。 ⑧ partial
表明类是一个分部类,分部类允许把类定义拆分到多 个文件中。
(2)类修饰符可以两个或多个组合起来使用。如果省 略类修饰符,则默认为internal。 (3)一个类的基类只能有一个(即单继承),但一个 类可以实现多个接口。 (4)C#中所有的类都直接或间接继承自System.Object 类 2、对象的声明和实例化