欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA基础 - 面向对象

程序员文章站 2024-01-20 22:44:22
...

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 *Error
	栈溢出异常
	
6.3 ArrayIndexOutOfBoundsException	
	数组下标超出了边界异常
	
6.4 IndexOutOfBoundsException
	下标超出边界异常