【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方法..坑就从此开始了 ...
随机推荐
- `->` 操作符重载的注意事项
在 C++ 中,-> 操作符可以被重载,用于对象的指针成员访问. 重载后的 -> 操作符主要用于模拟指针访问行为,常见于智能指针的实现等复杂场景. -> 操作符重载后的调用触发流程: ...
- SVN(Linux)提交时强制写日志
SVN(Linux)提交时强制写日志 1.创建并修改pre-commit文件 进入svn/code/hooks目录,在svn版本库的hooks文件夹下面,复制模版pre-commit.tmplcp p ...
- PasteForm最佳CRUD实践,实际案例PasteTemplate详解之3000问(四)
无论100个表还是30个表,在使用PasteForm模式的时候,管理端的页面是一样的,大概4个页面, 利用不同操作模式下的不同dto数据模型,通过后端修改对应的dto可以做到控制前端的UI,在没有特别 ...
- less 是什么?为什么使用less?
less 是css的预处理器,是动态语言,赋予了css动态的特性,如继承,变量,函数等,less可以执行在客户端和服务端: 为什么使用less a)less 的结构简单,便于扩展 b)实现多重继承 c ...
- 16 Transformer 的编码器(Encodes)——我在做更优秀的词向量
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...
- 0608-nn和autograd的区别
0608-nn和autograd的区别 目录 一.nn 和 autograd 的区别 二.Function 和 Module 在实际中使用的情况 pytorch完整教程目录:https://www.c ...
- Kubernetes CNI 插件选型和应用场景探讨
作者:马伟,青云科技容器顾问,云原生爱好者,目前专注于云原生技术,云原生领域技术栈涉及 Kubernetes.KubeSphere.KubeKey 等. 本文介绍容器环境常见网络应用场景及对应场景的 ...
- mac 系统使用vscode 创建c/c++ 工程项目 并配置断点调试
mac 使用vsCode 创建c/c++ 工程项目 并配置断点调试 使用vscode 创建c/c++工程项目 准备工作 使用 vscode 下载插件 C/C++ Project Generator 开 ...
- Discuz7.2 faq.php页面注入漏洞分析
由于discuz在全局会对GET数组进行addslashes转义,导致该漏洞的产生. 参数问题存在于faq.php的grouppermission函数中. 具体细节访问:网易博客siberia h ...
- Codeforces 4 A-D
题面 A B C D 难度:红 橙 橙 黄 题解 A 题目大意: 判断一个正整数 \(w\) 能否表示成两个正偶数之和. 解题思路: 考虑分类讨论 \(w\). 对于 \(1\) 和 \(2\),显然 ...