Java SE阶段知识点以及思维导图

本文详细介绍了JavaSE中的面向对象概念,包括类与对象的关系、基本语法、静态修饰符、对象初始化、toString方法、封装、继承、组合、多态以及String类的特性。还探讨了异常处理的基本语法和目的,提供了丰富的示例和实践指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

##Java SE阶段知识点以及思维导图
面向对象
【知识点思维导图已经上传到我的资源去啦!!!也可以点这个链接https://download.youkuaiyun.com/download/luminarysun/15113850】

1.面向对象是啥
1.1程序设计的思想
	1.2面向过程的区别
		1.2.1面向过程先考虑问题的解决流程,注意先后顺序
		1.2.2面向对象先把问题中涉及到的概念,先用对象表示出来,在统筹流程
	1.3类和对象的理解
		1.3.1类是图纸,对象是根据图纸盖出来的房子
		1.3.2类是自定义类型,对象是该类型创建出来的变量
2.基本语法
	2.1类的创建
		2.1.1class 关键字
		2.1.2类名一般要求首字母大写
			如果这个类是public修饰的,类名要和文件名一致
		2.1.3类内部可以有属性,也可以有方法
		2.1.4每个属性和方法,都可以加static,以及其他的访问权限控制的修饰符
	2.2对象的创建/类的实例化
		2.2.1使用new关键字进行
		2.2.2实例化一个对象的时候
			会给该实例分配内存空间
			针对该实例进行初始化
			把得到的实例的内存的地址,返回回去,使用一个引用来持有
3.static
	3.1static 的含义和字面意义没有任何关系
	3.2static 表示该属性或者该方法,和实例无关,而是和类相关
		3.2.1应该是通过类名.属性 的方式来访问
		3.2.2static 修饰的属性在内存中只有一份
4.对象的初始化
	4.1类属性的默认值
		4.1.1针对整数
			0
		4.1.2针对浮点数
			0.0
		4.1.3针对字符
			\u000
		4.1.4针对 boolen
			false
		4.1.5针对引用类型
			null
		4.1.6尽量显示的进行初始化,代码可读性更好一些。
	4.2就地初始化
	4.3构造代码块
	4.4构造方法
		4.4.1概念
			方法名字和类名相同
			不需要显式的写 return 
			不需要显式调用,new的时候自动被调用到
		4.4.2重要注意事项
			构造方法中,尽量不要调用其他的方法,尤其是可能被重写的方法
			要让对象尽快的进入到可工作的状态
5.toString
	5.1在进行 println 的时候,就会触发这个操作
	5.2Object 类的方法
		任何一个类都可以重写 toString 
6.封装
	6.1背景
		6.1.1管理程序的复杂程度
		6.1.2让调用者理解的细节越少,使用成本就越低
	6.2访问权限控制
		6.2.1public
			任何类都能访问
		6.2.2protected
			同包的类能访问
			其他包的子类能访问
		6.2.3default
			同包的类能访问
		6.2.4private
			类内部能访问
	6.3使用原则
		能用private尽量用private
		protected 和 default 用的相对较少
	6.4如果外部真的需要使用 private 的属性怎么办?
		6.4.1getter
		6.4.2setter
		6.4.3和封装的理念相悖,破坏了封装
7.继承
	7.1背景
		更好的代码重用(以类为单位)
	7.2语法
		7.2.1extends关键字
		7.2.2子类会继承父类所有的方法和属性
		        哪怕这个属性是私有的属性,也是被继承到了
		7.2.3final
			禁止继承
				继承的体系不要太复杂
	 7.3is-a 语义
		继承不能被滥用
8.组合
	8.1把类作为另外类的成员/属性
	8.2has-a语义
9.多态
	9.1背景
		封装的更近一步 
		使用者不需要知道具体的类型,也能完成使用
	9.2好处
		使用者了解的信息更少,不需要知道类型
		扩展更方便
		降低程序的圈复杂度,减少分支语句的数目
	9.3语法体现
		9.3.1向上转型
		9.3.2动态绑定
		9.3.3方法重写
	9.4补充语法
		9.4.1向下转型
			不是随便转的
				instanceof
		9.4.2抽象类
			不能实例化
			可以包含抽象方法
			可以包含一些普通的属性和方法
			抽象类能被单继承
		9.4.3接口
			只能包含抽象方法和 public static final 修饰的属性
			一个可以实现多个接口
			接口之间也能相互继承
			实现一个接口,就必须要把接口里面的抽象方法都实现出来
10.String
	10.1创建
		10.1.1String  s = "hello"
			没有创建新的对象,只是拿 s 引用指向了字符串常量池中的 “hello”
		10.1.2String  s = new  String("hello");
			一个新的String 对象,把“hello”拷贝了进去,引用指向了这个新对象
	10.2比较
		10.2.1   ==
			比较身份
		10.2.2equals
			比较内容
			equals也是Object 的方法
				默认就是比较身份
		10.2.3compareTo
			比较大小
			字典序
	10.3字符串常量池
		字符串字面值常量都是保存到常量池中
		常量池是堆上的一块内存区域
		后续如果需要用到同一个字符串常量,直接从池子里取即可,不需要重新创建对象
	10.4不可变对象
		10.4.1数据成员是private,并且没有提供public的方法来修改
		10.4.2常规手段不能修改,如果使用反射,也是能改的
		10.4.3好处
			更方便放到常量池中
			线程安全更有保证
			hashCode不变
	10.5常用操作
		比较
		查找
		替换
		截取子串
		切分
	10.6StringBuilder/StringBuffer
		String的可变对象版本
		StringBuilder 和StringBuffer的区别
11.异常
	11.1目的
		防御式编程
	11.2基本语法
		11.2.1try
		11.2.2catch
			try中抛出的异常需要和catch ()中的参数匹配
			catch可以分成多组
		11.2.3finally
			最后执行,收尾工作
		11.2.4throw
			主动抛出异常
		11.2.5throws
			声明该方法可能抛出哪些异常
	11.3异常体系
		11.3.1角度一
			Errow
			Exception
		11.3.2角度二
			受查异常
			非受查异常
	11.4自定义异常
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值