面向对象是在之前基本实现的基础上的又一抽象,这里的 “高内聚,低耦合” 体现的更加明显,有抽丝剥茧、不断总结的感觉了。
学习的时候真的会有拨开云雾见月明的感觉,这种感觉真的会上瘾。你慢慢发现所有的东西都在以自己的规律运转,发现 验证 使用,真的很有《实践论》的味道。
我能做些什么?知道这些能帮助我做好什么?
前言
面向过程像是对事不对人,这件事情到底要如何完成?
面向对象更在乎发挥人的主观能动性,对象的属性和方法,对象之间是如何组织起来的,如何能够协作得更好。
当然,这两者不可分割,发挥人的主观能动性也是去做事情的。【有管理那味道了哈哈哈】
类是抽象的模板,对象(实例)是模板下真正出来的作品。
Java 中用类 class 来描述事物也是如此。类是一组相关属性和行为的集合,这也是类最基本的两个成员。
属性:该类事物的状态信息。对应类中的成员变量 成员变量 属性 <=>Field
行为:该类事物要做什么操作, 或者基于事物的状态能做什么。对应类中的成员方法 (成员)方法 函数 <=>Method
定义一些东西一定要知道这些东西所需要的元素,权限限制、类型、名字、需要接收什么。
一定要清楚他们的特点,才能不漏不缺。这很重要。
内存分析
这一段很重要,要好好总结体会。
方法重载
方法重载: 在同一个类中,允许存在一个以上的同名方法,只要它们的参数列表不同即可。参数列表不同,意味着参数个数或参数类型的不同
重载的特点: 与修饰符、返回值类型无关,只看参数列表 且参数列表必须不同。(参数个数或参数类型)。调用时根据方法参数列表的不同来区别
重载方法调用:WVM通过方法的参数列表, 调用匹配的方法先找个数、类型最匹配的,再找个数和类型可以兼容的,如果同时多个方法可以兼容将会报错。
可变个数的形参
格式:
方法名(参数的类型名···参数名)
举例:
//JDK5.0以前采用数组形参来定义方法,传入多个同一类型变量
public static void test(int a, String[] books);
//JDK5.0,采用可变个数形参来定义方法,传入多个同一类型变量
public static void test(int a String...books);
特点:
可变参数:方法参数部分指定类型的参数个数是可变多个:0个,1个或多个
可变个数形参的方法与同名的方法之间,彼此构成重载。
可变参数方法的使用与方法参数部分使用数组是一致的,二者不能同时声明,否则报错。
方法的参数部分有可变形参,需要放在形参声明的最后在一个方法的形参中,最多只能声明一个可变个数的形参。
封装
实现封装就是控制类或成员的可见性范围。这就需要依赖访问控制修饰符,也称为权限修饰符来控制。