静态方法
静态方法可以直接调用本类中其他的静态方法
静态方法不能直接调用普通方法 一定要new对象
本类的静态方法必须通过类名.静态方法去调用其他类的静态方法
本类的静态方法中调用本类的静态方法可以省略类名
普通方法
普通方法中可以直接调用静态方法
普通方法中可以直接调用本类的其他普通方法
普通方法中一定要new了之后才可以调用其他类的普通方法
成员变量
在类中声明的变量(全局变量)生命周期和方法绑定在一起
方法一出栈 它就会被回收
局部变量 在方法中声明的变量 在堆里面 一个对象一份 由GC回收
静态全局变量 在常量池中 全局只有一份 最后退出全部清空
局部变量
局部变量一定要初始化,在栈里面分配的内存都要手动初始化
在堆中分配的内存jvm自动初始化
new关键字就表示在堆里面分配内存
堆中分配空间 空间的大小=它所有非静态全局变量的总和
如果没有非静态全局变量,堆空间什么都没有,默认就是一个字节
当在堆中分配内存,所有与该对象相关的普通方法全部压入方法区
形参
1 规定你替换的数据 一定要是什么类型的数据
2 规定了数据的取值范围
3 数据的替换方式
里氏替换原则,可以是任何类型
使用一个方法的基本步骤
1.确定该方法的用途 静态还是非静态
静态方法:
必须实例化(new)后才能调用普通方法
本类中 可以直接调用方法(可以省略掉类名)
非本类中 类名.静态方法
普通方法:
普通方法可以直接调用静态方法
普通方法在本类中可以直接调用本类的其他普通方法
普通方法必须实例化后才能调用其他类的普通方法
2.在本类还是非本类使用
3. 清楚当前方法中的参数类型,根据参数的类型设置具体的数据
形参 就是规则
实参 就是根据规则设置具体数据
4.获取方法执行后的返回值,我们可以选择接收或不接收
返回值类型也是规则
使用return 去返回具体的数据
面向对象的概念就是封装
void也是一种返回值类型 空返回值类型
有返回值类型的方法一定要返回,哪怕这个返回值没有意义 也得返回
函数和函数之间互相嵌套调用会引发栈溢出
程序一旦启动,就会把当前类的所有的静态方法加入到方法区中