项目八 第43练 属性封装《算法与程序设计--c#》(河北科学技术出版社)一课一练

| 2份
| 11页
| 84人阅读
| 0人下载

内容正文:

编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《算法与程序设计—C#》(河北科学技术出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《算法与程序设计--c#》(河北科学技术出版社)一课一练的项目八的第1练,内容涵盖项目八子任务一 属性封装。 《算法与程序设计C#》(河北科学技术出版社)第43练 项目八 C#面向对象编程 任务一 属性封装 1、 单项选择题(本题共5小题) 1.以下关于 C# 属性的说法正确的是( ) A. 属性就是字段,可以直接访问 B. 属性是对字段的封装,用于更安全地访问和修改字段 C. 属性不能包含任何逻辑代码 D. 属性必须同时有 get 和 set 访问器 【答案】B 【解析】属性不是字段,它是对字段的封装,通过属性可以在 get 和 set 访问器中添加验证、日志等逻辑代码,从而更安全地访问和修改字段,A、C 错误;属性的 get 和 set 访问器可以只存在一个,比如只读属性只有 get 访问器,D 错误,所以选 B。 2.若定义一个表示学生年龄的属性,且年龄必须在 6 到 120 之间,以下代码正确的是( ) A. class Student { private int age; public int Age { get { return age; } set { if (value >= 6 && value <= 120) age = value; } } } B. class Student { public int age; public int Age { get { return age; } set { age = value; } } } C. class Student { private int age; public int Age { get { return age; } set { age = value; } } } D. class Student { private int age; public int Age { get { if (age >= 6 && age <= 120) return age; } set { age = value; } }} 【答案】A 【解析】属性是对字段的封装,字段应使用 private 修饰,B 选项字段用 public 修饰不符合封装原则;C 选项没有对属性赋值进行年龄范围的验证;D 选项验证逻辑放在 get 访问器位置错误,应在 set 访问器中对传入的值进行验证,所以选 A。 3.下列关于属性访问修饰符的说法,错误的是( ) A. 属性可以使用 public 修饰,使其在任何地方都能被访问 B. 属性可以使用 private 修饰,使其只能在本类中被访问 C. 属性的 get 和 set 访问器可以分别设置不同的访问修饰符 D. 属性不能使用 protected 修饰 【答案】D 【解析】属性可以使用 public、private、protected 等访问修饰符,A、B 正确;属性的 get 和 set 访问器可以分别设置不同的访问修饰符,比如一个只读属性可以设置 get 为 public,set 为 private,C 正确;属性是可以使用 protected 修饰的,D 错误,所以选 D。 4.有如下代码: class Person { private string name; public string Name { get { return name; } set { name = value; } } } class Program { static void Main() { Person p = new Person(); p.Name = "张三"; Console.WriteLine(p.Name); } } 上述代码实现的功能是( ) A. 定义一个 Person 类,通过属性 Name 给私有字段 name 赋值并输出 B. 定义一个 Person 类,直接访问私有字段 name 并赋值输出 C. 代码存在语法错误,无法运行 D. 以上说法都不对 【答案】A 【解析】在代码中,Person 类定义了私有字段 name,通过属性 Name 对其进行封装,在 Main 方法中通过属性 Name 给私有字段 name 赋值为 “张三”,然后又通过属性 Name 将值输出,没有直接访问私有字段 name,代码没有语法错误,可以正常运行,所以选 A。 5.只读属性的正确定义方式是( ) A. private int num; public int Num { get { return num; } } B. private int num; public int Num { set { num = value; } } C. public int num; public int Num { get { return num; } } D. private int num; public int Num { get { return num; } set { num = value; } } 【答案】A 【解析】:只读属性只包含 get 访问器,不包含 set 访问器,B 选项只有 set 访问器,不符合只读属性定义;C 选项字段 num 用 public 修饰,不符合封装原则;D 选项同时有 get 和 set 访问器,是可读写属性,不是只读属性,所以选 A。 2、 填空题(本题共5小题) 1. 属性是对______的封装,用于控制数据的访问和修改。 【答案】:字段 【解析】:属性通过 get/set 方法操作私有字段,实现数据封装。 2. 访问器中用于读取值的是______,用于写入值的是______。 【答案】:get、set 【解析】:get 返回属性值,set 接收新值并赋值给字段。 3. 若要限制属性只能在类内部修改,应使用______访问修饰符修饰 set 访问器。 【答案】:private 【解析】:private set 使属性成为 “只读公开、可写内部” 的状态。 4. 自动属性的语法省略了______,由编译器自动生成。 【答案】:私有字段 【解析】:如public int Age { get; set; }无需手动声明_age字段。 5. 在属性的 set 访问器中添加______可以验证输入值的合法性。 【答案】:条件判断(或验证逻辑) 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $ 编写说明:考虑到中职学生普遍基础知识相对薄弱的情况,我们依据支架式教学理念,精心编制了《算法与程序设计—C#》(河北科学技术出版社)一课一练。专辑里的每一份练习,都与课堂所授知识点紧密相关,题目围绕课堂所学知识点呈现。目的在于激发学生的学习兴趣,培养他们的学习自觉性,帮助学生扎实掌握课程的基本概念与基本方法,为他们后续的进一步提升奠定坚实基础。 本卷是《算法与程序设计--c#》(河北科学技术出版社)一课一练的项目八的第1练,内容涵盖项目八子任务一 属性封装。 《算法与程序设计C#》(河北科学技术出版社)第43练 项目八 C#面向对象编程 任务一 属性封装 1、 单项选择题(本题共5小题) 1.以下关于 C# 属性的说法正确的是( ) A. 属性就是字段,可以直接访问 B. 属性是对字段的封装,用于更安全地访问和修改字段 C. 属性不能包含任何逻辑代码 D. 属性必须同时有 get 和 set 访问器 2.若定义一个表示学生年龄的属性,且年龄必须在 6 到 120 之间,以下代码正确的是( ) A. class Student { private int age; public int Age { get { return age; } set { if (value >= 6 && value <= 120) age = value; } } } B. class Student { public int age; public int Age { get { return age; } set { age = value; } } } C. class Student { private int age; public int Age { get { return age; } set { age = value; } } } D. class Student { private int age; public int Age { get { if (age >= 6 && age <= 120) return age; } set { age = value; } } } 3.下列关于属性访问修饰符的说法,错误的是( ) A. 属性可以使用 public 修饰,使其在任何地方都能被访问 B. 属性可以使用 private 修饰,使其只能在本类中被访问 C. 属性的 get 和 set 访问器可以分别设置不同的访问修饰符 D. 属性不能使用 protected 修饰 4.有如下代码: class Person { private string name; public string Name { get { return name; } set { name = value; } } } class Program { static void Main() { Person p = new Person(); p.Name = "张三"; Console.WriteLine(p.Name); } } 上述代码实现的功能是( ) A. 定义一个 Person 类,通过属性 Name 给私有字段 name 赋值并输出 B. 定义一个 Person 类,直接访问私有字段 name 并赋值输出 C. 代码存在语法错误,无法运行 D. 以上说法都不对 5.只读属性的正确定义方式是( ) A. private int num; public int Num { get { return num; } } B. private int num; public int Num { set { num = value; } } C. public int num; public int Num { get { return num; } } D. private int num; public int Num { get { return num; } set { num = value; } } 2、 填空题(本题共5小题) 1. 属性是对______的封装,用于控制数据的访问和修改。 2. 访问器中用于读取值的是______,用于写入值的是______。 3. 若要限制属性只能在类内部修改,应使用______访问修饰符修饰 set 访问器。 4. 自动属性的语法省略了______,由编译器自动生成。 5. 在属性的 set 访问器中添加______可以验证输入值的合法性。 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $

资源预览图

项目八  第43练  属性封装《算法与程序设计--c#》(河北科学技术出版社)一课一练-第1页
1
项目八  第43练  属性封装《算法与程序设计--c#》(河北科学技术出版社)一课一练-第2页
2

由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。