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

学习笔记(一)

前言

一、对象

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)
        {
            //从控制台读取一行输入,并将其赋值给字符串变量s
            string 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.kler.cn/news/307794.html

相关文章:

  • sicp每日一题[2.12]
  • 进阶SpringBoot之 Swagger 分组与接口注释
  • 中级练习[10]:Hive SQL
  • MySQL数据的增删改查(一)
  • 认识原码反码补码
  • 一文快速上手-create-vue脚手架
  • 2024年CAD图纸加密软件|加密图纸软件推荐:10款高效CAD加密软件
  • 苍穹外卖Day01
  • 技嘉RTX 4070 SUPER WUKONG OC显卡评测:天命人最佳2K游戏搭档 温度仅61℃
  • UE5-俯视角色移动(蓝图)01
  • 解密AI创作:提升Prompt提示词的提问技巧
  • 学习之git的远程仓库操作的常用命令
  • C++3D迷宫
  • GO 反射
  • CNSS Recruit 2024 Web方向 题解WriteUp
  • git编译安装报错
  • 基于STM32的温度、电流、电压检测proteus仿真系统(OLED、DHT11、继电器、电机)
  • 计算机毕业设计 高校学术交流平台的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 借助大模型将文档转换为视频
  • html+css+js网页设计 旅游 厦门旅游网10个页面
  • element-plus的面包屑组件el-breadcrumb
  • 使用 SuperCraft AI 设计书橱模型的指南
  • 简单代码实现视频转图片_py
  • 在Flask中实现日志记录
  • 动态ip切换频率是快点好还是慢点好
  • Mybatis批量操作
  • Java 使用 Redis
  • 并发容器(Map、List、Set)实战及其原理分析
  • 如何快速清理Docker中的停止容器?
  • HFish开源蜜罐系统常见问题排查