【C#】【平时作业】习题-6-静态成员
习题-6静态成员
一、概念题
1. 什么是静态成员
被static修饰的成员,叫做静态成员。静态成员是属于类的。通过类名直接访问。
- 当类第一次被访问的时候,就会将这个类下面的所有的静态成员创建在内存当中。
- 静态成员既不在栈也不在堆中。创建在静态存储区。
- 静态成员只创建一次,在类第一次被访问的时候创建。
- 静态成员一旦被创建在静态存储区,那么就不会被回收,直到程序结束。
class Person
{
//静态成员
public static int Age;
//实例成员
public string Name;
}
class Program
{
static void Main(string[] args)
{
//静态成员属于类,直接通过 类名.静态成员 来访问
int age = Person.Age;
//实例成员属于对象,需要通过 对象名.实例成员 来访问
Person p = new Person();
p.Name = "Jack";
}
}
2. 什么是方法重载
在面向对象的语言中,允许我们在同一个类中定义多个方法名相同、参数列表(参数类型,参数个数)不同的方法,这样的形式我们称为方法重载。调用时编译器会根据实际传入参数的形式,选择与其匹配的方法执行。
二、 程序设计
设计计算器类,实现加法和减法功能。
要求:
参与计算的操作数可以是两个int;两个double,两个float

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
cbOperater.SelectedIndex = 0;
cbOperater.Width = 49;
cbOperater.Height = 28;
}
private void btCalc_Click(object sender, EventArgs e)
{
int op1Int;
int op2Int;
float op1Float;
float op2Float;
double op1Double;
double op2Double;
decimal op1Decimal;
decimal op2Decimal;
if (tb1.Text.Trim() == "" || tb2.Text.Trim() == "")
{
MessageBox.Show("请输入数字!");
}
else
{
if (int.TryParse(tb1.Text, out op1Int) & int.TryParse(tb2.Text, out op2Int))
{
switch (cbOperater.SelectedItem.ToString())
{
case "+": { lblResult.Text = Calc.Add(op1Int, op2Int).ToString(); } break;
case "-": { lblResult.Text = Calc.Sub(op1Int, op2Int).ToString(); } break;
case "*": { lblResult.Text = Calc.Cheng(op1Int, op2Int).ToString(); } break;
case "/": { lblResult.Text = Calc.Chu(op1Int, op2Int).ToString(); } break;
default: { MessageBox.Show("请选择合理计算方式"); } break;
}
}
else
{
if (float.TryParse(tb1.Text, out op1Float) & float.TryParse(tb2.Text, out op2Float))
{
switch (cbOperater.SelectedItem.ToString())
{
case "+": { lblResult.Text = Calc.Add(op1Float, op2Float).ToString(); } break;
case "-": { lblResult.Text = Calc.Sub(op1Float, op2Float).ToString(); } break;
case "*": { lblResult.Text = Calc.Cheng(op1Float, op2Float).ToString(); } break;
case "/": { lblResult.Text = Calc.Chu(op1Float, op2Float).ToString(); } break;
default: { MessageBox.Show("请选择合理计算方式"); } break;
}
}
else
{
if (double.TryParse(tb1.Text, out op1Double) & double.TryParse(tb2.Text, out op2Double))
{
switch (cbOperater.SelectedItem.ToString())
{
case "+": { lblResult.Text = Calc.Add(op1Double, op2Double).ToString(); } break;
case "-": { lblResult.Text = Calc.Sub(op1Double, op2Double).ToString(); } break;
case "*": { lblResult.Text = Calc.Cheng(op1Double, op2Double).ToString(); } break;
case "/": { lblResult.Text = Calc.Chu(op1Double, op2Double).ToString(); } break;
default: { MessageBox.Show("请选择合理计算方式"); } break;
}
}
else
{
if (decimal.TryParse(tb1.Text, out op1Decimal) & decimal.TryParse(tb2.Text, out op2Decimal))
{
switch (cbOperater.SelectedItem.ToString())
{
case "+": { lblResult.Text = Calc.Add(op1Decimal, op2Decimal).ToString(); } break;
case "-": { lblResult.Text = Calc.Sub(op1Decimal, op2Decimal).ToString(); } break;
case "*": { lblResult.Text = Calc.Cheng(op1Decimal, op2Decimal).ToString(); } break;
case "/": { lblResult.Text = Calc.Chu(op1Decimal, op2Decimal).ToString(); } break;
default: { MessageBox.Show("请选择合理计算方式"); } break;
}
}
else {
MessageBox.Show("数据类型不统一!");
}
}
}
}
}
}
private void label1_Click(object sender, EventArgs e)
{
}
private void tb2_TextChanged(object sender, EventArgs e)
{
}
private void cbOperater_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
Random ran = new Random();
tb_show.Text += "恭喜用户"+ ran.Next(100, 999).ToString()+"***"+ ran.Next(100, 999).ToString()+"中奖";
}
}
}
【C#】【平时作业】习题-6-静态成员的更多相关文章
- JavaScript中的静态成员
静态:共享 一.公有静态成员(作为函数的属性即可): var Gadget = function(price) { this.price = price; } Gadget.isShiny = fun ...
- 面向对象课后深入学习(C++ 类的静态成员详细讲解)
今天在刚申请了博客,一下午都在写那个随笔,所以说好的来看c++的也放在了最后,下星期就考试了,这个类的静态成员是我不是很懂的,在网上 看到一片很详细的博客考下来回去慢慢看. 在C++中,静态成员是属于 ...
- C++类的静态成员详解
类的静态成员分为静态数据成员和静态成员函数 静态数据成员 假如我们要设计一个战争游戏,游戏中有许多的兵种.游戏的过程中,每隔一段时间每个兵种都会产生,同时由于战争的消耗,每个兵种士兵的数量又会减少.为 ...
- Java中,包的概念、常量、静态成员、继承
新建包:左上角-新建-包 命名规则(通常从大到小,方便整合不容易冲突) 例如:com.itnba.maya.test package必须在最顶行,之前不能再有其他代码 使用包: 快捷方式:使用包中的 ...
- C++ - 静态成员函数
c++中静态成员函数属于整个类, 而不是某个对象,因此不需要创建对象就可以访问 1.出现在类体外的函数定义不能指定关键字static:2.静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访 ...
- c++ 类静态成员、非静态成员初始化
1.静态成员初始化(不能在构造函数或初始化列表中初始化) 1.1 所有静态成员都可以在类定义之外初始化(通用),如下所示 class test { public: static int a; }; ; ...
- C#基础——静态成员,static关键字
当声明一个类成员为静态时,意味着无论创建多少个类的对象,只会有一个该静态成员的副本. 关键字static意味着只有一个该成员的实例.静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的 ...
- C++ 中静态成员函数访问非静态成员变量的方法
最近在 VS2010 里开发出厂烧写工具,遇到一个问题: 我创建了一个线程,在这个线程里要访问非静态成员,而这个线程函数是静态的.最后找到的办法是用对象指针来做. sourcecode: #test. ...
- 缓存篇(Cache)~第一回 使用static静态成员实现服务器端缓存(导航面包屑)
返回目录 今天写缓存篇的第一篇文章,在写完目录后,得到了一些朋友的关注,这给我之后的写作带来了无穷的力量,在这里,感谢那几位伙伴,哈哈! 书归正传,今天我带来一个Static静态成员的缓存,其实它也不 ...
- spring注入静态成员变量提示invalid setter method
果然还是不够细心啊,被坑一晚上.. 一个极其简单的小程序,但是需要通过xml文件配置注入一个值,唯一的特别是要注入的属性是类中的静态成员变量.. 如下,然后自动生成get和set方法..坑就从此开始了 ...
随机推荐
- Android Qcom USB Driver学习(四)
VID/PID识别USB设备 CDC-ACM驱动介绍 CDC-ACM(Communication Device Class--Abstract Control Model)驱动实现以USB设备驱动和t ...
- 什么是WEB3.0
WEB1.0 90年代末期创建的搜狐,新浪等门户网站的特点是向用户推送信息,门户网站显示什么我们看什么,这个时代称为web1.0.WEB2.0随着技术的发展,用户可以在网上进行互动,可以在网站上发表个 ...
- 低配置PC环境下的魔兽世界游戏体验:ToDesk云电脑性能测试分析
近期魔兽世界再度开服,吸引了众多游戏老玩家回归.然而随着游戏内容的不断更新,其对电脑配置的要求也在逐渐升提高.对于许多电脑配置较低的老玩家,如何在不升级硬件的情况下流畅运行魔兽世界成为了一个难题. 随 ...
- Machine Learning Week_1 Model and Cost Function 1-4
目录 2 Model and Cost Function 2.1 Video: Model Representation unfamiliar words 2.2 Reading: Model Rep ...
- PhpStorm 中切换PHP8以上报错 VCRUNTIME140.dll 与PHP 版本不兼容
错误原因:PhpStorm 附带了旧版本或错误版本的vcruntime140.dll 解决方法: 打开PhpStorm VCRUNTIME140 存在目录 C:\Program Files\JetB ...
- docker REPOSITORY 改名
创建新的名称: docker tag oldname:tag newname:tag 删除旧的名称: docker rmi oldname:tag
- 2-4 C++ const限定词
目录 2.4.1 const之于基本类型(base type) 含义 编译过程 2.4.2 const之于引用 含义 作用 注意点 2.4.3 const之于指针 含义[两类] 变量定义的读法:从左往 ...
- UE4纯C++实现游戏快捷栏
要想创建一个游戏中的快捷栏我们往往通过以下几步来实现(目录导航): 1.创建UI:我们首先需要有在游戏视口中添加一个快捷栏UI界面,以供玩家看到自身的快捷栏. 2.物品读取:其次有了界面之后我们需要往 ...
- 关于MNN工程框架编译出来的静态库和动态库的使用
一.MNN.lib文件路径 如果你看过之前的博客内容,应该可以在编译的的工程当中 C:\Users\Administrator\Desktop\MNN\MNN-master\MNN-CPU-OPENC ...
- Air780E量产binpkg文件如何获取
今天我们学习Air780E量产binpkg文件如何获取: 一.背景 最近luatos开发客户增多,客户在量产烧录的时候需要binpkg文件,但是有些客户不知道binpkg文件是什么,在哪里获取,是 ...