当前位置: 首页 > news >正文

.NET基础加强第二课--静态成员,静态类

实例类

默认是实例类

静态类

在类前加上static ,就是静态类

静态类中,所有包含的成员必须是静态成员

实例成员是属于具体某个对象的

举例代码

Person p1 = new Person();
p1.Age = 20;
p1.Name = “张三”;

class Person
{
public string Name { get; set; }
public int Id { get; set; }
public string FirstName { get; set; }
public int Age { get; set; }
}

静态成员
静态成员是属于类的,实例成员属于对象的
Person p1 = new Person();
p1.Age = 20;
p1.Name = “张三”;
Person.Country = “中国”;

Person p2 = new Person();
p2.Age = 30;
p2.Name = “李四”;

Console.WriteLine(p1.Name);
Console.WriteLine(Person.Country);

static class Myclass
{
// 静态类中,所有包含的成员必须是静态成员
static void M1()
{

}

}

class Person
{
public string Name { get; set; }
public int Id { get; set; }
public string FirstName { get; set; }
public int Age { get; set; }

// 访问静态成员的时候不能通过对象来访问,
// 只能类名访问
public static string Country { get; set; }

}

注意:

1,静态成员的数据直到程序退出后才会释放资源 ,而实例对象只要使用完毕就会释放
2,通用,公用方法
3,与具体对象无关
4,工具方法

静态构造函数特点:

1, 静态构造函数不能手动来调用,用是在第一次使用静态成员时自动调用
不能为静态构造函数添加访问修饰符,默认为private
2, 静态构造函数不能传参,原因是静态构造函数是系统自动调用的
3, 只执行一次,在第一次使用静态类或静态成员的时候执行

有静态构造函数,实例构造函数时,静态构造函数会先执行

举例代码

Myclass m1 = new Myclass();
Console.WriteLine(“开始”);
Myclass.n1 = 200;
Console.WriteLine(Myclass.n1);

Console.ReadLine();

public class Myclass
{
public Myclass()
{
Console.WriteLine(“实例”);
}
// 静态类中,所有包含的成员必须是静态成员

static Myclass()
{Console.WriteLine("静态构造函数");n1 = 100;
}

public static int n1 ;
static void M1()
{

}

}

多态:为了程序的可扩展性

把不同的子类对象当作父类来看,可以屏蔽不同子类的差异,
写出通用代码,做出通用编程,以适应需求

使用as 的方式进行类型转换,转换失败也不会报异常,而是返回null

实现多态的方法

虚方法
抽象类
接口

在类前面加在 abstract

1,抽象类可以有实例成员,也可以有抽象成员
2, 不能有任何实现
3, 抽象成员必须 包含在抽象类中
4, 抽象类不能用来实例化对象
5, 抽象成员子类继承 以后,必须重写 override,除非子类也是抽象类

主要目的是为了实现多态,用来被继承

案例

学生类和老师类中抽象出父类Person,并让老师和学生都有Say和Standup方法
Person s1 = new Student();
s1.Say();
s1.Standup();
Person s2 = new Teacher();
s2.Say();
s2.Standup();

Console.ReadLine();
Console.ReadKey();

abstract class Person
{
public abstract void Say();
public abstract void Standup();
}

class Student : Person
{
public override void Say()
{
Console.WriteLine(“学生说”);
}

public override void Standup()
{Console.WriteLine("学生Standup");
}

}

class Teacher : Person
{
public override void Say()
{
Console.WriteLine(“老师说”);
}

public override void Standup()
{Console.WriteLine("老师Standup");
}

}

值类型栈 连续空间

int,char,double,float,long,short,byte,bool,enum,struct,decimal
值类型都是派生自ValueType
值类型不能继承 ,只能实现接口

引用类型堆(栈中只存储了堆的地址)

String, 数组,类,接口,委托

int n = 100;
int m = n;
m = m + 1;

Console.WriteLine(n);
Console.WriteLine(m);

Console.ReadKey();

Person p = new Person();
p.Name = “张三”;
Person p1 = p;
p1.Name = “李四”;

Console.WriteLine(p.Name);
Console.ReadKey();

public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
}

参数传递方式

1, 值传递—默认传递,栈内容复制一份
2, 引用传递 ref栈地址,传递栈本身的地址 相同于给变量取了个别名

面试题

方法重载 overload与方法重写 override 区别:
方法重载 overload 一个类中的几个方法重载,在程序编译的时候就能确定
方法重写 override 父子类中,才会出现重写,只有程序运行时才能确定

相关文章:

.NET基础加强第二课--静态成员,静态类

类 实例类 默认是实例类 静态类 在类前加上static ,就是静态类 静态类中,所有包含的成员必须是静态成员 实例成员是属于具体某个对象的 举例代码 Person p1 new Person(); p1.Age 20; p1.Name “张三”; class Person { public string Name { get; set;…...

【UML+OOPC嵌入式C语言开发】使用C语言实现一个面向对象语言才能够实现的类

文章目录简述OOPC开发环境知识讲解函数示例类的实现示例接口实现示例(前面两部分有点无聊,如果大家没兴趣看可以直接从知识讲解开始看) 简述OOPC oopc,是一种轻量级的面向对象的C语言编程框架, LW_OOPC是Light-Weight …...

软件测试自动化Java篇【Selenium+Junit 5】

文章目录Selenium环境部署自动化测试例子常见的元素操作窗口等待浏览器的操作弹窗选择器执行脚本文件上传浏览器参数Junit 5导入依赖Junit 4 和 Junit5 注解对比断言测试顺序参数化单参数多参数动态参数测试套件指定类来运行测试用例指定包名来运行包下测试用例Selenium 为什么…...

Clip:学习笔记

Clip 文章目录Clip前言一、原理1.1 摘要1.2 引言1.3 方法1.4 实验1.4.1 zero-shot Transfer1.4.2 PROMPT ENGINEERING AND ENSEMBLING1.5 局限性二、总结前言 阅读论文: Learning Transferable Visual Models From Natural Language Supervision CLIP 论文逐段精读…...

STM32CubexMX与FreeRTOS学习

目录 LED与EXTI配置 基本定时器使用 软件定时器 在HAL库中实现printf 重点--记得自己添加头文件 队列实现 二值信号量实现 计数信号量实现 DMA实现 ADC配置 RTC配置 看门狗 窗口看门狗 FreeRTOS结合MX软件开发,基础配置直接生成,我们只…...

Master Slave 主从同步错误 Slave_IO_Running:NO/Slave_SQL_Running: No

Master Slave 主从同步错误 Slave_IO_Running:NO Slave_SQL_Running:Yes #在Slave库上查看状态 mysql> show slave status\G Slave_IO_Running: No Slave_SQL_Running: Yes #重启master库:service mysqld restart mysql> show master status; ------------…...

JavaScript函数之prototype原型和原型链

文章目录1. 原型2. 显式和隐式原型3. 原型链3.1 访问顺序4. instanceof4.1 如何判断1. 原型 函数的prototype属性 每个函数都有一个prototype属性,它默认指向一个Object空对象(即:原型对象)。原型对象中有一个属性constructor&a…...

从上海分时电价机制调整看转供电用户电能计费

安科瑞 耿敏花2022年12月16日,上海市发改委发布《关于进一步完善我市分时电价机制有关事项的通知》(沪发改价管〔2022〕50号)。通知明确上海分时电价机制,一般工商业及其他两部制、大工业两部制用电夏季(7、8、9月)和冬季&#xf…...

TypeScript类型体操:获取数组中元素对象属性的值作为新类型

title: TypeScript类型体操:获取数组中元素对象属性的值作为新类型 date: 2023-03-03 20:58:24 categories: TypeScript类型体操 tags: TypeScript类型体操TypeScript 首先先说获取数组中元素对象属性的值作为新类型的解决方案 使用 as const 强调不可变数组使用 …...

npm,yarn和pnpm

npm扁平的node_modules结构比如项目依赖了A 和 C,而 A 和 C 依赖了不同版本的 B1.0 和 B2.0,D也依赖B1.0, node_modules 结构如下:node_modules ├── A1.0.0 ├── B1.0.0 └── C1.0.0└── node_modules└── B2.0.0C依赖的B2.0因为版…...

【算法】【数组与矩阵模块】在排好序的矩阵中找数,时间复杂度O(M+N)

目录前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本思考感悟写在最后前言 当前所有算法都使用测试用例运行过,但是不保证100%的测试用例,如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识! 问题介绍 …...

【Java|基础篇】计算机中数据的存储规则

文章目录前言:1.计算机中的数据2.二进制的介绍二进制的运算规则常见的进制3.字符的存储4.汉字的存储5.图片的存储6.音频的存储总结:前言: 本篇文章只是为了科普 计算机中数据的存储规则 1.计算机中的数据 计算机的数据大致分为三类:文本数据,图片和音频 注:视频是图片和音频…...

RestTemplate使用HttpClient连接池

文章目录RestTemplate使用HttpClient连接池ClientHttpRequestFactorySimpleClientHttpRequestFactorySimpleClientHttpRequestFactory 设置超时时间HttpURLConnection的缺点HttpComponentsClientHttpRequestFactoryPoolingHttpClientConnectionManager配置连接池HttpClient总结…...

Python 操作Redis

在 Python中我们使用 redis库来操作 Redis数据库。Redis数据库的使用命令这里就不介绍了。 需要安装 redis库。检查是否安装redis: pip redis 如果未安装,使用 pip命令安装 redis。 pip install redis #安装最新版本 一、Redis连接 Redis提供两个类 Re…...

CEC2020:鱼鹰优化算法(Osprey optimization algorithm,OOA)求解CEC2020(提供MATLAB代码

一、鱼鹰优化算法简介 鱼鹰优化算法(Osprey optimization algorithm,OOA)由Mohammad Dehghani 和 Pavel Trojovsk于2023年提出,其模拟鱼鹰的捕食行为。 鱼鹰是鹰形目、鹗科、鹗属的仅有的一种中型猛禽。雌雄相似。体长51-64厘米…...

词对齐 - MGIZA++

文章目录关于 MGIZAgiza-py安装 MGIZA命令说明mkclsd4normhmmnormplain2sntsnt2coocsnt2coocrmpsnt2plainsymalmgizageneral parameters:No. of iterations:parameter for various heuristics in GIZA for efficient training:parameters for describing the type and amount o…...

GUI 之 Tkinter编程

GUI 图形界面,Tkinter 是 Python 内置的 GUI 库,IDLE 就是 Tkinter 设计的。 1. Tkinter 之初体验 import tkinter as tkroot tk.Tk() # 创建一个窗口root.title(窗口标题)# 添加 label 组件 theLabel tk.Label(root, text文本内容) theLabel.p…...

【软件测试】性能测试面试题都问什么?面试官想要什么?回答惊险避坑......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 1、你认为不同角色关…...

后端开发基础能力以及就Java的主流开发框架介绍

前言:java语言开发转后端,必须了解后端主流的一些东西,共勉。 后端开发需要具备以下基础能力: 1.编程语言:熟练掌握至少一门编程语言,如Java、Python、Ruby、PHP、C#等。 2.数据结构和算法:具…...

H2数据库连接时用户密码错误:Wrong user name or password [28000-214] 28000/28000 (Help)

H2数据库连接时用户密码错误: 2023-03-03 08:25:07 database: wrong user or password; user: "SA" org.h2.message.DbException: Wrong user name or password [28000-214]出现的问题配置信息原因解决办法org.h2.message.DbException: Wrong user name or password …...

青岛诺凯达机械盛装亮相2023济南生物发酵展,3月与您相约

BIO CHINA生物发酵展,作为生物发酵产业一年一度行业盛会,由中国生物发酵产业协会主办,上海信世展览服务有限公司承办,2023第10届国际生物发酵展(济南)于2023年3月30-4月1日在山东国际会展中心(济…...

【JAVA程序设计】【C00111】基于SSM的网上图书商城管理系统——有文档

基于SSM的网上图书商城管理系统——有文档项目简介项目获取开发环境项目技术运行截图项目简介 基于ssm框架开发的网上在线图书售卖商城项目,本项目分为三种权限:系统管理员、卖家、买家 管理员角色包含以下功能: 用户信息管理、权限管理、订…...

基于卷积神经网络CNN的三相故障识别

目录 背影 卷积神经网络CNN的原理 卷积神经网络CNN的定义 卷积神经网络CNN的神经元 卷积神经网络CNN的激活函数 卷积神经网络CNN的传递函数 卷积神经网络CNN手写体识别 基本结构 主要参数 MATALB代码 结果图 展望 背影 现在生活,为节能减排,减少电能损…...

Java工厂设计模式详解,大厂的Java抽象工厂模式分享!

我是好程序员-小源!本期文章主要给大家分享:Java工厂设计模式。文中使用通俗易懂的案例,使你快速学习和轻松上手!一、什么是Java抽象工厂模式1. Java抽象工厂是23种设计模式中创建型模式的一种,Java抽象工厂是由多个工…...

Git 企业级分支提交流程

Git 企业级分支提交流程 首先在本地分支hfdev上进行开发,开发后要经过测试。 如果测试通过了,那么久可以合并到本地分支develop,合并之后hfdev和development应该完全一样。 git add 文件 git commit -m ‘注释’ git checkout develop //切换…...

C/C++每日一练(20230303)

目录 1. 字符串相乘 2. 单词拆分 II 3. 串联所有单词的子串 1. 字符串相乘 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 示例 1: 输入: num1 "2", num2 "3"…...

Python3-条件控制

Python3 条件控制 Python 条件语句是通过一条或多条语句的执行结果(True 或者 False)来决定执行的代码块。 可以通过下图来简单了解条件语句的执行过程: 代码执行过程: if 语句 Python中if语句的一般形式如下所示: if condi…...

KDZD地埋电缆故障测试仪

一、产品特性 ★电缆故障测试仪(闪测仪) (1)使用范围广:用于测量各种不同截面、不同介质的各种电力电缆、高频同轴电缆,市话电缆及两根以上均匀铺设的地埋电线等电缆高低阻、短路、开路、断线以及高阻泄漏…...

爆款升级!新系列南卡Neo最强旗舰杀到,业内首款无线充骨传导耳机!

中国专业骨传导耳机品牌NANK南卡于近日发布了全新南卡Neo骨传导运动耳机,打造一款佩戴最舒适、音质体验最好的骨传导耳机。推出第2代声学響科技技术,提供更优质的开放式骨传导听音体验,透过不一样的音质体验,打造更好的骨传导耳机…...

基于Spring Boot+Thymeleaf的在线投票系统

文章目录 项目介绍主要功能截图:后台登录注册个人信息展示投票数据显示首页展示对战匹配分数排行榜部分代码展示设计总结项目获取方式🍅 作者主页:Java韩立 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅…...

注册网站域名用什么好处/手机网站建设价格

如何减少运维团队的日常琐事?如何将服务平台化,赋予用户自我服务的能力?新东方云利用Rancher容器管理平台、Harbor镜像仓库和GitLab构建企业应用商店。赋能运维团队和用户,尝试破解用户自服务的难题。开场先讲个小故事&#xff1a…...

网站推广优化的方法/搜索图片识别出处百度识图

欢迎转载,转载请注明出处。 概要 Spark 1.1中对spark core的一个重大改进就是引入了sort-based shuffle处理机制,本文就该处理机制的实现进行初步的分析。 Sort-based Shuffle之初体验 通过一个小的实验来直观的感受一下sort-based shuffle算法会产生哪些…...

用ps做简单的网页设计/企业网站关键词优化

从自己别的博客搬过来的,很久之前的文章,正好放在专栏Python基础知识里~不知道对别人有没有用,希望不会辣眼睛哈哈~最近学了点关于python的网络爬虫的知识,简单记录一下,这里主要用到了requests库和BeautifulSoup库Req…...

2017还有人做网站吗/百度24小时人工电话

在命令行下运行 msdtc -uninstall ,卸载 msdtc 服务; 再运行 msdtc -install ,安装 msdtc 服务转载于:https://www.cnblogs.com/wlwjc/articles/1690230.html...

做网站需要什么学历/介绍网络营销的短文

1、ls命令作用 ls命令用于显示指定工作目录下之内容(列出目前工作目录所含之文件及子目录) 2、ls命令结构 drwxr-xr-x 2 root root 4.0K 3月 23 2017 etc “d” 表示文件的类型为目录 “rwx” 表示文件所有者的权限:r是读,w是写,x是…...

网站alexa排名/微信推广方式有哪些

什么是位置参数,Python位置参数 位置参数,有时也称必备参数,指的是必须按照正确的顺序将实际参数传到函数中,换句话说,调用函数时传入实际参数的数量和位置都必须和定义函数时保持一致。 实参和形参数量必须一致 在…...