- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象的概念
举例:
大象装进冰箱
面向过程:c语言
打开冰箱;存储大象;关上冰箱
对于面向过程思想,强调的是过程(动作)。
面向对象:c++ java c#
冰箱打开;冰箱存储;冰箱关闭
对于面向对象思想,强调的是对象(实体)。
面试题:你是怎么理解面向对象的
特点:
面向对象就是一种常见的思想,符合人们思考的习惯
面向对象的出现,将复杂的问题简单化
面向对象的出现,让曾经在过程中的执行者,变成了对象中的指挥者
其实面试官本身就是在用面向对象的思考方式在思考问题,因为凭你的能力,来了一个项目,你从需求分析到设计到开发到测试都能完成,但是这样特别耗时间。因为一个人的精力也是有限的,所以为了提高效率你就会找一些具备编程能力的人来完成这些项目,即找对象。我正好就是具备编程能力的那个对象,您只需指挥我这个对象去做事情即可,我会给您个非常满意的结果,中间过程不必劳您费心。所以您就是在用面向对象的方式在思考问题
如何用代码描述下面的小汽车?
只要明确该事物的属性和行为并定义在类中即可。
对象:其实就是该类事物实实在在存在的个体。
类与对象之间的关系:
类:事物的描述
对象:该类事物的实例。在Java中是通过new来创建的
定义类其实就是在定义类中的成员
成员:成员变量----属性;成员函数------行为
Number,color是变量为属性
Run是函数为行为
案例:描述小汽车
对象的出现其实就是封装数据,数组封装的是同类型的数据,而对象封装的是描述该对象所具备的属性数据
成员变量和局部变量的区别
成员变量定义在类中,整个类中都可以访问
局部变量定义在函数,语句,局部代码块中,只在所属的区域有效
成员变量存在于堆内存的对象中
局部变量存在于栈内存的方法中
成员变量随着对象的创建而存在,随着对象的消失而消失
局部变量随着所属区域的执行而存在,随着所属区域的结束而释放
成员变量都有默认初始化值
局部变量没有默认初始化值,必须初始化赋值才可以使用
匿名对象:没有名字的对象(了解即可)
New Car();//匿名对象,其实就是定义对象的简写格式
New Car().run();的效果等同于
Car c=new Car();
C.run();
匿名对象的使用方式:
当对象对方法仅进行一次调用的时候,就可以简化成匿名对象
匿名对象可以作为实际参数进行传递
匿名对象的内存分析
为什么new Car().run没有指向但没有消失呢?
因为匿名对象调用变量没意义但调用方法有意义,因为方法在运算。
基本数据类型与引用数据类型的参数传递图解
封装:隐藏实现细节
封装图解
将成员变量私有化,对外提供对应的set,get方法对其进行访问。提高对数据访问的安全性。
概念:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式
好处:
将变化隔离
便于使用
提高重用性
提高安全性
封装原则:
将不需要对外提供的内容都隐藏起来
把属性都隐藏,提供公共方法对其访问
属性是用于存储数据用的,但是数据不能被访问就把它隐藏起来,就对外提供方法。对外提供方法的目的是对属性数据进行可控。
Private:私有
是一个权限修饰符,用于修饰成员(成员变量和成员函数)。私有内容只在本类中有效
注意:私有仅仅是封装的一种体现而已
Java里面最小的封装体就是函数。笔记本也是一个封装体,类也是封装体,框架也是封装体
构造函数
特点:
函数名与类名相同
不用定义返回值类型
没有具体的返回值
作用:
给对象进行初始化
注意:
默认构造函数的特点
多个构造函数是以重载的形式存在的
默认构造函数
创建对象都必须要通过构造函数初始化
一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数(只是不显示,所以你看不到),如果在类中定义了指定的构造函数,那么类中的默认构造函数就没有了
构造函数与一般函数的区别(重点)
构造函数:对象创建时,就会调用与之对应的构造函数,对对象进行初始化
一般函数:对象创建后,需要函数功能时才调用
构造函数:对象创建时,会调用只调用一次
一般函数:对象创建后,可以被调用多次
构造函数:方法名与类名相同,首字母大写
一般函数:方法名的首单词小写,其后单词的首字母大写
什么时候定义构造函数呢?
描述事物时,该事物存在就具备的一些内容,这些内容都定义在构造函数中
重载
多个构造函数在一个类中出现,他们的存在形式只有一种即重载,特点是方法名相同,参数列表不一样
根据参数列表不同而分别调用不同的构造函数
构造函数的内存图解
细节:构造函数可以调用方法,反之不行
构造函数可以调用方法,但方法不可以之间调用构造函数,必须先创建一个对象,对该对象初始化时会自动调用构造函数
构造函数与成员属性的固定模式不冲突
创建了一个对象,并初始化其姓名为小强,年龄为10.后期不想
文档评论(0)