一、类和对象 核心概念
1. 类(模板)
类是抽象模板、图纸、模型。
类本身不占用内存,只负责定义:有哪些字段、属性、方法。
2. 对象(实例)
对象是根据类模板 new 出来的具体实例。
所有由同一个类创建出来的对象,都属于同一种数据类型。
一句话总结:类是模板,对象是模板造出来的具体个体。
二、类的定义语法规范
1. 书写位置
类必须写在 namespace 命名空间内部,不能直接写在最外层。
2. 语法格式
cs
修饰符 class 类名
{
// 类的成员:字段、属性、方法
}
3. 命名规范
-
类名:大驼峰命名法(首字母大写)
-
常用修饰符:public / internal
三、类的三大成员
类内部可以包含三种成员:字段、属性、方法
1. 字段(成员变量)
存储数据的变量,默认访问修饰符为 private 私有
cs
public class People
{
string name; // 默认 private
int age; // 默认 private
bool sex; // 默认 private
public string id;// public 公共字段
private int _height; // 手动私有字段
}
重点 :不写修饰符 = private
2. 成员方法
描述对象的行为,分为:静态方法、非静态方法
(1)非静态方法(实例方法 / 对象方法)
-
不带 static
-
必须通过 对象名.方法名 调用
cs
public void F1()
{
Console.WriteLine("非静态无返回值方法");
}
// 调用
People zs = new People();
zs.F1();
(2)静态方法(类方法)
-
带 static 关键字
-
必须通过 类名.方法名 调用
-
不属于对象,属于类本身
cs
public static int F2(int a)
{
return 100000;
}
// 调用
People.F2(10);
四、对象的创建方式
对象必须通过 new + 构造函数 创建
cs
// 语法:类名 对象名 = new 类名();
People zs = new People();
zs.id = "002";
People ls = new People();
ls.id = "001";
每 new 一次,就会产生一个全新的独立对象,数据互不干扰。
五、访问修饰符(核心重点)
1. 四种访问权限
-
public 公共的:任何地方都能访问
-
private 私有的 :仅当前类内部可以访问(默认权限)
-
internal 内部的 :当前项目内 任意访问,跨项目无法访问
-
protected 受保护的:当前类和子类可以访问(后续继承讲解)
2. 代码验证 internal 权限
默认 class 修饰符为 internal
-
同项目:可以直接 new 对象、访问成员
-
跨项目:无法直接访问,需要手动添加项目引用 + 命名空间
cs
internal class Program
{
static void Main(string[] args)
{
//internal 在一个项目中可以相互访问
Class1 c1 = new Class1();
c1.age = 1;
// 访问第4个课件People的类 属于internal 不能跨项目访问
//如何添加引用?
// 点击项目引用--->添加引用---->找到要添加项目----->选中,确定---->可以在当前项目引用中看到添加的东西
//--->添加命名空间
People p = new People();
p.id = "002";
}
}
public class Class1
{
public int age;//字段
}
3. 跨项目访问步骤(必考实操)
-
右键项目 → 添加 → 项目引用
-
勾选需要引用的目标项目 → 确定
-
在当前代码顶部 引入命名空间
-
即可使用对方项目的 internal / public 类
六、静态方法 VS 非静态方法 终极区别(必背)
| 类型 | 是否带static | 调用方式 | 归属 |
|---|---|---|---|
| 非静态方法 | 无 | 对象名.方法() | 属于对象 |
| 静态方法 | 有 | 类名.方法() | 属于类 |
七、全篇终极总结(背诵版)
-
类是模板,对象是实例,类不占内存,对象占内存
-
类的成员:字段(存数据)、方法(存行为)
-
字段默认 private,不写修饰符就是私有
-
非静态方法:对象调用;静态方法:类名调用
-
internal:同项目随便用,跨项目需要引用
-
public 全开放、private 仅内部、internal 限项目