JAVA基础 - 面向对象

1.什么是面向对象?

面向对象是一种编程的思想,把现实中事物转化成对象,万物皆对象

2.类和对象的关系

对象是实际中的事物,类用抽象的方式概括相似的对象,通过类来认识新的对象
类是抽象的,而对象是具体的实例
类是对象的模板,对象就是类的实例(实现)

3.怎么定义类(类的组成)?

3.1 属性 field (成员变量)
成员变量写在类里面,但是在方法外面
局部变量在方法里面,也可以方法的参数列表里

成员变量与局部变量的区别
	* a. 位置不同
		在类中位置不同
		在内存中的位置不同,成员变量是在堆内存里面,局部变量是在栈内存
		
	* b. 初始化值不同
		成员变量有默认初始化值
		局部变量没有默认初始化值
	
	* c. 生命周期不同
		局部变量跟随方法的加载而加载,方法使用完了,局部也就被释放掉了
		成员变量随着对象创建而创建,随着对象对象的释放而被释放

3.2 方法 method (成员方法)

命名方法的格式:修饰符 返回值类型 方法名(参数列表){方法体}
方法重载:方法名相同,参数列表不同,与返回值无关
			(参数列表不同):顺序,个数,类型
方法调用:方法名(实际参数),如果方法重载的话,调用方法的时候就会有选择性,根据实际参数的数据类型来选择调用哪个方法

*构造方法:构造方法是一种特殊的方法
	* a. 没有返回值类型,没有具体的返回值return;
	* b. 首字母可以大写,因为构造名字和类名相同;
	* c. 就是一个构造方法在一个对象里面调用一次;
	用来干嘛:给对象进行初始化赋值;

3.3 其他:代码块,静态代码块,内部类

4. 怎么创建对象

格式: 类名 对象名 = new 类名();
	
4.1对象的创建过程:
		Student s = new Student();
	1. 加载Student类
	2. 声明一个Student类的引用s
	3. 在堆内存里面创建对象(开辟内存空间)
	4. 给对象里面的属性进行默认初始化
	5. 属性显示初始化
	6. 调用构造方法堆属性进行赋值,赋值完之后弹栈
	7. 将内存地址赋值给s

4.2	匿名对象:
	没有名字的对象
	*应用场景:方法只使用一次的时候,用完即丢
				把匿名对象当成实际参数传递

5.封装

5.1 封装概述
	隐藏实现细节(方法体),隐藏属性(成员变量),只提供可外部访问的公共方法

5.2 封装好处
	a. 节省代码
	b. 提高安全性
	c. 隐藏代码细节,仅提供外部访问方法

5.3 封装原则
	* 把不需要公开的隐藏起来
	* 把属性隐藏,实现细节隐藏

6.常见错误

6.1 NullPointerException
	空指针异常

6.2 StackOverflowError
	栈溢出异常
	
6.3 ArrayIndexOutOfBoundsException	
	数组下标超出了边界异常
	
6.4 IndexOutOfBoundsException
	下标超出边界异常

猜你喜欢

转载自blog.csdn.net/woharen/article/details/89519717