【从零开始重学Java】第5天 对象和类
传送门
从零开始重学Java 第0天
从零开始重学Java 第1天 Java概述
从零开始重学Java 第2天 标识符和数据类型
从零开始重学Java 第3天 表达式和流程控制语句
从零开始重学Java 第4天 数组、向量和字符串
从零开始重学Java 第5天 对象和类
从零开始重学Java 第6天 异常
从零开始重学Java 第7天 高级特性
从零开始重学Java 第8_9_10天 图形界面、Swing、Applet
从零开始重学Java 第11天 数据流
从零开始重学Java 第12天 线程
从零开始重学Java 第13天 线程
进一步讨论对象和类
抽象数据类型
概述
定义方法
按值传送
有一个非常好的知乎回答Java 到底是值传递还是引用传递?
重载方法名
对象的构造和初始化
和整体项目风格尽量保持一致
显式成员初始化
构造方法
默认的构造方法
工具类这种,可以private构造方法拒绝外部实例化
构造方法重载
finalize()方法
本意是JVM在垃圾回收对象时,释放一些JVM不能自动释放的资源
诞生于JDK1.0时代,设计有问题,后续已经有AutoClosable、CLeaner等更好的替代品
JDK9以后已经弃用了,垃圾回收完全由JVM自己管控就可以,程序员不应该也无法主动完全控制
this引用
子类
is-a关系
extends关键字
单重继承
转换对象
方法自变量和异类集合
方法重写
方法重写示例
应用重写的规则
- 访问权限不能比父类小
- 异常不能比父类多
父类构造方法调用
多态
Java包
Java包的概念
import语句
可以使用IDEA的code-> optimize imports 来清理多余的引入
目录层次关系及CLASSPATH变量
访问权限与数据隐藏
封装
类成员
类变量
也就是俗话常说的全局/静态变量
类方法
也就是俗话常说的静态方法
关键字final
终极类
终极方法
终极变量
抽象类
接口
接口的定义
- 接口里定义的变量默认且必须是public static final的
接口的实现
JDK8以后 接口运行有默认的方法实现
public interface InterfaceDemo {
int VAL = 1;
default void interfaceMethodExample(){
System.out.println("default interface method");
}
}
内部类
MyBatis的xml resultType内部类记得要用$来分隔而不是.
JDK9以后一个文件允许拥有多个public class
静态与非静态内部类的区别就在于,静态内部类可以单独使用实例化,非静态内部类必须依赖外部的类实例化它才能实例化
内部类的概念
匿名类
JDK8以后的匿名类建议用Lambda表达式代替,可读性更高
最典型的就是开启新线程
内部类的工作方式
包装类
第五章习题
- 类的定义、抽象类、接口、方法重写重载、this、super关键字作用、静态方法、静态变量、内部类、匿名类
- Java包的作用
包(package)是一种用于组织和管理类、接口和其他相关资源的机制。它提供了一种命名空间的概念,使得在大型项目中可以更好地组织和管理代码。
其实就是用来代替C++的namespace,因为代码不可避免类会重名的问题,于是加上了包名予以区分
- 为什么有时候会用到 -deprecation参数
警示使用已过时的API,使用过时的API会生成生成警告信息
本文作者:迷路的哨兵甲
本文链接:https://www.cnblogs.com/lazykingloveu/p/17954474
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步