学习笔记(一)

前言

一、对象

1、由类建模而成,是消息、数据和行为的组合

2、可以接收和发送消息,并利用消息进行彼此的交互。消息要包含传送给对象接收的信息

3、类的实例化:把类转换为对象的过程叫类的实例化。

4、对象的特性

(1) 对象有状态:对象的状态由对象的各种属性和相应值构成

(2) 对象可以显示行为(即方法),对象的行为使对象可以完成相应世界级

(3) 对象一个唯一的身份

5、类与对象的关系

(1) 类:将对象进行逻辑上的分类后,描述它们具有的共同特征。相当于一个模型

(2) 对象:由模型产生的,具有它所属的类所具有的一切特征

6、小白理解

(1) 某农场游戏中储存在仓库中的物体有若干种,每种物体都有它自己的属性。

(2) 根据仓库中物体的属性,将它们分为三大类:农具类、收获物类、奖励类

(3) 农具类脚本:描述所有农具共有的属性(也可以再细分更小的类)

(4) 由农具类创建出来的某个具体的农具(如锄头)就是对象,它具有工具类描述的所有属性

(5) 创建出锄头之后,你还可以给锄头赋予其他的属性

二、类

1、类由成员变量和成员方法组成。

(1) 成员变量可以用来存储对象的属性值,而成员方法用于定义对象的行为和操作。

(2) 成员变量也可以称为类的属性,而成员方法可以称为类的方法。

(3) 通过类中的成员变量和成员方法,可以描述出对象的特征和功能。

(4) 在C#中,成员变量和成员方法需要在类中进行定义,并且可以通过对象访问和使用。

1、字段

(1) 属性在类的声明中用变量表示,这样的变量称为字段(类中用于描述对象属性的变量)

(2) 在类内部声明,但在方法声明体之外

2、常见的访问权限

(1) private :只允许在类的内部使用

(2) public :类的外部也可以使用

(3) protected :在派生类中使用

3、方法(Method):C#中,所有的变量和方法都存在于类中

4、类的简单实例

(1) 实例和解析

(2) 使用 Hello 类创建一个对象

5、使用类中的方法:

(1) 使用类中的方法之前需要创建一个由这个类产生的对象,再由这个对象使用这个类

(2) 例如:使用 Hello 类中的displayMessage方法

Hello myHello = new Hello();
myHello.displayMessage();

6、通过类名 + .    直接使用的方法

(1) 该方法前有一个关键字static

(2) 只有静态的方法可以直接通过类名调用

(3) 例如Hello类中的 displayMessage 方法所调用的Console类,就是一个静态类

(4) Console类是系统自带的一个静态方法

重点

调用某一个类的方法有两种

① 创建对象后才能调用

Hello myHello = new Hello();
myHello.displayMessage();

② 直接调用(限静态方法)

Console.WriteLine("Hello");//调用Console类中的WriteLine方法
三、命名空间(namespace)

1、标识作用。组织和重用代码的编译单元,避免命名的重复等

2、简单理解:在类名前再加一个名字,以与其他类相区别

3、规定了标识符的可见范围

4、实例:Mis.Hello 类中的 Hello 类只在Mis这个命名空间中可见,

                若在另一个命名空间看到Hello类,则看到的这个Hello类与Mis中的Hello类不是同一种

5、小白理解:

(1) 现有A、B、C、D 四个命名空间,每个命名空间中都有一个名字为 example 的类

      现有赵钱孙李四个家庭,每个家庭都有一个叫小花的女儿

(2) 为区分分别位于四个命名空间中的这四个类,给example添加"A."……这样的前缀

     为区分这四个小花,你依次称她们为:赵小花、钱小花……

(3) 这四个小花不是同一个人,她们有自己的特征

6、引用命名空间

(1) 未引用时:System.Console.WriteLine("Hello");

(2) 使用 Using.System,在后续使用 Console类时,直接写为:Console.WriteLine("Hello");

7、了解

(1) 在每一个新建的C#工程中,系统都会自动把工程中的文件放进一个新的命名空间中

(2) 这个命名空间的名字一般默认为项目的名称

C#程序设计课程中第一个示例

一、实例1

1、启动Visual Studio,新建项目

2、 编辑

3、执行不调试。可以输出"HelloWorld"

4、打开解决方案资源管理器

5、可执行文件地址:\vs\Example01\bin\Debug

二、实例2

1、两个常见的静态类

(1) Console类:控制台类

(2) Convert类:转换类

2、Write和WriteLine的区别:WriteLine可以换行而Write不可以

3、实例:在控制台分两行输入两个整数数字,在第三行显示它们的和

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Example01
{internal class Program{static void Main(string[] args){//从控制台读取一行输入,并将其赋值给字符串变量sstring s = Console.ReadLine();//字符串s转换为一个32位(四个字节)的整数int x = Convert.ToInt32(s);s = Console.ReadLine();int y = Convert.ToInt32(s);int z = x + y;Console.WriteLine(z);}}
}

4、输入的每行中含有多个数据(用空格分割)

(1) double 和float

双精度浮点数(double)是一种数据类型,用于表示带有小数点的数值,并且具有更高的精度和范围。它可以存储更大范围的数值和更多的小数位数。在C#中,双精度浮点数的关键字是 double

单精度浮点数(float)也可以用来表示带有小数的数值,但它的精度和范围相对较低。单精度浮点数的关键字是 float

在字符串转换为数字时分别使用 Convert.ToDouble() 和 Convert.ToSingle()

(2) 实例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Example01
{internal class Program{static void Main(string[] args){//在一行中输入多个数据string s2 = Console.ReadLine();string[] ss2 = s2.Split( ' ' );double[] a = new double[ss2.Length];double sum = 0;for ( int i = 0; i < ss2.Length; i++){a[i] = Convert.ToDouble(ss2[i]);sum = sum+ a[i];}Console.WriteLine(sum);}}
}

(3) 解析

string[] ss2 = s2.Split( ' ' );

将字符串 s2 以空格字符(' ')为分隔符拆分成一个字符串数组
并将其存储在字符串数组 ss2 中。每个子字符串都将作为数组的一个元素

double[] a = new double[ss2.Length];

创建一个与 ss2 数组长度相同的新的双精度浮点数数组 a,用于稍后存储转换后的双精度浮点数值
数组中的每个元素都代表来自 ss2 数组的一个转换后的双精度浮点数值。

(5)

(1)

(2)

(3)

(4)

(5)

(1)

(2)

(3)

(4)

(5)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/425542.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

node.js+Koa框架+MySQL实现注册登录

完整视频展示&#xff1a;https://item.taobao.com/item.htm?ftt&id831092436619&spma21dvs.23580594.0.0.52de2c1bg9gTfM 效果展示&#xff1a; 一、项目介绍 本项目是基于node.jsKoamysql的注册登录的项目,主要是给才学习node.js和Koa框架的萌新才写的。 二、项目…

Datawhale------Tiny-universe学习笔记——Qwen(1)

1. Qwen整体介绍 对于一个完全没接触过大模型的小白来说&#xff0c;猛一听这个名字首先会一懵&#xff1a;Qwen是啥。这里首先解答一下这个问题。下面是官网给出介绍&#xff1a;Qwen是阿里巴巴集团Qwen团队研发的大语言模型和大型多模态模型系列。其实随着大模型领域的发展&a…

Pytorch详解-模型模块(RNN,CNN,FNN,LSTM,GRU,TCN,Transformer)

Pytorch详解-模型模块 Module & parameterModule初认识forward函数 ParameterPytorch中的权重、参数和超参数 Module容器-ContainersSequentialModuleListModuleDictParameterList & ParameterDict 常用网络层LSTM输入和输出 GRUConvolutional Layers卷积层的基本概念常…

第十七节:学习Hutool上传文件(自学Spring boot 3.x的第四天)

这节记录下如何使用Hutool库上传本地的文件到服务器端&#xff08;因为是练习&#xff0c;所以是本地端&#xff09;。 第一步&#xff1a;引入Hutool库最新版本&#xff0c;通过maven方式。&#xff08;最新版本需去maven仓库查询&#xff09; 第二步&#xff1a;编写一个post…

sqlgun新闻管理系统

一&#xff0c;打开主页 1.输入框测试回显点 -1union select 1,2,3# 出现回显点2 2.查看数据库表名 -1union select 1,database(),3# 3.查看表名 -1union select 1,2,group_concat(table_name) from information_schema.tables where table_schemasqlgunnews# 4.查看admin中…

【IP协议】解决 IP 地址不够用的问题(IP地址管理:动态分配、NAT、Ipv6)

文章目录 方案一、动态分配 IP 地址方案二、NATNAT 机制的缺点 方案三、IPv6 方案一、动态分配 IP 地址 一个设备上网就分配 IP&#xff0c;不上网就先不分配&#xff08;权宜之计&#xff09; 方案二、NAT 网络地址转换 以一当千&#xff0c;使用一个 IP&#xff0c;代表一大…

【探索数据结构与算法】希尔排序原理、实现与分析(图文详解)

目录 一、 引言 二、算法思想 三、算法步骤 四、代码实现 五、复杂度 &#x1f493; 博客主页&#xff1a;C-SDN花园GGbond ⏩ 文章专栏&#xff1a;探索数据结构与算法 一、 引言 希尔排序&#xff08;Shell Sort&#xff09;是插入排序的一种更高效的改进版本&#x…

oracle 使用 PL/SQL Developer创建表并插入单条、多条数据

第一步&#xff1a;使用工具创建表&#xff08;前提是库已经创建好了&#xff09;&#xff1a;在当前用户下找到Tables 然后点击并右键&#xff0c;点击新建 写上表名&#xff0c;写上表名的注释 第二步添加字段&#xff1a;点击列&#xff0c;然后分别写上你自己需要的字段及名…

LDR6020,单C口OTG,充放一体新潮流!

PD&#xff08;Power Delivery&#xff09;芯片实现单Type-C接口输入和输出OTG&#xff08;On-The-Go&#xff09;功能&#xff0c;主要是通过支持USB Power Delivery规范和OTG功能的特定硬件和软件设计来实现的。以下是对这一过程的具体解释&#xff1a; 一、PD芯片基础功能 …

OpenCV_图像像素读写操作

本文详细介绍了如何在C项目中使用OpenCV进行图像像素的读写操作&#xff0c;包括使用头文件声明Pixel类&#xff0c;通过遍历和指针方式处理灰度图和彩色图&#xff0c;以及在主函数中调用这些操作。 数组遍历的方式进行图像像素读写 void QuickDemo::pixelVisit_Demo(Mat&am…

【Android安全】Ubuntu 16.04安装GDB和GEF

1. 安装GDB sudo apt install gdb-multiarch 2. 安装GEF(GDB Enhanced Features) 官网地址&#xff1a;https://github.com/hugsy/gef 2.1 安装2021.10版本 但是在Ubuntu 16.04上&#xff0c;bash -c "$(curl -fsSL https://gef.blah.cat/sh)"等命令不好使&…

文字loading加载

效果 1. 导入库 import sys from PyQt5.QtCore import QTimer, Qt, QThread, pyqtSignal from PyQt5.QtGui import QPainter, QFont, QColor, QBrush from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QProgressBar, QLabel 代码首先导入了P…

django-admin自定义功能按钮样式

位置在原来的django-admin 栏中的上方【会因为屏幕大小而变换位置】 <!-- 这里是不会替换掉旧的 添加按钮 &#xff0c;而是添加多一个按钮【点击Crawl Data】--> <!-- /home/luichun/lc/Pyfile/Pywebback/app/paqu/templates/admin/yourmodel_changelist.html -->…

深度揭秘:日志打印的艺术与实战技巧,让你的代码会说话!

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 &#x1f341;日志&#x1f342;日志分模块实现讲解&#x1f343;日志等级的实现&#x1f965;日志时间*时间的获取* &#x1f308;文…

web基础之文件上传

1.下载安装 下载地址 链接&#xff1a;百度网盘-链接不存在 提取码&#xff1a;jhks 安装 直接把他放在phpstudy的WWW目录中。&#xff08;phpstudy的下载安装&#xff0c;可以自行百度一下&#xff09; 打开 访问地址&#xff1a;127.0.0.1/upload-labs 问题 这里可能…

开源PDF工具 Apache PDFBox 认识及使用(知识点+案例)

文章目录 一、认识PDFBox一、pandas是什么&#xff1f;二、导入依赖三、基础功能demo1&#xff1a;读取pdf所有内容demo2&#xff1a;读取所有页内容&#xff08;分页&#xff09;demo3&#xff1a;添加页眉、页脚demo4&#xff1a;添加居中45文字水印demo5&#xff1a;添加图片…

数据结构——栈和队列(队列的定义、顺序队列以及链式队列的基本操作)

目录 队列&#xff08;queue&#xff09;的定义 顺序队——队列的顺序表示和实现 顺序队列&#xff08;循环队列&#xff09;的类型定义 顺序队列上溢问题的解决方法 ​编辑 循环队列的基本操作 队列的基本操作——队列的初始化 队列的基本操作——求队列的长度 队列的…

Element UI入门笔记(个人向)

Element UI入门笔记 将页面分割为一级菜单、二级菜单、导航栏三个部分&#xff1b;使用npm下载安装&#xff0c;使用语句npm i element-ui -s; 布局组件 el-form 用于创建和管理表单&#xff1b;从属性上看&#xff1a; :model&#xff1a;用于双向数据绑定&#xff0c;将表单…

Windows下SDL2创建最简单的一个窗口

先看运行效果 再上代码&#xff1a; #include <stdio.h> #include "SDL.h"int main(int argc, char* argv[]) {// 初始化SDL视频子系统if (SDL_Init(SDL_INIT_VIDEO) -1){printf("Error: %s\n", SDL_GetError());return -1;} // 创建一个窗口SDL_…

『功能项目』战士职业平A怪物掉血【44】

我们打开上一篇43事件中心的项目&#xff0c; 本章要做的事情是给主角增加一个xxxCtrl.cs脚本&#xff0c;再创建一个xxxOpt.cs调用xxxCtrl.cs机制层利用事件中心再写一个主角战士平A对怪物的伤害 首先创建脚本&#xff1a;PlayerCtrl.cs using UnityEngine; public class Pla…