摘要: 本文介绍了Java中的多态概念及其实现条件。多态是指同一方法根据对象不同表现出不同行为,实现条件包括:继承关系、子类重写父类方法、父类引用指向子类对象。文章强调多态仅针对方法,属性不具备多态性,并指出static、final和private方法不能被重写。通过示例代码展示了父类引用调用子类方法的过程,以及类型转换(强制转换和自动转换)的应用。最后指出对象可执行的方法取决于引用类型而非实际类型,需要通过强制转换才能调用子类特有方法。 阅读全文
posted @ 2026-02-05 22:28 贾光清 阅读(3) 评论(0) 推荐(0)
摘要: 摘要:Java方法重写规则要求子类与父类方法名、参数列表必须一致,修饰符范围可扩大但不能缩小,抛出异常范围可缩小但不能扩大。重写允许子类修改父类方法实现,使用@Override注解标记。示例中A类继承B类并重写test()方法,通过多态调用时执行子类方法。关键点包括:1)必须是实例方法;2)父类引用指向子类对象时会调用重写后的方法;3)静态方法不参与重写。重写实现不同类对同一方法的不同实现,增强代码灵活性。 阅读全文
posted @ 2026-02-04 21:46 贾光清 阅读(2) 评论(0) 推荐(0)
摘要: 本文总结了Java中super关键字的使用要点:1)调用父类构造方法必须在子类构造方法第一行;2)只能用于子类方法或构造方法;3)不能与this同时调用构造方法。与this关键字的区别在于:super代表父类引用,只能在继承中使用,调用父类构造方法;this代表当前对象,可在非继承环境中使用,调用本类构造方法。代码示例展示了子类Student继承父类Person时的构造方法调用顺序(先父类后子类),以及通过super访问父类属性和方法的方式。同时说明了private成员无法被继承,protected成员可被子类访问的特性。 阅读全文
posted @ 2026-02-03 22:07 贾光清 阅读(4) 评论(0) 推荐(0)
摘要: 本文介绍了Java中继承的基本概念与实现方式。继承通过extends关键字实现类之间的"is a"关系,子类继承父类的属性和方法(除private成员)。Java采用单继承机制,所有类都直接或间接继承Object类。文中通过Person父类和Student/Teacher子类的代码示例,展示了继承的实际应用,子类可以调用父类的public/protected方法(如say()和getMoney())。继承实现了代码复用,是面向对象编程的重要特性之一。 阅读全文
posted @ 2026-02-02 21:46 贾光清 阅读(4) 评论(0) 推荐(0)
摘要: 本文介绍了面向对象编程中的封装概念,强调"高内聚、低耦合"的设计原则。封装通过将数据私有化(private)并提供公共访问方法(get/set)来实现信息隐藏,从而提高程序安全性、隐藏实现细节、统一接口并增强系统可维护性。文中展示了Java实现封装的代码示例,包括属性私有化、get/set方法的定义和使用,以及通过set方法进行数据合法性校验的实际应用。 阅读全文
posted @ 2026-01-29 22:04 贾光清 阅读(1) 评论(0) 推荐(0)
摘要: 本文简要介绍了Java中类与对象的基本概念和内存分析。首先通过Pet类实例的创建展示了对象在内存中的存储方式,包括引用变量(dog)存储在栈内存,实际对象(new Pet())存储在堆内存。随后总结了类与对象的核心要点:类是抽象模板,对象是具体实例;对象通过引用操作,属性有默认初始化值;创建对象需使用new关键字和构造器;类包含静态属性和动态方法。最后提到面向对象三大特性:封装、继承和多态。这些概念为Java面向对象编程的基础知识。 阅读全文
posted @ 2026-01-28 21:40 贾光清 阅读(5) 评论(0) 推荐(0)
摘要: 摘要:本文介绍了面向对象编程中类与对象的关系。类是对事物抽象定义的模板,而对象是类的具体实例。通过Java代码示例展示了如何定义类(Student、Person)和创建对象(new关键字),重点讲解了构造器的特点:必须与类同名且无返回类型,用于初始化对象值。文章还演示了使用IDEA快捷键(Alt+Insert)快速生成构造器的方法,并强调了有参构造器定义后必须显式定义无参构造器的重要性。最后指出面向对象编程的本质是以类组织代码,以对象封装数据。 阅读全文
posted @ 2026-01-27 21:48 贾光清 阅读(3) 评论(0) 推荐(0)
摘要: 本文介绍了面向对象编程(OOP)的核心概念,重点包括: 面向对象与面向过程的区别:面向对象适合处理复杂问题,强调分类思维;面向过程适合简单问题 类的定义:属性+方法=类,类是对象的模板 方法详解:修饰符、返回值、参数列表、异常处理等 方法调用:区分静态方法(类名调用)和非静态方法(对象调用) 参数传递:值传递和引用传递的区别,引用传递可修改对象属性 面向对象三大特性:封装、继承、多态(将在后续讲解) 通过代码示例展示了方法定义、调用及参数传递的具体实现方式。 阅读全文
posted @ 2026-01-26 23:14 贾光清 阅读(3) 评论(0) 推荐(0)
摘要: 本文演示了Java中稀疏数组的转换与冒泡排序的实现。首先创建并打印一个6x7的二维数组,统计非零元素个数(8个),然后转换为稀疏数组格式存储。接着将稀疏数组还原为原始数组并打印验证。最后实现了一个优化的冒泡排序算法,通过flag标志减少不必要的比较,对测试数组[1,4,5,6,72,2,2,2,25,6,7]进行排序,输出结果为[1,2,2,2,4,5,6,6,7,25,72]。完整展示了稀疏数组转换和排序算法的实现过程。 阅读全文
posted @ 2026-01-25 18:33 贾光清 阅读(3) 评论(0) 推荐(0)
摘要: 本文展示了Java中稀疏数组的实现过程。首先创建一个11x11的二维数组,其中只有两个非零值(1和2)。然后将其转换为稀疏数组形式:第一行存储原始数组的行列数和非零值个数,后续行存储每个非零值的行列坐标和数值。最后再将稀疏数组还原为原始数组。代码包含详细注释,演示了数组遍历、条件判断和数组转换等操作。输出结果验证了转换过程的正确性,完整实现了稀疏数组的压缩与解压缩功能。 阅读全文
posted @ 2026-01-24 18:20 贾光清 阅读(3) 评论(0) 推荐(0)