黑马程序员——基础知识——面向对象

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

Day06

06.01 面向对象思想概述

       1、面向过程思想概述 强调的是过程

              第一步

              第二步

       2、面向对象思想概述 由面向过程演变而来

              而面向对象是强调对象,对象里面封装了第一步、第二步...

              只要负责调用对象就行了,由对象调用里面的方法

              找对象(第一步,第二步)

       3、举例

区别:

              买煎饼果子:1、找会摊煎饼的大妈(包含了摊煎饼的技术,如何摊煎饼)

2、给钱3、吃。这个其实就是面向对象,我们只负责给钱就可以了。大妈里面封装了摊煎饼的第一步、第二步。。。,我们只要给钱、吃就可以了。而面向过程:1、学习摊煎饼的技术2、买材料(薄脆,油等)3、开始摊煎饼4、吃5、收拾。面向过程强调过程,而面向对象强调的是对象,把事情交给对象来做,对象里面封装步骤就可以了。对于我们调用者来说,面向对象更加简单。这就是面向过程和面向对象的区别。

              洗衣服:面向过程的话就是...,面向对象只要交给洗衣机就可以了。

       4、面向对象思想特点

              A是一种更符合我们思想习惯的思想

              B可以将复杂的事情简单化,对象里面虽麻烦,但一旦创建,就可以提

供给我服务,或提供给别人服务,可以不断复用。

              C将我们从执行者变成了指挥者

                     角色发生了转换

       5、面向对象开发

              就是不断的创建对象,使用对象,指挥对象做事情,有的话就不用创建,

直接使用,创建了可以对以后进行服务。

       6、面向对象设计

              其实就是在管理和维护对象之间的关系,每个对象都实现不同的功能,

操作者,主要就是对各个对象进行管理和维护。

       7、面向对象三大特征

              封装(encapsulation)

              继承(inheritance)

              多态(polymorphism)

 

06.02 类与对象概述

       1、我们学习编程是为了什么?为了把我们日常生活中实物用学习的语言描述出来。

       2、我们如何描述现实世界事物

              属性 就是该事物的描述信息(事物身上的名词)

              行为 就是该事物能够做什么(事物身上的动词)

       3、java中最基本的单位是类,java中用class描述事物,也是如此描述

              成员变量  就是事物的属性

              成员方法  就是事物的行为

       4、定义类其实就是定义类的成员(成员变量和成员方法)

              A成员变量 和以前定义变量是一样的,只不过位置发生了改变,在类中

的方法外。

              B成员方法 和以前定义方法是一样的,只不过把static去掉,后面再详

细讲解static的作用。

5、类和对象的概念

       A类:是一组相关的属性和行为的集合

       B对象:是该类事物的具体体现

       C举例:

              类        学生

              对象    具体的某个学生就是一个对象

 

06.03 学生类的定义

       1、学生事物

       2、学生类

       3、案例演示

              属性      姓名,年龄,性别

              行为      学习,睡觉


06.04 手机类的定义

       1、模仿学生类,让学生自己完成

              属性      品牌(brand)价格(price)

              行为      打电话call,发信息sendMessage,玩游戏playGame



06.05 学生类的使用

       1、文件名问题

              在一个java文件中写两个类:一个基本的类,一个测试类

              建议:文件名称和测试类名称一致

       2、如何使用对象

              创建对象并使用

              格式:类名 对象名 = new 类名();

       3、如何使用成员变量呢?

              对象名.变量名

       4、如何使用成员方法呢?

              对象名.方法名(...)


06.06 手机类的使用

       1、学生自己完成

              模仿学生类,让学生自己完成


06.07 一个对象的内存图

       1、画图演示

              一个对象

06.08 二个对象的内存图

       1、画图演示

              二个不同的对象



06.09 三个引用两个对象的内存图

       1、画图演示

              三个引用,有两个对象的引用指向同一个地址


06.10 成员变量和局部变量的区别

       1、在类中的位置不同

              成员变量:在类中方法外

              局部变量:在方法定义中或者方法声明上

       2、在内存中的位置不同

              成员变量:在堆内存(成员变量属于对象,对象进堆内存)

              局部变量:在栈内存(局部变量属于方法,方法进栈内存)

       3、生命周期不同

              成员变量:随着对象的创建而存在,随着对象的消失而消失

              局部变量:随着方法的调用而存在,随着方法的调用完毕而消失

       4、初始化值不同

              成员变量:有默认初始化值   null  0  0.0 false \u0000 之类的

              局部变量:没有默认初始化值,必须定义,赋值,然后才能使用

      

       注意事项:

局部变量名称可以和成员变量名称一样,在方法中使用的时候,采用的是就近原则。

基本数据类型变量包括哪些:byte , short , int , long , float , double , boolean ,char

引用数据类型变量包括哪些:数组,类,接口,枚举



06.11 方法的形式参数是类名的时候如何调用

       1、方法的参数是类名public void print(Student s ){} //print(newStudent());

如果你看到了一个方法的形式参数是一个类类型(引用类型),这里其实需要的是该类的对象。



06.12 匿名对象的概述和应用

       1、匿名对象就是没有名字的对象

       2、匿名对象应用场景

              A调用方法,仅仅只调用一次的时候

                     这种匿名调用的好处就是节省代码

                     注意:调用多次的时候,不合适。匿名对象调用完毕就是垃圾,可

以被垃圾回收器回收。

              B匿名对象可以作为实际参数传递

       3、案例演示

              匿名对象应用场景


06.13 封装的概述

       1、封装概述:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式

       2、封装好处

              隐藏实现细节,提供公共的访问方式

              提高了代码的复用性

              提高安全性

       3、封装原则

              将不需要对外提供的内容都隐藏起来

              把属性隐藏,提供公共方法对其访问

 

06.14 private关键字的概述和特点(翻译是“私有”的意思)

       1、人类赋值年龄的问题

       2、private关键字特点

              是一个权限修饰符

              可以修饰成员变量和成员方法

              被其修饰的成员只能在本类中被访问

       3、案例演示

              封装和private的引用:

              A把成员变量用private修饰

              B提供对应的getXxx())(获取)和setXxx()(设置)方法

              private仅仅是封装的一种体现形式,不能说封装就是私有:目的就是告诉我们,只要不让别人进行访问了,就是一种封装,学包的时候再详细解释。




06.15 this关键字的概述和应用

       1、this关键字特点

              代表当前对象的引用

       2、案例演示

              this的应用场景

              用来区分成员变量和局部变量重名!!


06.16 手机类代码及其测试

       1、学生练习

              请把手机类写成一个标准类,然后创建对象测试功能


Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值