面向对象之封装一

类和对象

一.面向对象概念回顾

万物皆对象

用程序来抽象(形容)对象

用面向对象的思想来编程。

二.什么是类

基本概念:具有相同特征;

具有相同行为;

一类事物的抽象;

类是对象的模板;

可以通过类创建出对象

类是一个特殊的语句块

类的关键词:class

三.类申明在哪里

类一般申明在namespace语句块中。

四.类申明的语法

(访问修饰符)class 类名{

​ //特征——成员变量

​ //行为——成员方法

​ //保护特征——成员属性

​ //构造函数和析构函数

​ //索引器

​ //运算符重载

​ //静态成员

}

五.类申明的实例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
namespace 语法知识
//命名空间——像是工具包。(在学习面向对象相关知识点时会涉及)
{
//这个类是用来形容人类的
class Person{
//特征——成员变量
//行为——成员方法
//保护特征——成员属性
//构造函数和析构函数
//索引器
//运算符重载
//静态成员
}
//这个类是用来形容机器的
class Machine{

}
internal class Program
{
static void Main(string[] args)
{

}
}
}

命名:帕斯卡命名法

注意:同一个语句块中的不同类,不能重名

class即为封装的第一步

六.什么是(类)对象

基本概念

类的申明和类对象(变量)申明是两个概念

类的申明类似枚举和结构体的申明 类的申明相当于申明了一个自定义变量类型。

而对象是类创建出来的

相当于申明了一个指定类的变量

类创建对象的过程,我们一般称为实例化对象

类对象都是引用类型(重要!!!)

七.实例化对象基本语法

类名 变量名;

或者

类名 变量名 =null;(null代表空,不分配堆内存空间)

或者

类名 变量名 =new 类名();

(上面两种都是默认为空,即没有进行赋值(初始化),下面一种是有进行初始化)

八.实例化对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
namespace 语法知识
//命名空间——像是工具包。(在学习面向对象相关知识点时会涉及)
{
//这个类是用来形容人类的
class Person{
//特征——成员变量
//行为——成员方法
//保护特征——成员属性
//构造函数和析构函数
//索引器
//运算符重载
//静态成员
}
//这个类是用来形容机器的
class Machine{

}
internal class Program
{
static void Main(string[] args)
{
Person p;
Person p2=null;
//因为类是引用类型,因此上面两种都是现在栈上开辟一个空间储存地址,与下面不同的是,它刚开始储存的是一个空地址(即null地址),这个时候,相应的堆空间里面也没有分配内存,毕竟你是空地址,堆的分配又是动态分配,自然不会先开辟空间了
Person p3=new Person();
//相当于在栈上分配了一片空间存储了一个new地址,这个时候,堆当中也分配了相应的空间准备存储相应的引用类型了。
//相当于一个人对象
Person p4=new Person();
//相当于又是一个人对象
Machine m=new Machine();
Machine m1=new Machine();
}
}
}

注意:p3,p4中,虽然他们是来自一个类的实例化对象,但是他们的特征行为等等信息都是他们独有的,千万千万不要觉得他们是共享了数据,两个人,你是你,我是我,彼此没有关系。

面向对象编程就是开启了“女娲模式”,你想要什么对象,你就new什么对象,一切的对象都是由我们来控制。

我们相当于整个程序世界的总导演

总结

类的申明和类对象的申明是两个概念

类的申明是申明对象的模板,用来抽象(形容)显示事物

而类对象的申明是用来表示现实中的对象个体

(个性与共性,抽象与具体的关系)


面向对象之封装一
https://gaster44.github.io/2023/11/28/面向对象之封装一/
作者
huangjinhong
发布于
2023年11月28日
许可协议