6.C# —— 类与对象、数据类型、方法详解

目录

一、类和对象

[1. 核心概念](#1. 核心概念)

[2. 类的定义](#2. 类的定义)

[3. 对象创建与赋值](#3. 对象创建与赋值)

二、值类型与引用类型

[1. 值类型](#1. 值类型)

[2. 引用类型](#2. 引用类型)

三、方法的定义与调用

[1. 方法概念](#1. 方法概念)

[2. 方法定义](#2. 方法定义)

[3. 方法调用](#3. 方法调用)

四、方法参数

[1. 普通参数](#1. 普通参数)

[2. 多参数](#2. 多参数)

[3. 对象参数](#3. 对象参数)

[4. 默认参数](#4. 默认参数)

五、核心总结


一、类和对象

1. 核心概念

  • 类 :对象的模板 / 蓝图,是具有相同属性 和行为的集合
  • 对象:类的实例化,是类具体的表现

2. 类的定义

  • 关键字:class
  • 命名规范:大驼峰
  • 访问修饰:常用 public(公共)、internal(内部)
cs 复制代码
public class Student
{
    // 私有字段(类内部使用)
    private int _age;
    
    // 公共属性(外部访问)
    public int Age { get; set; }
    public string Name { get; set; }
    public string Sex { get; set; }
}

3. 对象创建与赋值

方式 1:先创建,后赋值

cs 复制代码
Student student = new Student();
student.Name = "张三";
student.Age = 10;
student.Sex = "男";

方式 2:创建时直接赋值

cs 复制代码
Student lisi = new Student() { Name = "李四", Age = 20, Sex = "女" };

二、值类型与引用类型

1. 值类型

  • 存储:栈内存 ,保存值本身
  • 赋值:拷贝一份新数据,互不影响
  • 类型:int、float、double、bool、char、枚举、结构体、DateTime
cs 复制代码
int a = 10;
int b = a;  // 拷贝值
a = 30;     // 修改a,b不变
Console.WriteLine(b);  // 10

2. 引用类型

  • 存储:堆内存 ,保存内存地址 / 引用
  • 赋值:拷贝地址,指向同一块内存,一改全改
  • 类型:string、class、对象、数组、集合
cs 复制代码
Book b1 = new Book();
b1.Name = "远大前程";

Book b3 = new Book();
b3.Name = "无";
b1 = b3;          // 共用地址
b3.Name = "无1";  // 修改b3,b1同步变化
Console.WriteLine(b1.Name);  // 无1

三、方法的定义与调用

1. 方法概念

  • 封装一段功能代码,实现代码复用
  • 组成:修饰符 + 返回值 + 方法名 + 参数 + 方法体

2. 方法定义

cs 复制代码
// 公共静态无返回值无参方法
public static void Test()
{
    // 方法体
    Console.WriteLine("方法执行");
}

3. 方法调用

  • 静态方法:类名.方法名() 或直接调用
  • 非静态方法:对象.方法名()
cs 复制代码
Test();  // 直接调用静态方法
Program.Test();  // 类名调用

四、方法参数

1. 普通参数

cs 复制代码
public static void Test(string name)
{
    Console.WriteLine(name);
}

// 调用
Test("细雪");

2. 多参数

cs 复制代码
public static void Test1(int count, string name)
{
    for (int i = 0; i < count; i++)
    {
        Console.WriteLine(name);
    }
}

3. 对象参数

cs 复制代码
public static void Test2(Dog dog)
{
    Console.WriteLine(dog.Name + ":" + dog.Age);
}

4. 默认参数

  • 写在参数列表最后
  • 不传参使用默认值,传参使用传入值
cs 复制代码
public static void Test4(int count, string name, string lieji = "劣迹明星")
{
    Console.WriteLine(name + "是" + lieji);
}

// 调用
Test4(10, "你好");             // 使用默认值
Test4(10, "理解", "榜样明星"); // 使用传入值

五、核心总结

  1. 类与对象:类是模板,对象是实例;字段私有、属性公开
  2. 值类型:存栈中,赋值拷贝,互不影响
  3. 引用类型:存堆中,赋值传地址,一改全改
  4. 方法:封装功能,支持多参数、对象参数、默认参数
  5. 静态方法:通过类名直接调用,无需创建对象
相关推荐
Behavior1 小时前
Unity 7.0 Alpha 拆解:编辑器干掉 Mono 换 CoreCLR
c#·unity3d·游戏开发
淡海水2 小时前
02-06-原理篇-增量式GC与并发GC
算法·unity·c#·并发·gc·增量
Vertira2 小时前
C# 函数封装成 DLL,
开发语言·c#
浅尝辄止;4 小时前
设计模式在HIS/LIS医疗系统中的完整实践指南(C#版)
开发语言·设计模式·c#
kimloner14 小时前
开源一个 376KB 的 Windows 桌面小工具:便签 + 截图标注 + OCR + 待办提醒(C# / WinForms)
windows·开源·c#·ocr·winforms
阿松爱学习15 小时前
【Unity开发】Aspose.PDF的使用
unity·pdf·c#
半亩码田15 小时前
C#转Python第4.8篇:正则表达式:Python re 模块 vs C# System.Text.RegularExpressions
python·正则表达式·c#
FPGA小徐16 小时前
【一生一芯 / PA】异常响应机制:RISC-V 中 ecall → mtvec → mret 的完整代
开发语言·数据库·c#
淡海水16 小时前
02-04-原理篇-GC Roots与对象图遍历
算法·unity·c#·图·gc·遍历·roots
胖纸不争21 小时前
嫌桌面 Agent 太重,我“自己”写了一个
ai·c#·net core