1.什么是方法,有什么用? (可以先看一下一个程序如果没有方法,会出现什么问题?)
方法(method)是可以完成某个特定功能的并可以被重复利用的代码片段。
方法的出现,让代码具有了很强的复用性。
.在C语言中,方法被称为“函数”。
.在Java中,不叫函数,叫做方法。
你定义了一个/抽取了方法出来,而这个方法确无法完成某个功能,那么你抽取的这个方法毫无意义。一般一个方法就是一个“功能单元”。
假设在以后的开发中,某个功能是可以独立出来的,建议定义为方法,这样以后只要需要这个功能,那么直接调用这个方法即可,而不是重复编写业务逻辑代码
2.方法最难实现的是:
根据业务怎么进行方法的抽取。
方法的返回值类型定义为什么?
方法的名字是什么?
方法的形式参数列表定义为什么?
……
一个方法就是一个独立的功能。
3.方法的定义
[修饰符列表]返回值类型 方法名(形式参数列表){
方法体;
}
4.方法的每一个细节学习
- 修饰符列表:可选项,目前先写成:public static
- 怎么理解返回值?返回值是一个方法执行结束之后的结果。
- 返回值类型都可以指定哪些类型?
- 返回值和“return”语句的关系。
- 方法名只要是合法的标识符就行,首字母小写,后面每个字母首字母大写。见明知意。
- 形式参数列表
- 方法体:方法体当中的代码遵循自上而下的顺序依次逐行执行。
- 方法怎么调用?“类名”什么时候可以省略?
实际参数列表,简称实参。(调用方法是传递的实际数据)
实参和形参的关系一一对应。
5.JVM的内部结构中三块比较重要的内存空间
方法区:
存储代码片段,存储xxx.class字节码文件,这个空间是最先有数据的,类加载器首先将代码加载到这里
堆内存:(面向对象)
栈内存:
static栈当中存储什么?
每个方法执行时所需要的内存空间(局部变量)
6.关于数据结构中的栈数据结构
原则:
- 栈帧:永远指向栈顶部的元素(栈顶元素具有活跃权。)
- 栈顶元素
- 栈底元素
- 压栈,入栈,进栈,push
- 弹栈,出栈,pop
什么是数据结构,什么是算法?
7.分析程序运行过程中的内存变化
方法只定义不调用是不会执行的
方法调用时;压栈(在栈中给该方法分配空间)
方法执行结束时:弹栈(将该方法占用的空间释放,局部变量的内存也释放。)
方法重载overload
什么情况下我们考虑使用方法重载机制?
当功能相似的时候,建议将方法名定义为一致的,这样代码美观,又方便编程