一. 面向对象
1.1 概述
面向对象(Object Oriented)是软件开发方法,一种编程范式。面向对象的概念和应用已超越了程序设计和软件开发,扩展到如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。面向对象是一种对现实世界理解和抽象的方法,是计算机编程技术发展到—定阶段后的产物。 面向对象是相对于面向过程来讲的,面向对象方法,把相关的数据和方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行植式。
1.2 面向对象和面向过程
面向过程: 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了;
面向对象: 是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。
1.3 构造方法
构造方法:主要就是用于创建对象时调用,并给对象的属性初始化赋值
权限修饰符 方法名/类名 (参数列表) {方法体}
构造方法没有返回值,连void也没有,另外构造方法的方法名必须和类名一致
如果类中没有定义构造方法,则默认有一个公共的无参构造 public类名()
但是我们定义了构造方法,则不会在提供默认的无参构造,所以一般我们在创建构造方法的时候也会手动创建一个无参构造
1.4 类和对象
对象: 1.代码角度 : new 的一个实例,封装了成员属性 2.数据角度 : 封装数据和逻辑的一种方式 3.现实角度 : 对象就是某一个具体的东西,一切皆对象 4.设计角度 : 从一个实际的实体中抽象出来某些属性的一种实体表示
类 : 描述了一类事物的属性和特征
类中封装属性,对象封装属性值
1.4.1 变量 方法*
静态变量:值,是类的所有对象共享(一个改变全部改变)
成员变量:值,是对象独享,多个对象之间值不共享(之间互不影响,不能用在静态方法中)
如果方法中需要用到成员属性,则该方法一定是成员方法,反之则静态方法
1.5 实例化
1.加载相关类到方法区
2.在堆内存开辟内存空间
3.调用构造方法,栈内存开辟栈帧,并对堆内存进行数据初始化
4.构造方法弹栈,把堆内存内存地址返回
加载: 静态加载:运行时,把所有相关文件一次性载入 动态加载:运行时,只载入核心文件,当用到其他文件时,再去加载其他文件 java中采用动态加载
1.6 对象使用
对象.成员属性
1.7 Bean
1.所有属性都为私有化属性,不能直接访问 2.提供getter/setter方法,进行获取和修改 3.提供有参构造和无参构造
POJO : 普通实体类
1.8 常见异常
1.空指针异常(Exception in thread "main" java.lang.NullPointerException) 当使用null值时,访问成员属性时,会出现空指针异常(使用时不在指向堆内存)
1.9 对象调用静态方
1.10 注意事项
1.10.1 静态调用成员
需要创建对象调用
1.10.2 传值和传引用
1.10.1 区分成员方法和构造方法
看返回值,构造方法没有返回值,连void都没有