版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、面向对象概念总结面向对象核心:重用.类:类的目的重复声明一组数据。用类创建的一组数据称为对象。-实际上是根据对象设计的类:由对象抽象出的类。类是模子,确定对象将会拥有的特征(属性)和行为(方法)。类是对象的类型。对象:属性对象拥有的各种特征方法对象执行的操作类是抽象的概念,仅是模板;对象是一个具体的实体。类的重要性:所有Java程序都是以类class为组织单元.对象:能够软件中用于表示一个客观存在的物体的一组数据。计算机的对象用一组数据来表示。.属性:是对象的一个数据分量。-在类中声明,称为类的*成员变量*。-在程序运行期间,这些变量属于每个对象,又称为 *对象的 属性*。.变量成员变量和局部
2、变量的区别:a.作用域不同b.初始值不同c.同一方法中,局部变量不可重名不同方法中,局部变量可重名成员变量不可重名d,两类变量重名时,局部变量有更高优先级.方法:-在类中声明,被全体对象共享(复用)的计算过程或算法。复用 了算法,即复用了计算过程。-好处:可以定义一份算法,被全体对象使用。.引用类型变量Java中除了基本类型的变量,其余的都是引用类型的变量! ! !1)引用类型太多太多-String str-Integer Long Double/什么时候用的? ? ?-int ary-Scanner console2)类”类型和数组类型声明的变量都是引用类型3)引用类型特点:引用类型的值是被
3、引用对象的堆地址值。引用类型通过地址间接引用了对象-java中的引用类型变量用于操作数据(引用类型变量的 作用)两个引用可以引用同一个对象-两个变量的地址值一样-一个引用类型变量,只能存储一个对象的地址-引用变量可以赋值为null ,表示不引用任意对象-此时如果调用了其属性/元素/方法将出现空指针异常。(空 指针异常的两个条件)为什么使用引用类型变量:相当于对象的标签,用来区分不同的 对象。注意:变量本身不是对象,只是引用了对象,所以叫引用类型变量, 一个变量只能引用一个对象,但是一个对象可以被多个变量所引用。一个变量能够先后引用不同的对象,但是同一时间只能引用一个对象。 注意:同一个包里不能
4、有同名类。.内存管理1)局部变量在栈中分配。/java中方法中的变量都是局部变量? ? ?2)对象在堆中分配,含对象的属性。new的操作都在堆里! ! new运算的返回值就是一个地址,是对象的首地址。栈:运行时的局部变量堆:运行时new操作分配的内存空间都在堆中3)方法区:装的是算法,装的是运行时的代码-方法区中可以创建多个对象,但是方法区中只加载一次类文件. 空指针异常(有三个经典案例可以看)1)是java应用程序最常见异常2)引用类型为null ,并且访问了其属性/元素/方法时发生空指针异常-引用为null- 访问属性/元素/方法3)解决办法a.使变量在访问属性/方法之前,合理赋值b.在调
5、用方法之前,检查变量是否为null,避免调用null引用的属性/方法-if(c5!=null)int n=c5.row;)8.对象属性的默认初始化1)对象的属性自动初始化2)其值为零值byte short int long:0float double :0.0-boolean:falsechar:编号为0的字符,不能随便输出此值引用类型:null3)构造器(构造方法):封装属性初始化过程,封装以后就可 以被反复重用。简化了对象的创建过程。提示:构造器用于*重用*对象属性的初始化过程。构造器语法:.在类中定义.其构造器名与类名完全一致判断是否是一个构造器 的规则! ! !-大小写要一致3.不能定
6、义返回值,也不能写void-如果定义了返回值是普通方法-其目的是初始化属性,不是计算过程,不是方法! ! !.默认构造器(默认构造方法)每个类都有构造方法! ! !2)如果源码中不定义构造器,则编译器自动添加默认构造器(一 个无参数的构造器)。3)如果类中定义了构造器,则java编译器不再添加默认构造器。构造方法的重载:为了使用方便,可以对一个类定义多个构造方法。. this()(有案例)构造器中使用this()关键字:功能:调用本类的其他构造器在一个构造器中调用本类其他构造器,目的是实现构造器之间的逻辑复用,一个构造器重复使用另外一个构造器的属性初始化逻辑,减少了当前构造器的代码。提示:th
7、is()好处是实现构造器的逻辑复用语法:一定在构造器中使用类中至少存在两个以上的构造器往往一个是主构造器,被另外一个辅助构造器调用。方法中不能使用this().必须在构造器中的第一行-this之前如果有代码会出现编译错误。.方法重载在类中,方法名相同,参数不同(签名不同),称为方法的重载。,注意:重载是方法名相同的 完全不同的方法! !使用了方法重载,可以是方法(API)设计的很优雅。.注意:打印数字数组要把数字数组通过 Arrays.toString(ary)来输出;打印字符数组可以按数组名直接来输出:.重载方法的调用规则:按照方法名和参数类型匹配对应方法如果能够直接配置类型,就直接调用如果
8、没有匹配类型的方法,那就显示编译错误!如果不能直接匹配,就尽可能 短”自动类型转换匹配就是说,如果类型不匹配,则按照自动类型转换调用,注意:只与参数类型有关,和参数值无关。/调用方法的时候只按照变量类型调用,不管变量的值. this自关键字的使用:用于指向本类中的当前对象This可以省略,有没有都可以,在运行期间,代表调用方法的这个对象,好处是可以使所有对象使用此方法! ! !Cell c1=new Cell(0,3);/本句过程,先new一个对象,再调用构造函数给属性赋初值Public Cell(int r,int c)row=r;col=c;c1.drop();/drop(c1)publi
9、c void drop(int step)(Cell this=new Cell )/ 默认:省略括号里 Cell thisthis.row+=step;什么时候this必须写:当属性(实例变量)和局部变量名称冲突时(重名)时,不能省略this案例:class Cellint row,col;/row,col既是属性变量又是局部变量时public Cell(int row,int col)this.row=row;this.col=col;).常用名称等价对象=实例对象属性=实例变量目录=文件夹存储=磁盘=硬盘遍历=迭代.引用类型数组数组本来就是引用类型!数组是对象,数组变量是引用类型变量。数
10、组的属性就是:012,也会有空指针异常! ! !引用数组:元素是引用变量的数组,其实类似于类的属性是引用类型 的情况。注意:一个包里的类可以随意互相调用! ! !引用的值就是对象的首地址,引用一个创建对象! ! !. #垃圾回收器System.gc()方法:请求垃圾回收器来回收垃圾用于建议虚拟机马上调度GCI程回收资源,用得不多,不是必须的,垃圾回收器也会定时清理垃圾。.内存泄漏:OutOfMemoryError:Java heap space.当大量的在堆中创建对象.创建之后的对象无法回收(即对象一直有引用)就会发生内存不够的现象,会使程序崩溃。解决或避免内存泄漏的方法:1)将引用变量置空n
11、ull2) Foo foo=new Foo(); /光这句也不会发生内存泄漏! !因为数据未放入数组,该变量是局部变量用完会清除,这样对象就会去引用,然后被垃圾回收器回收.二维数组:二维数组是假的数组的元素可以是任意类型,当数组的元素也是数组的时候, 就是所谓的二维数组。元素是一维数组的一元数组是二元数组案例:intarr=new int3;.继承泛化的过程:从子类中抽取公共(重复)的东西放父类里面,这个过程叫泛化。思考的过程基本上是与实现的过程是相反的。总结:类中有重复,父类运算流程中有重复,方法变量和方法有重复,封装到类里注意:父类中的构造器不能被子类继承, 但是创建子类对象的时候一定会执
12、行一次父类的构造器! ! !在父类中可以声明一个被子类共享的构造器,这样子会使子类写构造器的时候简化!.super ()其作用在子类构造器中调用父类的构造器。好处:用于多个子类构造器复用父类构造器中的初始化算法。1)如果子类中不写super(),Java 编译器默认添加! ! !-在Java中,子类一定会调用父类的构造器-默认调用父类的无参数构造器! ! !如果父类没有无参数构造器,则 发生编译错误。(如果在子类构造器中,没有明确声明 super(),自 己默认会写,用来是调用父类中无参的构造器!). Super()只能写在子类构造器的第一行-技巧:在父类中都添加无参构造器,可以减少子类的编译
13、错误。23.向上造型:父类变量可以引用子类型对象,也称为子类型向上造型为父类型。向上造型以后,父类型变量,只能调用父类中声明的属性和方法。强制类型转换:如果仍然需要访问子类型的属性和方法,就必须将变量强制转型为子类型,然后再访问。.java的编译器是不执行任何方法,不知道任何方法的具体返回. java的编译器是不知道任何变量的值24.重写(覆盖):方法的重写(覆盖)可以重写(覆盖)继承自父类的方法,即方法名和参数列与父类的相 同,但是方法实现不同。在子类中,如果对继承的方法不满意,则可以利用重写对继承于父类 的方法进行*修改*。语法:1)在子类中添加一个与父类签名一样的方法。2)返回值要兼容,修饰词要更加开放,异常可以更加具体。3)一般情况下,重写的方法与父类型的声明完全一样!提示:子类中添加了一个与父类完全一样的方法注意:不可继承的方法,不能进行重写。私有的方法,静态的方法, 构造方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 技术合同签订与管理规定介绍
- 2026广西贺州富川瑶族自治县市场监督管理局招聘工作人员1名备考题库含答案详解(模拟题)
- 2026浙江省人民医院助理类劳务用工人员招聘32人备考题库及完整答案详解1套
- 2026黑龙江牡丹江市穆棱市特聘农技员招募8人备考题库及参考答案详解一套
- 2026安徽合肥物流控股集团有限公司猎聘3人备考题库含答案详解(能力提升)
- 2026湖南长沙中职学校教师招聘48人备考题库附答案详解(培优b卷)
- 2026湖南长沙市雨花区统计局招聘工作人员1人备考题库及参考答案详解
- 2026新疆天宜养老有限责任公司招聘6人备考题库附答案详解(达标题)
- 2026山东师范大学附属小学第二批招聘14人备考题库含答案详解(培优b卷)
- 2026春季中国南水北调集团新能源投资有限公司校园招聘备考题库含答案详解(满分必刷)
- 2023边缘物联代理技术要求
- 管网工程施工方案
- 森林病理学-林木枝干病害
- 江南大学数电题库(部分)
- 性传播疾病的口腔表征
- Kistler-5867B监控仪快速入门
- 甘肃省兰州市树人中学七年级下期中考试数学试题
- (完整word版)三级安全教育记录及表格(全)
- 名师整理最新人教部编版语文中考议论文阅读-论证思路及结构专题复习教案含答案
- 预制梁首件施工方案
- 多媒体技术ppt课件(完整版)
评论
0/150
提交评论