
面向对象------章节练习题
内存分配:JVM自动为对象分配内存。 垃圾回收:JVM自动释放不再被引用内存空间。
封装性:通过数据和操作封装成对象,外部无法直接访问对象内部数据。 继承性:通过派生类继承基类特征,简化代码开发。 多态性:通过方法重写和重载实现同一方法的多种实现方式。
发布日期:2021-05-24 04:36:45
浏览次数:21
分类:精选文章
本文共 1938 字,大约阅读时间需要 6 分钟。
方法的使用
方法的重载与Overload的区别?
方法重载(Overloading)和重写(Overriding)是Java多态性的两种表现形式。重写用于子类对父类的方法进行覆盖,而重载是在同一类中定义多个具有相同名称但不同参数的方法。
方法重载 | 方法重写(Overriding) | 描述 |
---|---|---|
在同一类中定义具有相同名称但不同参数的方法。 | 在子类中定义与父类方法名称和参数相同的方法。 | 如下示例:public class Test { public static void show(int i){ switch(i){ default: i+=2; case 1: i+=1; case 4: i+=8; case 2: i+=4; } System.out.println("i="+i); }} |
方法重载与重写的要求
- 方法重载:参数列表必须完全不同。
- 方法重写:方法名称和参数类型必须完全相同。
方法参数传递
在Java中,方法参数始终是以值传递的方式传递,对象引用不会改变。因此,方法可以Modify对象属性,不会影响到外部的对象状态。
构造器是否可以被重写?
构造器(Constructor)是特殊的方法,它不能被static修饰,也不能被重写。虽然它不能被重写,但可以被重载。
public class Test { public static void main(String[] args) { MyClass m = new MyClass(); // 这次循环结束后,本次创建的对象成为垃圾。 System.out.println("创建第" + (i+1) + "的对象:" + m); }}public class MyClass { MyClass() { System.out.println("MyClass创建成功"); }}
内存管理
垃圾回收机制
调用垃圾回收机制
我们可以通过调用System.gc()或Runtime.getRuntime().gc()通知垃圾回收机制进行回收,但这并不会立即启动垃圾回收。
代码示例
垃圾回收机制示例
public class Test { public static void main(String[] args) throws Exception { MyClass m = new MyClass(); System.out.println("创建第" + (i+1) + "的对象:" + m); // 调用垃圾回收机制 System.gc(); // 延缓程序结束 for (int i = 0; i < 10; i++) { Thread.sleep(1); System.out.println("程序在继续...."); } }}
Java对比运算符
==
与equals()
的作用
==
:比较的是对象的内存地址,适用于基本类型。equals()
:比较的是对象的内容,需在类中重写equals()
方法后使用。对于File
、String
等类,equals()
方法默认比较内容。
包装类与数据类型关系
public class Test { public static void main(String[] args) { Integer i1 = 128; Integer i2 = 128; int i3 = 128; int i4 = 128; System.out.println(i1 == i2); // false System.out.println(i3 == i4); // true System.out.println(i1 == i3); // true }}
类继承与多态性
类继承性
Java支持单继承,但可以通过接口实现多继承。
类多态性
安全的数据访问方式:封装性使得类可以对自己数据进行管理。
面向对象三大特征
发表评论
最新留言
很好
[***.229.124.182]2025年05月09日 05时40分40秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
看明白这两种情况,才敢说自己懂跨链! | 喵懂区块链24期
2019-03-07
python中列表 元组 字典 集合的区别
2019-03-07
Android DEX加固方案与原理
2019-03-07
iOS_Runtime3_动态添加方法
2019-03-07
Leetcode第557题---翻转字符串中的单词
2019-03-07
Problem G. The Stones Game【取石子博弈 & 思维】
2019-03-07
Java多线程
2019-03-07
openssl服务器证书操作
2019-03-07
我用wxPython搭建GUI量化系统之最小架构的运行
2019-03-07
selenium+python之切换窗口
2019-03-07
重载和重写的区别:
2019-03-07
搭建Vue项目步骤
2019-03-07
账号转账演示事务
2019-03-07
SpringBoot找不到@EnableRety注解
2019-03-07
简易计算器案例
2019-03-07
在Vue中使用样式——使用内联样式
2019-03-07
Explore Optimization
2019-03-07