一、成员变量与局部变量
以变量的位置进行分类:
可以分为: 成员变量和局站变量
成员变量: 类中方法外
局部变量: 在方法的内部(包括方法里,及方法的声明-形参)
成员变量与局部变量的区别
1. 在类中的位置不高
成员变量: 类中方法外
局部变量: 在方法的内部(包括方法里,及方法的声明-形参)
2. 作用的范围不同
成员变量: 类中都可以使用
局部变量:只有定义应该变量的方法可以使用
3. 在内存中的位置不一样
成员变量: 在堆内存中
局部变量:在栈内存中
3. 初始值不同
成员变量:有默认初始化
局部变量:没默认的初始化,必须赋值后才能使用
4. 生命周期不同
成员变量: 随着对象的创建而存在,随着对象的销毁而销毁
局部变量:随着方法的调用而存在,随着方法的执行完成而消失
二、方法进阶
1.方法不调用不执行
2.方法和方法是平级关系,不能嵌套定义
3.方法定义的参数用, 隔开
4.方法调用的时候传递的参数不用在前面写数据类型,直接写变量名( 实参不用写数据类型)
5.如果一个方法有明确的返回值类型,一定要用return带回一个值。如果是void,return可以省略不写
6.当方法的返回值类型是void的时候,只能单独直接调用
7.当我在调用一个方法的时候,这两个方法的局部变量没有任何关系
方法参数是基本数据类型
变量的类型,如果是基本类型,值是存在栈
变量的类型是引用类型,它的值是存在堆里,然后堆的内存值,赋值给变量
方法参数是引用数据类型
如果方法的参数是基本类型, 形参的修改,不会影响实参.
如果方法的参数是引用类型, 形参的修改,会导致实参也发生变化 .
类作为形式参数的问题?
如果你看到一个方法参数的,参数类型是一个类名,那么记住,它指的是这个类的具体对象(通过这个类new出来的实例对象)。
public void showStudent(Student2 stu2){
stu2.show();
}
三、方法的重载
Java 允许方法名相同,但是参数类型不能个同,或者参数的个数不同. 这种就叫做方法的重载
方法重载与返回值类型,没有任何关系
四、方法调用栈
方法调用栈: 方法调用时,用栈来存在方法
数据结构是计算机存储、组织数据的方式。而常用的数据结构有:数组(Array)、栈(Stack)、队列(Queue)、链表(Linked List)、树(Tree)、图(Graph)、堆(Heap)、散列表(Hash)等;
栈: 先进后出
队列: 先进先出