opp
OOP面向对象编程
面向过程
线性过程,第一步做什么,第二步做什么
适合处理一些较为简单的问题
分类思维模式,架构很清楚
面向对象
之前的学习都是面向过程的,面向对象思想是思考解决问题需要哪些分类,然后对这些分类进行单独思考。最后才对某个分类下的细节进行面向过程的思索
时候解决较为复杂的问题
宏观上把握面向对象(我要干嘛,一件抽象的事情),具体操作面向过程(我要怎么完成)
类是对一系列有相同特点的对象的集合
本质:以类的方式组织代码,以对象的组织(封装)数据
看到这里我的感觉是,面向对象就是选择具体的问题,分成几个我们人能理解,而不是计算机能理解的小方块交给类来做,我们引用我们写的类(用面向过程思想来写的,是计算机能理解的方法)来进行合并,从而解决问题
程序员没有对象怎么办,new一个就好了
三大特性
- 封装(对代码进行分存,对外留一个小口便于访问)
- 继承(拥有子类和父类,子类会获得父类的所有东西)
- 多态(同一个事物会有多种形态,不同的编程可以完成一件相同的事情,我们可以选择他们的好坏供自己使用)
回顾方法的定义
方法调用
静态方法之间可以互相调用,非静态方法之间能互相调用
static和类一起加载 实例方法在实例化之后才存在
一个已经存在的东西不能调用一个还不存在的东西
所以静态方法可以调用非静态方法,而非静态方法不能调用静态方法
备注:
一个类里面只能有一个public class,但可以有多个class
这里的Person person也是可以的
类与对象的关系
类是一种抽象的数据类型,它是对某一类事物整体定义,但是不能表达一个具体的事物
对象是抽象概念的具体实例
如果类是动物那么对象就可以是猫,是具体的实例
创建对象
new来创建对象,类被实例化返回的值为对象
创建对象时类中的值会被初始化
this代表当前这个类,可以引用实例变量
构造器
发现我们明明没有写任何方法我们也可以调用
通过查看class文件我们可以发现
类中默认了给了一个和类名相同的空方法,也就是构造器(构造方法)
构造方法必须与类名相同,必须没有返回类型,也不能写void,无参构造
构造器可以给我们初始化一些信息,可以实例化初始值
核心作用1.使用new关键字必须要有构造器
2.初始化对象的值
使用new关键字本质是在调用构造器
一旦定义了有参构造,无参构造就必须显示定义
我们一旦删除了这里的无参构造,就会发现无法调用,我们必须写上这一个构造器才可以使用,不能再使用不显示的那个了
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现