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

C#学习,结构,面向对象,类

结构和类

结构是从过程化程序设计中保留下来的一种数据类型,类则是面向对象程序设计中最基本的、也是最重要的概念。

结构

结构是一种值类型,通常用来封装一组相关的变量,结构中可以包含构造函数、变量、字段、方法、属性、运算符、事件和嵌套类型等。结构实际上就是将多个相关的变量包装为一个整体来使用。

结构的特点:

  • 结构是值的类型。

  • 向方法传递结构时,结构是通过传值的方式传递的,不是引用传递。

  • 结构的实例化不可以用new

  • 结构可以声明构造函数,但是必须带参数

  • 结构可以实现接口

C#中使用struct来声明结构,语法:

结构修饰符 struct 结构名
{
​
}

例如:

public struct Rect
{public double width;//宽public double heigth;//高public double Area(){return width * heigth;}
}

结构的使用

首先声明一个矩形结构,定义矩形的宽和高,然后在这个结构中定义一个构造函数,用来初始换宽和高,自定义一个方法,Area。然后在Main方法中实例化矩形结构的一个对象,调用结构的自定义计算面积的方法来计算矩形面积。最后使用矩形结构的构造函数再次实例化矩形结构的一个对象,并再次调用结构中自定义方法计算矩形面积。

class Test1
{public struct Rect{public double width;public double heigth;public Rect(double x, double y){width = x;heigth = y;}public double Area(){return width * heigth;}}static void Main(string[] args){Rect rect1;rect1.width = 5;rect1.heigth = 3;Console.WriteLine("面积为:" + rect1.Area());Rect rect2 = new Rect(6, 4);Console.WriteLine("面积为:" + rect2.Area());}
}

结果:

面积为:15
面积为:24

面向对象概述

因为结构化语言不适合大规模的软件开发,所以这时候就需要一种开发思想,就是面向对象的开发思想,它将所有预处理的问题抽象为对象,同时了解这些对象具体有哪些相应的属性以及展示这些对象的行。

对象

在面向对象中,算法和数据结构被看作一个整体,称为对象,现实世界中如何类的对象都具有一定的属性和操作。

对象=(算法+数据结构),程序=(对象+对象+...)

面向对象程序的设计思想就是要以对象来思考问题,首先要将现实世界的实体抽象为对象,如何考虑这个对象具备的属性和行为。

类就是一类事物的统称,如果现实世界中的一个事物抽象成对象,类就是这类对象的统称。类是构造对象时所依赖的规范,比如,鸟具有一对翅膀,它可以通过这对翅膀飞行,基本上所有的鸟都具有翅膀这个特性和飞行的技能,这样具有相同特征和行为的一类事物就称为类。

类是世间事物的抽象称呼,对象是这个事物相对应的实体。

在C#中,类中对象的行为是以方法的形式定义的,对象的属性是以成员变量的形式定义的。

面向对象程序有三大特点:

  • 封装

  • 继承

  • 多态

封装

封装就是面向对象编程的核心思想,将对象的属性和行为封装起来,而将它们封装起来的载体就是类,类通常对客户隐藏实现细节,这就是封装的思想。

采用封装的思想保证了类内部数据结构的完整性,应用该类的用户不能轻易直接操作此数据结构,只能执行允许公开的数据。避免了外部对内部数据的影响,提高了程序的可维护性。

继承

继承就是主要利用特定对象之间的共有属性。比如图形可以分为三角形,四边形,圆形等,其中,图形就是父类,那些具体的形状就是子类,是继承了图形这个父类。其中,要注意的是,可以说三角形是图形,但是不能说图形是三角形,等同于,可以说子类的实例都是父类的实例,但是不能说弗雷德实例都是子类的实例。

一个类在继承中,它既可以是其他类的父类,为其他类提供属性和行为,也可以是子类,继承父类的属性和方法。例如三角形是图形类的子类,但是也是等边三角形的父类。

多态

多态是什么?按照我的理解,就是将父类对象应用于子类的特征。还是可以用图形类的例子来举例,比如,一个图形可以进行绘制,那么它的子类也需要绘制的能力,我们就可以在父类写一个绘制方法,将它的子类的对象统一看作是父类的实例对象,他的子类,比如三角形,需要绘制的时候,就可以调用父类的绘制方法。

多态的实现?多态的实现并不是依赖于具体的类,而且依赖于抽象类和接口。比如图形类绘制的方法,我们需要的只是图像类有一个绘制能力,如何被子类去调用,但是具体要绘制什么东西,需要根据调用的子类去决定,所以我们就需要一个模糊的定义,只是要绘制,而不是具体,这就是抽象类。

对于多态来说,接口的使用比抽象类更加方便, 由查询方法组成的集合就是接口。

类是一种数据结构,可以包含数据成员,函数成员,嵌套类型。其中,类支持继承。

类的概念

类是对象概念在面向对象编程语言的反映,是相同对象的集合。它可以把一个对象的各种属性包含在其中,比如,汽车类,可以有颜色,编号,厂家等信息。

类的声明

类修饰符 class 类名
{
}

例子:

public class Car
{public int number;//编号public string color;//颜色public string brand;//厂家
}

构造函数

定义:主要用来对对象进行初始化和回收对象资源。一般对象的生命周期都是由构造函数开始的。构造函数具有与类相同的名称,通常初始化新对象的数据成员。

使用:

class Program
{public int x = 3;public int y = 5;public int z = 0;
​public Program(){z = x + y;}static void Main(string[] args){Program program = new Program();Console.WriteLine(program.z);}
}

结果:

8

其中,构造函数是没有带参数的,叫做”默认构造函数“。

对象的创建及使用

1.对象的创建

对象可以认为是在一类事物中抽象出某一个特例,通过这个特例来处理这类事物出现的问题。可以通过new来创建对象。

语法:

Test test = new Test();
Test test = new Test("a");

其中,参数说明:

Test:类名;test:对象;new:创建对象操作符;”a”:构造函数的参数。

test被创建出来的时候,test对象就是一个对象的引用,在内存中为对象分配了存储空间,可以在构造函数中初始化成员变量,在创建对象时,自动调用构造函数,所以说,初始化和创建是被捆绑在一起的。

2.访问对象属性和行为

通过new操作符创建一个对象后,可以使用“对象.类成员”来获取对象的属性和行为。由于对象的属性和行为在类中是通过类成员变量和方法的形式表示的,所以我们要用对象获取成员的时候,就相应的获取了对象的属性和行为。

例子:

using System.IO.IsolatedStorage;
​
class Progrom
{int i = 47;public void call(){Console.WriteLine("调用call方法");for (i = 0; i < 3; i++){Console.Write(i + " ");if (i==2){Console.WriteLine("\n");}}}public Progrom(){
​}static void Main(string[] arge){Progrom t1 = new Progrom();Progrom t2 = new Progrom();t2.i = 60;Console.WriteLine("第一个实例对象调用变量i的结果" + t1.i++);t1.call();Console.WriteLine("第二个实例对象调用变量i的结果" + t2.i++);t2.call();Console.ReadLine();}
}

结果:

第一个实例对象调用变量i的结果47
调用call方法
0 1 2
​
第二个实例对象调用变量i的结果60
调用call方法
0 1 2

3.对象的引用

引用只是存放一个对象的内存地址,并非是存放一个对象。

4.对象的销毁

每个对象都有生命周期,当生命周期结束时,给该对象分配的内存地址将会被回收,C#可以自动回收,它有一套完整的垃圾回收机制。

其中,会被回收的对象有以下两种情况:

  • 对象引用超过其作用范围

  • 将对象赋值为null

类和对象关系

对象就是一个类的实例。

类是具有相同或相似结构、操作和约束规则的对象组成的集合,对象是某一类的具体化实例,每一个类都是具有某些共同特征的对象的抽象。

类的面向对象特性

类的封装

类可以使数据和方法封装成单一的元素,以便于通过方法来存取数据。

这样有很多好处:

  • 方便维护升级

  • 可以在操作数据的时候多一层判断

  • 可以解决数据存取的权限问题,可以使用封装将数据隐藏起来,根据类的成员使用的不同修饰符来定义它们的访问级别

  • 可以增强安全性和简化编程

class Myclass
{private int x = 0;private int y = 0;//加数public int X{get{return x;}set{x = value;}}public int Y{get{return y;}set{y = value;}}public int Add(){return X + Y;}
​
}
class Program
{static void Main(string[] arge){Myclass myclass = new Myclass();//实例化Myclass的对象myclass.X = 3;myclass.Y = 5;Console.WriteLine(myclass.Add());Console.ReadLine();}
}

结果:

8

类的继承

任何类都可以从另外一个类继承,这个类拥有它继承的类的所有成员,被继承类叫做父类或者基类。但是只支持单继承,不支持多重继承,依次只允许继承一个类,不能继承多个类。继承的基本思想是基于父类的扩展,制定出一个新的子类,子类可以继承父类原有的属性和方法,也可以增加原来父类所不具备的属性和方法,或者直接重写父类的某些方法。例子:

//继承
class MyClass
{private int x = 0;private int y = 0;public int X{get{return x;}set{x = value;}}public int Y{get{return y;}set{y = value;}}public int Add1(){return X + Y;}
}
class MyClass1 : MyClass
{private int z = 0;public int Z{get{return z;}set{z = value;}}public int Add2(){return X + Y + Z;}
}
class Progeam
{static void Main(string[] args){MyClass myclass = new MyClass();MyClass1 myclass1 = new MyClass1();myclass.X = 3;myclass.Y = 5;myclass1.X = 3;myclass1.Y = 5;myclass1.Z = 7;Console.WriteLine(myclass.Add1());Console.WriteLine(myclass1.Add1());Console.WriteLine(myclass1.Add2());
​}
}

结果:

8
8
15

类的多态

多态使子类的实例可以直接赋予父类的变量,然后直接就可以通过这个变量调用子类的方法。比如,需要一个绘制正方形的方法,我们不可以在他的父类(四边形)里面定义一个绘制四边形的方法,再定义一个绘制正方形方法,那就冗余了,可以在四边形定义一个draw()方法,使每个继承四边形类的对象作为draw的参数,然后在draw中做一些限定就可以根据不同图形类对象绘制相应的图形。

例子:

//多态
class Program
{private Program[] qtest = new Program[6];private int nextIndex = 0;public void draw(Program q){if (nextIndex<qtest.Length){qtest[nextIndex] = q;Console.WriteLine(nextIndex);nextIndex++;}}static void Main(string[] args){Program q = new Program();q.draw(new Square());q.draw(new Parallelogramgle());Console.ReadLine();}
}
​
class Parallelogramgle : Program
{public Parallelogramgle(){Console.WriteLine("平行四边形");}
}
​
class Square : Program
{public Square(){Console.WriteLine("正方形");}
}

结果:

正方形
0
平行四边形
1

相关文章:

C#学习,结构,面向对象,类

结构和类 结构是从过程化程序设计中保留下来的一种数据类型&#xff0c;类则是面向对象程序设计中最基本的、也是最重要的概念。 结构 结构是一种值类型&#xff0c;通常用来封装一组相关的变量&#xff0c;结构中可以包含构造函数、变量、字段、方法、属性、运算符、事件和…...

【PHP】文件操作

文章目录 文件编程的必要性目录操作其它目录操作递归遍历目录PHP5常见文件操作函数PHP4常见文件操作函数其他文件操作函数 文件编程的必要性 文件编程指利用PHP代码针对文件&#xff08;文件夹&#xff09;进行增删改查操作。 在实际开发项目中&#xff0c;会有很多内容&…...

科创板50ETF期权交易:详细规则、费用、保证金和开户攻略

科创板50ETF期权是指以科创板50ETF为标的资产的期权合约。科创板50ETF是由交易所推出的一种交易型开放式指数基金&#xff08;ETF&#xff09;&#xff0c;旨在跟踪科创板50指数的表现&#xff0c;下文介绍科创板50ETF期权交易&#xff1a;详细规则、费用、保证金和开户攻略&am…...

怎么把图片放大并且清晰?有详细的方法步骤

怎么把图片放大并且清晰&#xff1f;数字图像处理中的图片放大是许多行业和领域中广泛应用的一项技术。常规的放大方法通过插值或复制像素的方式增加像素数&#xff0c;但这会导致失真和模糊。无损放大是一种特殊的放大方法&#xff0c;它可以通过数学算法来增加图片的尺寸&…...

C++ 构造函数、析构函数调用虚函数

C虚函数是通过虚表实现的&#xff0c;虚函数的地址记录在需表中&#xff0c;只对象完成构造完成后&#xff0c;虚函数的地址才最终确定。 构造函数中调用虚函数 基类先于派生类构造&#xff0c;所以构造时没法调用到派生类的虚函数&#xff0c;也就是说只能调用到自己&#x…...

工业状态监测如何选择合适的无线技术?

工业领域的状态监测在提高生产效率和产品质量方面起着关键作用。过去依赖于预防性维护和例行检查的方式已经不再能满足日益复杂的生产需求&#xff0c;随着工业物联网&#xff08;IIoT&#xff09;的兴起&#xff0c;设备状态监测逐渐成为一种关键策略&#xff0c;催生了预测性…...

Mysql45讲学习笔记

前言&#xff1a;这篇文章主要总结事务&#xff0c;锁、索引的一些知识点&#xff0c;然后分享一下自己学习小心得&#xff0c;我会从点到线在到面展开说说&#xff0c;对于学习任何知识&#xff0c;我们都应该藐其全貌&#xff0c;不要一开始就选入细节 基础 一、基础架构&a…...

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

报错描述 情景一 1Panel在"主机-->进程守护"通过命令"nohup /opt/tomcat/bin/startup.sh > /opt/supersivor/tomcat/nohup.log &"创建守护进程&#xff0c;运行日志如下&#xff1a; #--------------------------------------------------------…...

opencv 水果识别+UI界面识别系统,可训练自定义的水果数据集

目录 一、实现和完整UI视频效果展示 主界面&#xff1a; 测试图片结果界面&#xff1a; 自定义图片结果界面&#xff1a; 二、原理介绍&#xff1a; 图像预处理 HOG特征提取算法 数据准备 SVM支持向量机算法 预测和评估 完整演示视频&#xff1a; 完整代码链接 一、…...

TypeScript数组和对象的操作

TypeScript数组和对象的操作 一、数组的声明二、数组初始化三、数组元素赋值、添加、更改四、删除五、合并、断开数组六、查找数组元素七、连接数组元素八、排序、反序数组九、遍历数组&#xff0c;对象 一、数组的声明 let arr1: Array<number>; let arr2: number[];二…...

docker之Compose与DockerSwarm

目录 Compose 简介 概念 为什么需要&#xff1f; 配置字段 常用命令 安装 1.下载 2.授权 使用 1.创建文件 2.启动 docker Swarm 关键概念 调度策略 spread binpack random 特性 集群部署 1.准备 2.创建swarm并添加节点 在主服务器上创建swarm集群 节点…...

VS Code 使用 clang++ 编译,使用 cppvsdbg 或 lldb 调试的配置方法

需要安装的 VS Code LLVM VS Code 需要安装的插件&#xff1a; C/C&#xff08;用来配置 c_cpp_properties.json&#xff09; CodeLLDB&#xff08;如果你要用 lldb 调试&#xff0c;那么这个插件就需要安装&#xff0c;用来连接到 lldb 调试器&#xff09; 流程 我们都…...

android11,12 Launcher3编译什么

1首先看看手机里的是什么 adb shell pm path com.android.launcher3 package:/system_ext/priv-app/Launcher3QuickStep/Launcher3QuickStep.apk 然后就编译Launcher3QuickStep 2push apk 没什么说的&#xff0c;push到对应的文件夹 /system_ext/priv-app/Launcher3Quick…...

Go 第三方库引起的线上问题、如何在线线上环境进行调试定位问题以及golang开发中各种问题精华整理总结

Go 第三方库引起的线上问题、如何在线线上环境进行调试定位问题以及golang开发中各种问题精华整理总结。 01 前言 在使用 Go 语言进行 Web 开发时&#xff0c;我们往往会选择一些优秀的库来简化 HTTP 请求的处理。其中&#xff0c;go-resty 是一个被广泛使用的 HTTP 客户端。…...

【C语言】#define 宏定义初步使用

使用宏定义可以防止出错&#xff0c;提高可移植性&#xff0c;可读性&#xff0c;方便性等。 下面列举了一些成熟软件中常用的宏定义。 重新定义一些基本类型 重新定义一些类型&#xff0c;防止由于各种平台和编译器的不同&#xff0c;而产生的类型字节数差异&#xff0c;方便…...

项目里面怎么解决跨域的?

一.前端配置跨域 proxy解决跨域 在vue.config.js中通过proxy devServer中配置反向代理。 devServer: {port: port,open: true,overlay: {warnings: false,errors: true},// 配置反向代理proxy: {// 当地址中有/api的时候会触发代理机制/api: {target: http://ihrm-java.ithe…...

Oracle 批量导出表注释和主键

–查询分表&#xff08;目前分了16张表&#xff09; –先查询注释为空的表&#xff0c;也就是11表做示例&#xff0c;统计出来以后11批量修改成1 select owner,column_name,comments,table_name from all_col_comments a where a.table_name like ‘TB%1’ and a.comments is n…...

Linux C++ 海康摄像头获取过车信息

代码 void CALLBACK MessageCallback(LONG lCommand, NET_DVR_ALARMER *pAlarmer, char *pAlarmInfo, DWORD dwBufLen, void *pUser) {printf("enter MessageCallback---------------------->\n");int i;NET_DVR_ALARMINFO_V30 struAlarmInfo;memcpy(&struAl…...

iOS逆向:越狱及相关概念的介绍

在上一篇内容中我们介绍了App脱壳的技术&#xff0c;今天我们来介绍一个和iOS逆向密切相关的知识&#xff1a;越狱。 iOS操作系统的封闭性一直是开发者们关注的焦点之一。为了突破Apple的限制&#xff0c;越狱技术应运而生。本文将深入探讨iOS越狱&#xff0c;包括可越狱的版本…...

SQL语法与DDL语句的使用

文章目录 前言一、SQL通用语法二、DDL语句1、DDL功能介绍2、DDL语句对数据库操作&#xff08;1&#xff09;查询所有数据库&#xff08;2&#xff09;查询当前数据库&#xff08;3&#xff09;创建数据库&#xff08;4&#xff09;删除数据库&#xff08;5&#xff09;切换数据…...

Node.js /webpack DAY6

一、Node.js 入门 1. 什么是 Node.js&#xff1f; 2. 什么是前端工程化&#xff1f; 3. Node.js 为何能执行 JS&#xff1f; 4. Node.js 安装 5. 使用 Node.js 总结 6. fs 模块 - 读写文件 /*** 目标&#xff1a;基于 fs 模块 读写文件内容* 1. 加载 fs 模块对象* 2. 写入文件…...

Java:SpringBoot使用AES对JSON数据加密和解密

目录 1、加密解密原理2、项目示例2.1、项目结构2.2、常规业务代码2.3、加密的实现 2.4、接口测试2.5、总结 1、加密解密原理 客户端和服务端都可以加密和解密&#xff0c;使用base64进行网络传输 加密方 字符串 -> AES加密 -> base64解密方 base64 -> AES解密 -&g…...

【PHP】Swoole:一款强大的PHP网络编程工具

在科学计算领域&#xff0c;Swoole是一款功能强大的PHP扩展&#xff0c;它提供了高性能的网络通信和异步编程功能。Swoole不仅支持TCP、UDP、Unix Socket和HTTP等通信协议&#xff0c;还具有异步并发处理能力&#xff0c;使得PHP开发者能够轻松地构建高性能的网络应用程序。 1…...

【C语言】每日一题(除自身以外数组的乘积)

添加链接描述&#xff0c;链接奉上 方法&#xff1a; 暴力循环:前缀积后缀积&#xff08;分组&#xff09;: 暴力循环: 暴力循换真的是差生法宝&#xff0c;简单好懂&#xff0c;就是不实用&#xff0c;大多数的题目都会超过时间限制&#xff08;无奈&#xff09; 思路&…...

C语言每日一练-----Day(4)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今日练习题关键字&#xff1a;记负均正    旋转数组的最小数字    二分查找 &#x1f493;博主…...

如何使用工具将批量查询的物流信息导出到表格

现如今&#xff0c;物流行业发展迅速&#xff0c;人们对于物流信息的查询需求也越来越高。为了满足用户的需求&#xff0c;我们推荐一款便捷高效的物流信息查询工具——"固乔快递查询助手"软件。 首先&#xff0c;用户需要下载并安装"固乔快递查询助手"软件…...

Haproxy+Keepalive 整合rabbitmq实现高可用负载均衡

Haproxy 实现负载均衡 HAProxy 提供高可用性、负载均衡及基于 TCPHTTP 应用的代理&#xff0c;支持虚拟主机&#xff0c;它是免费、快速并且可靠的一种解决方案&#xff0c;包括 Twitter,Reddit,StackOverflow,GitHub 在内的多家知名互联网公司在使用。HAProxy 实现了一种…...

电子病历系统的核心技术——电子病历编辑器

一体化电子病历系统基于云端SaaS服务的方式&#xff0c;采用B/S&#xff08;Browser/Server&#xff09;架构提供&#xff0c;覆盖了医疗机构电子病历模板制作到管理使用的整个流程。除实现在线制作内容丰富、图文并茂、功能完善的电子病历模板外&#xff0c;还可按照医疗机构的…...

C++------map和set的使用

文章目录 关联式容器键值对树型结构的关联式容器set的介绍map的介绍 关联式容器 什么是关联式容器&#xff1f;它与序列式容器有什么区别&#xff1f; 关联式容器也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其里面存储的是<key&#xff0c;value>结…...

URI和URL和URN区别

URI、URL 和 URN 是一系列从不同角度来看待资源标识和定位的概念。虽然它们有一些重叠&#xff0c;但每个概念都强调了不同的方面。 URI&#xff08;Uniform Resource Identifier&#xff09;&#xff1a;URI 是一个通用的术语&#xff0c;用于标识和定位资源。它是一个抽象的概…...

【Unity学习笔记】DOTween(1)基础介绍

本文中大部分内容学习来自DOTween官方文档 文章目录 什么是DOTween&#xff1f;DOSetOnTweenerSequenceTweenNested tween 初始化使用方式 什么是DOTween&#xff1f; DOTween是一个动画插件&#xff0c;Tween是补间的意思。这个插件以下简称DOT&#xff0c;DOT很方便使用&…...

springboot项目,使用JNA框架调用C++库无法捕获异常的解决思路

写在前面&#xff1a;这个东西真的坑&#xff0c;工作上遇到的和JNA项目的入门案例差别就像是二重积分与小学数学之间的差距&#xff0c;折磨&#xff01; 使用 JNA&#xff08;Java Native Access&#xff09;框架调用 C 库时&#xff0c;如果出现问题导致进程直接结束而无法捕…...

【项目 计网7】4.20 多进程实现并发服务器 4.22 多线程实现并发服务器

文章目录 4.20 多进程实现并发服务器server_process.cclient.c4.22 多线程实现并发服务器客户端代码&#xff1a;服务端代码&#xff1a; 4.20 多进程实现并发服务器 要实现TCP通信服务器处理并发的任务&#xff0c;使用多线程或者多进程来解决。 思路&#xff1a; 1、一个父进…...

论文阅读_扩散模型_LDM

英文名称: High-Resolution Image Synthesis with Latent Diffusion Models 中文名称: 使用潜空间扩散模型合成高分辨率图像 地址: https://ieeexplore.ieee.org/document/9878449/ 代码: https://github.com/CompVis/latent-diffusion 作者&#xff1a;Robin Rombach 日期: 20…...

LeetCode——回溯篇(二)

刷题顺序及思路来源于代码随想录&#xff0c;网站地址&#xff1a;https://programmercarl.com 目录 131. 分割回文串 93. 复原 IP 地址 78. 子集 90. 子集 II 491. 递增子序列 131. 分割回文串 给你一个字符串 s&#xff0c;请你将 s 分割成一些子串&#xff0c;使每个…...

RabbitMQ工作模式-发布订阅模式

Publish/Subscribe&#xff08;发布订阅模式&#xff09; 官方文档&#xff1a; https://www.rabbitmq.com/tutorials/tutorial-three-python.html 使用fanout类型类型的交换器&#xff0c;routingKey忽略。每个消费者定义生成一个队列关绑定到同一个Exchange&#xff0c;每个…...

JDK源码解析-Object

1. Object类 所有类的基类——java.lang.Object Object 类是所有类的基类&#xff0c;当一个类没有直接继承某个类时&#xff0c;默认继承Object类Object 类属于 java.lang 包&#xff0c;此包下的所有类在使用时无需手动导入&#xff0c;系统会在程序编译期间自动导入。 思…...

pinia——添加插件——基础积累

问题&#xff1a;是否给pinia添加过插件&#xff1f;具体添加的方式是什么&#xff1f; 在pinia中&#xff0c;我们可以为仓库添加插件&#xff0c;通过添加插件能够扩展以下的内容&#xff1a; 为 store 添加新的属性 定义 store 时增加新的选项 为 store 增加新的方法 包装现…...

软件国产化之殇

今天又看到这么一个帖子讨论一款国产化软件&#xff0c;属实给我震撼到了。 对于国产化产品&#xff0c;一直主打的都是”自研“&#xff0c;难道是我对”自研“这个词的理解有误&#xff1f; 做一个产品&#xff0c;别人开源了&#xff0c;你拿过来使用&#xff0c;你可以说…...

SQLyog问题处理集合

sqlyog 问题处理 1. 错误号码:1049错误&#xff1a; 数据库命令参数参考&#xff1a;数据库命令地址 检查数据库是否存在检查创建的数据库名称 与 要进行连接的数据库名称是否一致&#xff1b; 2. 错误号码:1819错误&#xff1a; MySQL授予远程连接权限时出现&#xff1a; …...

JavaSE【继承和多态】(1)(重点:初始化、pretected封装、组合)

一、继承 继承 (inheritance) 机制 &#xff1a;是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特 性 的基础上进行扩展&#xff0c;增加新功能 &#xff0c;这样产生新的类&#xff0c;称 派生类 。 继承呈现了面向对象程序设计的层次结…...

无涯教程-Android Studio函数

第1步-系统要求 您将很高兴知道您可以在以下两种操作系统之一上开始Android应用程序的开发- MicrosoftWindows10/8/7/Vista/2003(32或64位)MacOSX10.8.5或更高版本,最高10.9(小牛) GNOME或KDE桌面 第二点是,开发Android应用程序所需的所有工具都是开源的,可以从Web上下载。以…...

CentOS8安装mysql8.0.24

一、下载mysql安装包并解压 执行以下命令&#xff1a; # 创建mysql安装目录 mkdir /usr/local/mysql # 进入mysql安装目录 cd /usr/local/mysql/ # 下载mysql-8.0.24 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz # 解压…...

Quasi-eccentricity Error Modeling and Compensation in Vision Metrology

论文&#xff1a;Quasi-eccentricity Error Modeling and Compensation in Vision Metrology 中文&#xff1a;视觉计量中准偏心误差建模与补偿 论文地址&#xff1a;Sci-Hub | Quasi-eccentricity error modeling and compensation in vision metrology. Measurement Scienc…...

ai智能电话机器人是人类的助手和朋友

一直以来&#xff0c;人工智能都是人们关注的热门话题。在以前&#xff0c;说到人工智能&#xff0c;第一想到的是“机器人”&#xff0c;随着人工智能的普及&#xff0c;AI已经渗透到我们生活的每一个角落。现在&#xff0c;说起人工智能&#xff0c;可能会想到“无人驾驶、无…...

应用TortoiseSVN的SubWCRev管理VisualStudio C#项目编译版本号

首先要安装 TortoiseSVN, 并确保TortoiseSVN的bin目录被加入到系统环境变量Path中。 1、拷贝Porperties目录下的文件AssemblyInfo.cs生成副本AssemblyInfo.template, 作为版本管理的模板文件。 2、修改模板文件中的想要管理的版本号信息 // [assembly: AssemblyVersion(&quo…...

【八股】2023秋招八股复习笔记5(计算机网络-CN)

文章目录 八股目录目录1、应用层 & HTTP一些http题HTTPS 加密原理&#xff08;问过&#xff09;HTTP/1.1 新特性HTTP/2.0 与 RPC&#xff08;问过&#xff09;GET 和 POST 比较 2、传输层 & TCPTCP三次握手 & 四次挥手&#xff08;问过&#xff09;为什么每次TCP 连…...

【C++】SLT——Vector详解

本片要分享的是关于STL中Vector的内容&#xff0c;Vector的内容于string非常相似&#xff0c;只要会使用string那么学习Vector时会非常流畅。 目录 1.vector介绍 2.vector的简单实用 2.1.简单的无参构造 ​编辑2.2.简单带参构造 2.3.迭代器区间初始化 2.4.vector的遍历 …...

企业网络安全:威胁情报解决方案

什么是威胁情报 威胁情报是网络安全的关键组成部分&#xff0c;可为潜在的恶意来源提供有价值的见解&#xff0c;这些知识可帮助组织主动识别和防止网络攻击&#xff0c;通过利用 STIX/TAXII 等威胁源&#xff0c;组织可以检测其网络中的潜在攻击&#xff0c;从而促进快速检测…...

为什么2G、3G、4G成功了,5G却?

你可能已经多年来一直听到关于闪电般的5G的炒作。虽然新的无线网络在美国仍然没有普及&#xff0c;但5G正在波士顿和西雅图到达拉斯和堪萨斯城等城市慢慢出现。随着连接速度的加快&#xff0c;用户的安全性和隐私保护将增加&#xff0c;因为无线行业试图改善3G和4G的防御。但是…...