一、概念题

1. 举例说明什么是类,什么是对象,并说明类与对象的关系?

类:具有相同特性(数据元素)和行为(功能)的对象的抽象就是类。

对象:对象是人们要进行研究的任何事物,它不仅能表示具体的事物,还能表示抽象的规则、计划或事件。

例如:狗类。大黄狗是狗类的其中一个对象

类与对象的关系就如模具和铸件的关系,类的实例化的结果就是对象,对象的抽象就是类。

类描述了一组有相同特性(属性)和相同行为的对象。

2. 什么是类的字段,字段有何作用

字段又称为"成员变量",一般在类的内部做数据交互使用,一般使用private使用

字段的通俗理解:字段就好比我们的个人财产,只供我们自己使用,所以一般是private修饰

作用:限制对象的属性或方法可访问的范围(类的内部,类的外部)

类型: private(私有的:外部不可见) public(共有的:外部可见的)

字段命名规范:字段命名一般采用camel命名法

添加标准:一个类中究竟需要添加几个字段,根据程序编写过程的需要决定

3. 举例说明什么是类的属性,属性有何作用?

属性其实是外部访问私有字段的入口,属性本省不保存任何数据

给属性赋值,其实是给属性指向的私有字段赋值

读取属性值,其实是获取属性指向的私有字段值或其它值

作用:在面向对象设计中主要使用属性描述对象静态特征

要求:一般采用Pascal命名法,数据类型和字段一致,使用public修饰

举例

# 字段
private int studentId;
# 属性
public int StudentId
{
get {return student}
set {studentID = value}
}

4. 举例说明C#中如何创建类的方法,方法的基本格式是什么?

[修饰符] 返回值类型 方法名 (参数类型 参数, 参数类型 参数)
{// 方法体//(返回值)
}
/// <summary>/// 获取圆的直径/// </summary>/// <returns></returns>public double getDiam() {return 2 * _radius;}

5.public , private, protect, internal有何区别?

public 关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别,对访问公共成员没有限制。
protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。=
private 关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的。
internal 关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的。

6. 举例说明,什么是C#程序设计类的封装?

封装:将事物拥有的属性和动作隐藏起来,只保留特定的方法与外界联系。

例如,封装一个Circle类

class Circle{//字段public const double PI = 3.14;private double _radius;private double _centerX;private double _centerY;//属性public double Radius { get => _radius; set => _radius = (value > 0 && value <= 50) ? value : 50; }public double CenterX { get => _centerX; set => _centerX = (value > 0 && value <= 100) ? value : 50; }public double CenterY { get => _centerY; set => _centerY = (value > 0 && value <= 100) ? value : 50; }//构造函数public Circle() {;}public Circle(double radius) {Radius = radius;}public Circle(double radius, double centerX, double cneterY) {Radius = radius;CenterX = centerX;CenterY = cneterY;}//功能方法/// <summary>/// 获取圆的直径/// </summary>/// <returns></returns>public double getDiam() {return 2 * _radius;}/// <summary>/// 获取圆的周长/// </summary>/// <returns></returns>public double getPerimeter() {return 2 * PI*_radius;}/// <summary>/// 获取圆的面积/// </summary>/// <returns></returns>public double getArea() {return PI * _radius * _radius;}}

二、程序设计

1. 设计矩形类,并使用该类

class Rectangle{private double _length;private double _width;//构造函数/// <summary>/// 构造函数/// </summary>/// <param name="length"></param>/// <param name="width"></param>public Rectangle(double length, double width) {_length = length;_width = width;//纠正赋值非法错误if (_length <= 0 || _length > 50) { _length = 50; }if (_width <= 0 || _width > 50) {_width = 50;}Checklw();}//set/getpublic double Length {set => _length=(value > 0 && value <= 50) ? value : 50;get => _length;}public double Width{set => _width = (value > 0 && value <= 50) ? value : 50;get => _width;}//属性getterpublic double getLength() { return _length; }public double getWidth() { return _width; }//属性setterpublic void setLength(double length) {if (length <= 0){length = 1;}else if (length > 50){ length = 50; }_length = length;}public void setWidth(double width){if (width <= 0){width = 1;}else if (width > 50){width = 50;}_width = width;}//功能方法/// <summary>/// 将长方形的长和宽放大一定倍数/// </summary>/// <param name="factor"></param>/// <returns></returns>public bool magnify(double factor) {Checklw();this._length = _length * factor;this._width = _width * factor;if (this._length == _length * factor && this._width == _width * factor){return true;}else {return false;}}//计算长方形面积public double ComputeArea() {Checklw();return this._length * this._width;}/// <summary>/// 计算长方形周长/// </summary>/// <returns></returns>public double ComputePerimeter() {Checklw();return (this._length + this._width)*2;}//要求长必须大于款public void Checklw() {//纠正宽大于长的错误if (_length < _width){double temp = _length;_length = _width;_width = temp;}}}
Rectangle cfx = new Rectangle(2222,333);
cfx.setLength(2);
cfx.setWidth(3);
lb1.Text += "长方形长为:"+cfx.getLength()+" | 长方形宽为:"+cfx.getWidth()+"\n";
lb1.Text += "周长为:" + cfx.ComputePerimeter().ToString() + "\n";
lb1.Text +="面积为:" +cfx.ComputeArea().ToString()+"\n";

2. 设计圆,并使用该类

//字段public const double PI = 3.14;private double _radius;private double _centerX;private double _centerY;//属性public double Radius { get => _radius; set => _radius = (value > 0 && value <= 50) ? value : 50; }public double CenterX { get => _centerX; set => _centerX = (value > 0 && value <= 100) ? value : 50; }public double CenterY { get => _centerY; set => _centerY = (value > 0 && value <= 100) ? value : 50; }//构造函数public Circle() {;}public Circle(double radius) {Radius = radius;}public Circle(double radius, double centerX, double cneterY) {Radius = radius;CenterX = centerX;CenterY = cneterY;}//功能方法/// <summary>/// 获取圆的直径/// </summary>/// <returns></returns>public double getDiam() {return 2 * _radius;}/// <summary>/// 获取圆的周长/// </summary>/// <returns></returns>public double getPerimeter() {return 2 * PI*_radius;}/// <summary>/// 获取圆的面积/// </summary>/// <returns></returns>public double getArea() {return PI * _radius * _radius;}.
private void btnCircle_Click(object sender, EventArgs e){Circle circle = new Circle();circle.Radius = 1;lblCircle.Text+= "圆(" + circle.CenterX + "," + circle.CenterY + ") " +"半径为" + circle.Radius + " " +"直径为" + circle.getDiam() + "\n" +"该圆的周长为:" +circle.getPerimeter()+"\n" +"该圆的面积为:"+circle.getArea()+"\n";lblCircle.Text += "--------------------------------\n";circle.Radius = 999;circle.CenterX = -999;circle.CenterY = 25;lblCircle.Text += "圆(" + circle.CenterX + "," + circle.CenterY + ") " +"半径为" + circle.Radius + " " +"直径为" + circle.getDiam() + "\n" +"该圆的周长为:" + circle.getPerimeter() + "\n" +"该圆的面积为:" + circle.getArea() + "\n";}

【C#】【平时作业】习题-5-类的基础知识相关推荐

  1. 计算机单招基础知识试题,高职单招《计算机类专业基础知识》正式试卷

    高职单招<计算机类专业基础知识>正式试卷 20XX年高考<计算机类专业基础知识>试卷 一. 单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确回答的序号填在题干的 ...

  2. A股交易接口类的基础知识

    A股交易接口类的基础知识-ES6+类 constructor构造函数 类通过class关键字来定义一个类. 类可以有自己的构造函数constructor,当我们通过new关键字创建一个实例时,构造函数 ...

  3. OC中,类的基础知识

    都说编程语言只是一种工具,吃透一种语言,跨界去学习另一种语言,就简单很多.通过OC语言类的使用以及java语言的使用的对比,更好地去理解.掌握OC语言的基础知识. 什么是对象? 对象是抽象的,可以具体 ...

  4. java程序运行必须得三个io类_Java基础知识(三)

    一.hashCode 与 equals (重要) 面试官可能会问你:"你重写过 hashcode 和 equals 么,为什么重写equals时必须重写hashCode方法?" 1 ...

  5. java 查看类_JAVA基础知识之JVM-——通过反射查看类信息

    Class实例 当类被加载之后,JVM中就会生成一个Class实例,通过这个实例就可以访问JVM中的这个类.有三种方式可以获取Class对象 使用Class的静态方法forName(完整包名) 调用类 ...

  6. iOS开发之OC入门(类的基础知识)

    内存中的五大区域 栈:存储局部变量,局部变量作用域执行完会被立即回收 堆:程序员手动申请的字节空间 malloc calloc realloc BSS段:存储未被初始化的全局变量和静态变量,初始化后回 ...

  7. 福建高职单招计算机基础知识,福建高职单招计算机类试题及标准答案

    计算机类专业基础知识试题 第Ⅰ卷 一.单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确的字母标号 填涂在答题卡相应在位置上,每小题3分,共120分) 1.世界上第一台计算机(ENIAC ...

  8. 2013福建高职单招计算机类专业,2013福建高职单招_计算机类专业_知识试题(卷).doc...

    2013福建高职单招_计算机类专业_知识试题(卷).doc (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分  .. 计算机类专业基 ...

  9. JAVA基础知识(四)面向对象基础

    文章目录 JAVA基础知识(四)面向对象基础 1. 类 2. 访问权限修饰符 3. `static`修饰符 3.1 静态代码块 4. `new`一个对象 5. 方法 5.1 `this` 5.2 方法 ...

最新文章

  1. Initializing libiomp5md.dll, but found libiomp5md.dll already initialized.
  2. 再见IE浏览器(IE之死2021 年 8 月 17 日)
  3. 写给即将离开校园准备进入 SAP 研究院实习的朋友
  4. PHP IDE phpstorm 快捷键
  5. 昨夜洪峰抵达主城,重庆人是这么过的......
  6. Google 6面,最终还是挂了…
  7. hive单机安装 beeline连接hive无法连接
  8. 学了这几招,社交时人人都对你刮目相看
  9. kali-beef工具(xss-stored)
  10. MCU学习笔记_UPF
  11. Ubuntu16.04下cuda9.0+cudnn7.0安装指南
  12. Odoo Excel报表的设计及实现
  13. linux学习一天一个命令(18)[lvs,vgs,pvs命令]
  14. 软件需求、架构培训(一)
  15. 婚恋交友源码,实现一个插件的透明背景
  16. 什么是模块化?为什么要模块化
  17. 启幕 Next ’21 大会 - Google Cloud 与您畅谈技术,论道云端
  18. 湍流模型(1)——湍流的统计描述
  19. 【算力网络】算力网络的技术创新——算网一体关键技术
  20. 正则匹配中文英文字符、数据及标点

热门文章

  1. 上海师范大学计算机科学与技术中法合作,2009年度上海师范大学计算机科学与技术专业(中法合作...
  2. CQ的包打开进行修改
  3. rdma-轮询常用cq函数。
  4. 工具 | 使用 CLion 编译调试 MySQL 8.0
  5. sh脚本中一些命令使用总结及sed命令
  6. 2018/7/10功能点解读
  7. 基于comsol软件弯曲单模光纤模拟仿真
  8. 企业数字化转型方法论
  9. STVP下载提示“Warning: Old ST-Link firmware version detected”
  10. mysql 中查看表结构的命令