还剩28页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
对象object面向对象编程是一种强大的编程范式,它使用对象来表示和组织数据和代码对象将数据和方法(操作数据的功能)封装在一起,形成一个独立的单元什么是对象现实世界中的对象编程世界中的对象现实世界充满了对象,例如汽车、房屋、书籍、人等每个对象在编程中,对象是用来模拟现实世界中的对象它们也是由属性都有自己的属性和行为和行为组成的对象的组成状态行为标识对象的状态是指对象所具有的属性值这些对象的行为是指对象能够执行的动作或操作标识是指对象的唯一性,用于区分不同的对属性值描述了对象的当前情况,由方法定义象实例对象的特点唯一性封装性每个对象都具有唯一的标识,即使是相同类的对象将数据和方法封装在一起,隐藏内部细节对象,只暴露必要的接口交互性可扩展性对象之间通过消息传递进行通信,实现协同工对象模型易于扩展,通过继承和多态可以创建作新的对象类型对象与类的关系类是对象的模板1类定义了一组对象共同拥有的属性和方法对象是类的实例2对象是根据类创建的具体实例,拥有类定义的属性和方法类是抽象概念3对象是具体存在的实体,通过实例化类创建类的基本构成类名属性类名是用来标识类的唯一名称,属性描述了类的特征,通常使用可以用来创建该类对象变量来表示,它们存储了对象的特定信息方法方法定义了类对象的行为,它们是用来操作属性或执行特定功能的代码块对象的属性和方法属性方法关系123描述对象的状态,如颜色、大小等定义对象的行为,如移动、旋转等属性和方法共同定义了对象的特征,每个属性都有类型和值,反映对象的方法使用属性执行操作,改变对象的是对象的内在组成部分特性状态对象的创建和使用对象是类的实例,通过类创建对象的过程称为实例化实例化对象使用关键字new并调用类的构造函数创建对象后,可以使用对象访问属性和方法,从而操作对象数据和执行对象行为创建对象1使用new关键字调用类的构造函数访问属性2使用点运算符.访问对象的属性调用方法3使用点运算符.调用对象的方法例如,创建Person类的实例,可以使用以下代码Person person=new Person;接着,就可以通过person.name=张三访问对象的name属性,或者通过person.sayHello调用对象的方法本地变量和实例变量本地变量在方法内部定义,方法执行结束后销毁实例变量与对象关联,生命周期与对象相同区别作用域和生命周期不同,内存分配方式不同构造函数定义特点构造函数是与类同名,用于创建构造函数没有返回值类型,名字对象并初始化对象属性的方法与类名相同,创建对象时自动调用作用类型构造函数负责初始化对象状态,默认构造函数、带参数构造函数赋予对象初始值,保证对象创建、拷贝构造函数时的完整性封装与信息隐藏封装信息隐藏封装是将数据和操作数据的方法绑定在一信息隐藏是指保护数据免受外部代码访问起的机制它允许你将对象的内部实现细的机制通过封装,你可以控制对对象内节隐藏起来,并提供一个公共接口来访问部数据的访问,并确保数据的完整性和一对象致性继承的概念
11.代码复用
22.建立类层次结构继承允许从现有类创建新类,继承使类之间建立一种“is-a”而无需从头开始编写代码关系,体现出对象之间的层次性
33.代码可维护性继承提高了代码的可重用性和可维护性,使代码更易于理解和修改单继承和多继承单继承多继承优点缺点一个子类只能继承一个父类,一个子类可以继承多个父类,•代码复用•复杂性增加形成单一继承关系形成多继承关系•结构清晰•可能出现冲突重写与重载重写重载在子类中重新定义父类的方法子类方法签名必须与父类方法一在同一个类中定义多个同名方法,参数列表不同致方法重载根据参数类型和数量来区分调用哪个方法子类方法覆盖父类方法,实现多态性抽象类和接口抽象类接口抽象类不能被实例化定义抽象方法接口定义规范,提供方法签名,不包,需要子类实现含方法实现多态的实现方法重写1子类重新定义父类的方法向上转型2将子类对象赋值给父类引用动态绑定3运行时确定调用哪个方法多态的实现方式主要有方法重写、向上转型和动态绑定通过方法重写,子类可以根据自身特性对父类方法进行重新定义向上转型允许将子类对象赋值给父类引用,从而实现对不同类型对象的统一操作动态绑定机制则在运行时根据对象的实际类型来选择执行相应的方法对象的比较基本类型比较引用类型比较基本类型比较简单,直接使用“==”运算符比较值是否相等引用类型比较复杂,使用“==”运算符比较的是对象引用地址,而不是对象内容equals方法比较器接口使用equals方法可以比较对象的内容是否相等,需要根据具体情况对于自定义排序规则,可以使用Comparator接口,定义比较方法重写equals方法,用于排序或其他需要比较操作对象的克隆复制对象浅拷贝深拷贝克隆对象意味着创建对象的副本仅复制对象的基本数据类型,引用类型仍指复制所有数据,包括引用类型,创建独立的向原始对象副本对象的垃圾回收自动内存管理可达性分析12Java拥有自动内存管理功能,垃圾回收器自动释放不再使垃圾回收器通过可达性分析算法识别不可达对象,标记为可用的对象回收垃圾回收算法内存泄漏34常用的垃圾回收算法包括标记-清除、复制、标记-整理等如果对象不再被引用但无法被回收,就会导致内存泄漏,影响程序性能异常处理机制异常类型捕获异常12常见的异常类型包括运行时可以使用try-catch块捕获异异常和编译时异常常,并在catch块中处理异常异常处理流程异常传播34当发生异常时,程序会抛出异如果异常没有被捕获,它会向常,并寻找匹配的catch块进上层调用堆栈传播,直到找到行处理匹配的catch块或程序终止集合框架概述Java集合框架提供了一套统一的接口和实现,用于存储和操作各种数据结构它包含各种数据结构,例如列表、集合和映射,以及用于遍历、搜索和排序等操作的算法集合ListArrayList LinkedListVectorArrayList是一个可变大小的数组列表,它LinkedList是一个双向链表,它可以高效Vector是一个线程安全的动态数组列表,允许对元素进行随机访问,并且可以动态添地插入或删除元素,但随机访问元素的效率它与ArrayList类似,但Vector的方法加或删除元素较低是同步的,因此在多线程环境中可以使用集合Set无序性唯一性Set集合中的元素是无序排列的,元素顺序不可预测Set集合中不允许重复元素,每个元素只能出现一次集合Map键值对存储高效查找Map集合用于存储键值对,每个Map集合提供根据键快速查找对键对应一个值,键是唯一的应值的机制,效率很高常见实现HashMap、TreeMap和LinkedHashMap是常用的Map集合实现,具有不同的特点泛型编程代码复用类型安全泛型编程提供了一种编写可重用代码泛型编程使用类型参数,在编译时进的方式,无需重复编写相同逻辑的代行类型检查,确保代码的类型安全性码灵活性和可扩展性数据结构泛型代码可用于处理不同类型的对象泛型编程广泛应用于数据结构的实现,提高代码的灵活性和可扩展性,例如列表、集合和映射函数式编程声明式编程不可变性函数式编程是一种声明式编程范式,它将计函数式编程强调使用不可变数据,这意味着算视为数学函数的评估数据一旦创建就不会改变高阶函数递归函数式编程允许将函数作为参数传递给其他函数式编程中经常使用递归来解决问题,因函数,并将函数作为返回值为递归允许将复杂问题分解成更小的子问题流与并行流流并行流流是一种对数据进行处理的抽象概念,它允许我们以声明式的方式并行流是流的扩展,它允许我们利用多核处理器来加速数据处理,对数据进行操作,并简化代码提高程序的效率表达式Lambda匿名函数Lambda表达式是一个匿名函数,可以作为参数传递或赋值给变量简洁高效简化代码,提高可读性,并减少代码量,提高代码效率函数式编程Lambda表达式是函数式编程的重要组成部分,支持函数式编程风格,可以方便地处理集合和数据流方法引用方法引用简介方法引用的使用场景方法引用是Java8引入的一种新特性,它允许将方法直接作为参在函数式接口中,需要一个实现该接口的函数,而方法引用可以数传递给其他方法,简化代码并提高可读性方便地提供一个已有的函数作为实现方法引用可以理解为对已有方法的引用,它指向一个特定的方法方法引用通常用于Lambda表达式,可以简化Lambda表达式的,而不是具体的对象代码,使其更简洁易懂总结与展望本课程介绍了面向对象编程的基本概念和应用希望同学们能掌握对象的基本概念、类和对象的创建与使用、继承、多态等关键知识点。
个人认证
优秀文档
获得点赞 0