一、类与对象 核心概念(必考)
1. 核心关系
-
类:是模板、是类型,仅做定义,不占用内存
-
对象:是类的实例,通过模板创建出来的真实个体,占用内存
-
一句话:类是图纸,对象是造出来的实物
2. 对象创建规则
对象必须通过构造函数 new 创建
// 语法:类名 对象名 = new 类名();
People zs = new People();
People ls = new People();
每 new 一次,就产生一个全新独立对象,数据互不干扰。
二、类的定义规范(语法默写)
1. 类的位置
必须写在 namespace 命名空间内部,不能写在方法内部。
2. 类语法格式
// 修饰符 class 类名 { 类成员 }
public class People
{
}
3. 命名与修饰符规则
-
类名:大驼峰命名法
-
常用修饰符:public(公共)、internal(默认内部)
三、类的三大成员:字段、属性、方法
1. 字段(成员变量)
作用:存储对象的数据状态
语法:修饰符 数据类型 变量名;
string name; // 私有字段(默认)
int age;
bool sex;
public string id; // 公共字段
private int _height; // 私有规范字段(下划线开头)
字段核心规则(超级重点)
-
字段默认访问权限是 private(私有的)
-
私有字段:只能在当前类内部访问,外部无法直接赋值读取
-
public 公共字段:外部对象可以直接访问、赋值、读取
四、成员方法:静态方法 & 非静态方法(必考区分)
1. 非静态方法(实例方法 / 对象方法)
无 static 修饰
public void F1()
{
Console.WriteLine("非静态无返回值方法");
}
调用规则:必须通过【对象】调用
zs.F1();
ls.F1();
2. 静态方法(类方法)
带 static 修饰,属于类不属于对象
public static int F2(int a)
{
return 100000;
}
调用规则:必须通过【类名】调用,不需要 new 对象
People.F2(10);
五、静态、非静态 终极区别(简答题满分)
| 类型 | 修饰符 | 归属 | 调用方式 | 创建对象 |
|---|---|---|---|---|
| 非静态方法 | 无 static | 归属对象 | 对象名.方法() | 必须 new 对象 |
| 静态方法 | 有 static | 归属类 | 类名.方法() | 无需创建对象 |
六、访问权限重点(必考坑点)
-
类中字段 默认 private 私有
-
私有字段:外部无法直接访问
-
public 公共字段/方法:任意位置都可以访问
七、考前极简背诵口诀
-
类是模板对象实例,new创建对象占内存
-
字段默认是私有,public公开可访问
-
无static对象调用,有static类来调用
-
非静态属于对象,静态方法属于类
四大访问修饰符(internal重点+跨项目访问),访问修饰符的测试例子
一、四大访问修饰符总览(考试必背)
public、private、internal、protected
控制:类、字段、属性、方法 的访问权限
二、逐权限精讲(结合你的代码)
1. internal(重点!你代码核心考点)
权限规则
只能在【当前项目】内部访问,绝对不能跨项目访问
默认权限
类默认访问修饰符就是 internal
你代码:
internal class Class1 { ... }
含义:Class1 只能在本项目随便用,别的项目引用也访问不到
你的代码验证
// 同项目:正常访问
Class1 c1 = new Class1();
c1.age = 1;
经典报错场景(必考)
你上一个课件的 People 类是 internal
所以:新项目即使添加引用、引入命名空间,也无法访问 People 类
这就是 internal 的核心限制:锁死项目边界
2. public 公共的
最高权限,任意位置、任意项目都能访问
你的代码中:
public int age;
public 字段/方法:跨项目、跨类、任意地方都能访问
3. private 私有的(默认成员权限)
仅限当前类内部访问
字段、方法默认都是 private
出了当前类,完全无法访问
4. protected 受保护的
本类内部 + **子类(继承)**可以访问
同项目其他普通类无法访问
三、访问权限范围排序(从大到小)
public > internal > protected > private
四、修饰符使用位置硬性规则(必考)
1. 类能用的修饰符:只有 public / internal
类不能用 private、protected!!报错
2. 类成员(字段、方法、属性)四种都能用
public / internal / protected / private
五、跨项目访问完整步骤(你代码提问点)
Q:如何跨项目访问别的类?
必须同时满足两个条件:
-
目标类必须是 public(关键点!internal 跨项目直接GG)
-
当前项目:添加项目引用 + using 引入命名空间
完整操作流程(考试默写版)
-
右键当前项目 → 添加 → 引用
-
选择需要引用的目标项目 → 确定
-
代码头部 using 引入命名空间
-
即可使用对方项目 public 的类和成员
六、终极权限对照表(满分背诵)
| 修饰符 | 访问范围 | 适用位置 |
|---|---|---|
| public | 所有项目、所有位置(最高权限) | 类、成员 |
| internal | 仅限当前项目内部(默认类权限) | 类、成员 |
| protected | 本类 + 子类 | 仅成员 |
| private | 仅限本类内部(最低权限、成员默认) | 仅成员 |
七、超级易错考点(必考坑点)
-
类默认是 internal ,所以默认不能跨项目访问
-
字段/方法默认是 private,外部无法直接访问
-
跨项目光加引用没用!类必须是 public 才可以访问
-
类不允许 private / protected 修饰
八、简答题满分标准答案
1. internal 和 public 的区别?
public 是公共访问权限,所有项目均可访问;internal 仅限当前项目内部访问,无法跨项目访问。类默认修饰符为 internal,成员默认修饰符为 private。
2. 为什么引用了项目、加了命名空间还是访问不到类?
因为目标类是 internal 修饰,internal 只允许本项目访问,跨项目即使添加引用也无法访问,需要将类改为 public。