习题-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. 高通pmic voter机制

    前不久在高通 SDM450 平台接触了 voter 机制(投票机制).最近终于得空,结合一个问题简单研究了一下.现将研究流程简单记录一下,由于时间有限,所以是实用为目的,没有做详细的分析,不过结合着这 ...

  2. 2023年11月中国数据库排行榜:OPO组合持续两月,亚信、中兴闯进前十

    长夜之中蓄力待,势如破晓初光披. 2023年11月的 墨天轮中国数据库流行度排行 火热出炉,本月共有283个数据库参与排名.本月排行榜前十名变动较大,TiDB 上升一位居第4,达梦奋勇向前重归第6,亚 ...

  3. 2022年3月中国数据库排行榜:TiDB “三连降”仍霸榜首,“常胜四将军”得分集体下跌

    春暖花开好时光,三月一号迎榜来.2022年3月的 中国数据库流行度排行榜 已在墨天轮社区发布,本月共有 199个 数据库参与排名,相比上月新增四个数据库.排名前十的数据库得分均有所波动,整体排名变动略 ...

  4. FHQ treap(再见splay------)

    但凡打过平衡树的应该都知道\(\huge{二逼平衡树}\)这道题,抄了两个小时的splay版题解,然后发现了\(\huge\color{maroon}FHQ treap\): $\large\colo ...

  5. flink同步MySQL数据的时候出现内存溢出

    flink同步MySQL数据的时候出现内存溢出 背景:需要将1000w的某类型数据同步到别的数据源里面,使用公司的大数据平台可以很快处理完毕,而且使用的内存只有很少很少量(公司的大数据平台的底层是fl ...

  6. 10个一行Python代码:利用sort()函数进行高效排序

    今天我们要玩点有趣的--用一行代码来展示sort()函数的超级能力!通常,排序算法可能让你觉得是编程中的"重量级选手",但有了Python的sort(),一切都变得轻而易举,甚至可 ...

  7. vue,js直接导出excel,xlsx的方法,XLSX_STYLE 行高设置失效的问题解决,冻结窗体修改支持

    1.先安装依赖:xlsx.xlsx-style.file-saver三个包 npm install xlsx xlsx-style file-saver 出现错误: This relative mod ...

  8. AI绘画漫谈——从AI网页生成说起

    1. 又说"前端已死" 为什么说"又"呢?因为前两年我在一些博客网站三天两头就能看到这个标题,虽然今年好像换话题了,但感觉前端每年都要死个七八次,当然这里面还是 ...

  9. Java面试真题之中级进阶(线程,进程,序列化,IO流,NIO)

    前言 本来想着给自己放松一下,刷刷博客,慕然回首,线程.程序.进程?Java 序列化?Java 中 IO 流? Java IO与 NIO的区别(补充)?似乎有点模糊了,那就大概看一下Java基础面试题 ...

  10. 使用wxpython开发跨平台桌面应用,对常用消息对话框的封装处理

    在很多程序中,封装常用消息对话框有很多好处,尤其是在 GUI 应用程序中,本篇随笔结合.net 开发Winform界面的经验,对使用wxpython开发中 wx.MessageDialog 和 wx. ...