Java 小白 学习笔记心得(二)— 对象与类
1.面向对象术语
- 面向对象的分析(OOA,Object Oriented Analysis)
- 面向对象的设计(OOD,Object Oriented Design)
- 面向对象的编程实现(OOP,Object Oriented Programming)
2. 面向对象与面向过程的区别
- 面向过程:主要关注点为实现过程,因果关系
- 优点: 对于业务逻辑简单的程序,可以达到快速开发,前期投入成本低;
- 缺点: 难以解决非常复杂的业务逻辑,两哇哦面向过程使软件元素之间的耦合度很高,软件扩展能力差。另外没有度立体的概念,无法达到组件复用;
- 面向对象: 主要关注各个独立对象能完成哪些功能。
- 优点: 耦合度低,扩展能力强。容易解决现实世界中更复杂的业务;
- 缺点:前期投入成本较高,需要对立体的抽取与大量系统的设计。
3.面向对象的特征
- 封装
- 继承
- 多态
4.类与对象的概念
-
什么是类?
- 类是构造对象的模板与蓝图;
- 类达标了一类事物,是人类大脑抽象的结果。
-
什么是对象?
- 对象是实际存在的个体,现实世界中实际存在。
-
类的组成:
- 属性:描述对象的状态信息。
- 方法:描述对象的动作信息
5.类之间的关系
- 依赖 uses-a : 一个类的方法操纵另一个类的对象;
- 聚合 has-a : 类A的对象包含类B的对象;
- 继承 is-a : 类A 扩展类B。
6. 对象的创建与使用-内存分析
- 方法区内存:在类加载的时候,class 字节码文件片段被加载到内存空间当中;
- 栈内存:局部变量,方法代码片段在执行过程中分配内存。
- 堆内存: new 的对象在堆中储存。
7.构造器
- 构造器必须与类名相同;
- 每个类可以有一个及以上的构造器;
- 构造器有0个、1个或者1个以上的参数;
- 构造器没有返回值也不能用void修饰;
- 构造器总是伴随new操作一起调用。
8.封装
- 封装的优点:
- 封装之后,对于那个事物来说,看不到事物比较复杂的一面,只看到事物简单的一面;
- 封装之后才会形成真正的对象,真正的“独立体”;
- 封装后意味着以后的程序可以重复使用;
- 封装之后,提高了安全性。(不要编写返回引用可变对象的访问器方法,其会破坏封装性)
9. this 关键字 与 static 关键字
- static方法一般称作静态方法,由于静态方法不依赖于任何对象就可以进行访问,因此对于静态方法来说,是没有this的,因为它不依附于任何对象,既然都没有对象,就谈不上this了。并且由于这个特性,在静态方法中不能访问类的非静态成员变量和非静态成员方法,因为非静态成员方法/变量都是必须依赖具体的对象才能够被调用。但是要注意的是,虽然在静态方法中不能访问非静态成员方法和非静态成员变量,但是在非静态成员方法中是可以访问静态成员方法/变量的。
来源:CSDN
作者:qq_40892813
链接:https://blog.csdn.net/qq_40892813/article/details/103810049