习题-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-静态成员的更多相关文章

  1. JavaScript中的静态成员

    静态:共享 一.公有静态成员(作为函数的属性即可): var Gadget = function(price) { this.price = price; } Gadget.isShiny = fun ...

  2. 面向对象课后深入学习(C++ 类的静态成员详细讲解)

    今天在刚申请了博客,一下午都在写那个随笔,所以说好的来看c++的也放在了最后,下星期就考试了,这个类的静态成员是我不是很懂的,在网上 看到一片很详细的博客考下来回去慢慢看. 在C++中,静态成员是属于 ...

  3. C++类的静态成员详解

    类的静态成员分为静态数据成员和静态成员函数 静态数据成员 假如我们要设计一个战争游戏,游戏中有许多的兵种.游戏的过程中,每隔一段时间每个兵种都会产生,同时由于战争的消耗,每个兵种士兵的数量又会减少.为 ...

  4. Java中,包的概念、常量、静态成员、继承

    新建包:左上角-新建-包 命名规则(通常从大到小,方便整合不容易冲突)  例如:com.itnba.maya.test package必须在最顶行,之前不能再有其他代码 使用包: 快捷方式:使用包中的 ...

  5. C++ - 静态成员函数

    c++中静态成员函数属于整个类, 而不是某个对象,因此不需要创建对象就可以访问 1.出现在类体外的函数定义不能指定关键字static:2.静态成员之间可以相互访问,包括静态成员函数访问静态数据成员和访 ...

  6. c++ 类静态成员、非静态成员初始化

    1.静态成员初始化(不能在构造函数或初始化列表中初始化) 1.1 所有静态成员都可以在类定义之外初始化(通用),如下所示 class test { public: static int a; }; ; ...

  7. C#基础——静态成员,static关键字

    当声明一个类成员为静态时,意味着无论创建多少个类的对象,只会有一个该静态成员的副本. 关键字static意味着只有一个该成员的实例.静态变量用于定义常量,因为它们的值可以通过直接调用类而不需要创建类的 ...

  8. C++ 中静态成员函数访问非静态成员变量的方法

    最近在 VS2010 里开发出厂烧写工具,遇到一个问题: 我创建了一个线程,在这个线程里要访问非静态成员,而这个线程函数是静态的.最后找到的办法是用对象指针来做. sourcecode: #test. ...

  9. 缓存篇(Cache)~第一回 使用static静态成员实现服务器端缓存(导航面包屑)

    返回目录 今天写缓存篇的第一篇文章,在写完目录后,得到了一些朋友的关注,这给我之后的写作带来了无穷的力量,在这里,感谢那几位伙伴,哈哈! 书归正传,今天我带来一个Static静态成员的缓存,其实它也不 ...

  10. spring注入静态成员变量提示invalid setter method

    果然还是不够细心啊,被坑一晚上.. 一个极其简单的小程序,但是需要通过xml文件配置注入一个值,唯一的特别是要注入的属性是类中的静态成员变量.. 如下,然后自动生成get和set方法..坑就从此开始了 ...

随机推荐

  1. USB gadget functionfs

    FunctionFS (Function Filesystem) 是 Linux USB Gadget 框架的一部分,专门用于从用户空间实现和控制自定义的 USB 功能.它提供了一种文件系统接口,使用 ...

  2. js中有哪些定时器 , 它们的用法和区别?

    js有setInterval() 间隔函数 和 setTimeout()延迟函数 2 种定时器 1. setInterval间隔函数 setInterval() 方法可按照指定的周期(以毫秒计)来调用 ...

  3. 04 统计语言模型(n元语言模型)

    博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...

  4. 使用doccano标注NER数据详细教程

    使用doccano标注NER数据详细教程 说明: 首次发表日期:2024-10-12 参考资料: https://github.com/zjunlp/DeepKE/blob/main/README_T ...

  5. springboot2.X动态修改log4j2日志级别

    利用springboot提供的 spring-boot-starter-actuator 包可以实现动态修改log4j2日志级别的功能 添加依赖 添加依赖包 <dependency> &l ...

  6. 云原生周刊:LitmusChaos 审计完成|2024.9.2

    开源项目推荐 Gardener Gardener 实现了 Kubernetes 集群的自动化管理和操作服务,并提供了一个经过完全验证的可扩展性框架,可以调整以适应任何编程云或基础设施提供商. Graf ...

  7. 在 KubeSphere 部署 Wiki 系统 wiki.js 并启用中文全文检索

    作者:scwang18,主要负责技术架构,在容器云方向颇有研究. 背景 wiki.js 是优秀的开源 Wiki 系统,相较于 xwiki ,功能目前性上比 xwiki 不够完善,但也在不断进步. Wi ...

  8. java程序设置开机自启

    Linux系统jar包开机自启 第一步:创建service文件 sudo nano etc/systemd/system/myapp.service 第二步:将下面代码复制到刚才创建的文件里面,保存 ...

  9. 使用 Cursor 和 Devbox 快速开发并上线 Gin 项目

    作为开发者,最让我们头疼的事情是什么?那必须是环境配置.版本控制以及各种部署配置等等繁琐的工作. 想象一下,如果你只需点击几下鼠标,就能拥有一个完全配置好的开发环境,支持从 Java 到 Python ...

  10. Java 面向对象高级

    文章目录 1.静态 1.1 static修饰成员变量 1.2 static修饰成员变量的应用场景 1.3 static修饰成员方法 1.4 工具类 1.5 static的注意事项 1.6 static ...