黑马程序员__面向对象

面向对象是一种思想,把复杂事物简单化,把面向过程的执行者变成了指挥者。过程其实就是函数,而对象将函数和一些内容封装。把事物的属性和行为封装成对象,再把对象抽象成类。


类的访问修饰符有public和final。而成员的修饰符有public private protected  static 。

成员变量和局部变量的区别:成员变量定义在类内方法外,在本类中有效,存在于堆内存;而局部变量存在于方法中、参数上、语句中,在定义时到大括号有效,存在于栈内存。

构造函数和普通函数的区别:构造函数与类同名,没有返回值,只在创建对象的时候调用一次;普通函数有返回值,可由对象多次调用。

构造代码块是给所有对象初始化,而构造函数则是给相对应的对象初始化。


Person  p=new Person(); 在内存中:1,先找到Person的字节码文件,加载到内存。2,执行main方法时会在栈内存中开辟一片空间,在栈区中分配了一个变量p。3,在堆内存中开辟实体空间,并分配一个内存首地址值。 4,在空间中进行属性的空间分配,并进行默认初始化。5,对空间中的属性进行显示初始化。6,属性进行构造代码块初始化。7,调用该实体对应的构造函数进行构造函数初始化。8,把首地址值赋给p,则p指向了该对象。


封装用于隐藏对象的实现细节。仅对外提供公共访问方式。好处是将变化隔离,提高复用性,安全,便于使用。

static:所有对象共享的成员可以用静态修饰,成员可以用对象、也可以用类名调用。静态随着类的加载而存在,优先于对象,所以在静态方法中不能存在非静态成员。this和super也不可以。  好处是:节约内存   弊端是:存在时间太长。


this和super不可以同时出现在构造函数中,因为它们都只能在第一行。子类的构造函数中,第一行默认是super(),即调用父类的空参构造函数,若父类没有空参构造函数,则需显示的调用相应的父类构造函数。子类之所以调用父类的构造函数,是因为子类继承了父类的成员,要通过调用父类构造方法来查看父类成员的初始化情况。


继承是“is a”,实现接口是“like a”。

子类方法覆盖父类方法时,访问权限应该大于等于父类,抛出的异常应小于等于父类异常。

继承打破了封装性,所以一些不想被继承的类,或者一些不想被覆盖的方法可以用final来修饰。final可以修饰类、方法、变量。


抽象类:抽象类、抽象方法须由abstract修饰。方法只能声明,没有方法体。抽象类不可以被创建对象(但是有构造方法,可以给子类进行初始化)。而且抽象类中可以定义非抽象方法。抽象关键字不可以和static、private、final。


接口:interface,接口中的成员都有固定的修饰符。成员函数:public abstract    成员变量:public  static  final。 子类可以单继承,但是可以多实现。实现接口必须重写所有的抽象方法,否则类将抽象,无法创建对象。

接口是对外提供的规则,是功能扩展,降低了耦合性。


多态:事物的多种形态。前提是必须要有关系:继承或者实现,通常会有覆盖操作。 好处:提高了扩展性。 弊端:自能访问父类中存在的方法,不可以访问子类中特有的方法。多态就是父类的引用接收了子类的对象。

在多态当中,成员变量、静态函数编译运行都看左边。 成员函数编译看左边,运行看右边。

基于STM32F407,使用DFS算法实现最短迷宫路径检索,分为三种模式:1.DEBUG模式,2. 训练模式,3. 主程序模式 ,DEBUG模式主要分析bug,测量必要数据,训练模式用于DFS算法训练最短路径,并将最短路径以链表形式存储Flash, 主程序模式从Flash中….zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值