怕死的免责声明:本人为现为新人笔者,此文章用于记录本人学习路程为主,因此文章内容无教学向。对于文章涉及内容,如有错误敬请指正,若有更好的建议及改进方法本人也愿虚心求教。若有参考本文章内容操作而出现的各种问题,现在下能力不足,也许无法解决,故各位谨慎借鉴。
面向对象和面向过程区别
面向对象:进行整体设计,宏观把控。 设计者思维
面向过程:微观操作落实 执行者思维
类和对象
类相当于模板
对象相当于具体的实例
局部变量和全局变量
成员变量 | 局部变量 | |
代码中位置不同 | 类中定义的变量 | 方法或代码块中定义的变量 |
内存中位置不同 | 堆内存 | 栈内存 |
是否有默认值 | 有 | 没有 |
代码作用范围 | 当前类的方法 | 当前一个方法或代码块 |
作用时间不同 | 当前对象从创建到销毁 | 定义变量到所属方法或代码块 执行完毕 |
栈、堆和方法区
当一个方法运行时 (以main方法举例) 会形成一个(main)栈帧 里面存储基本数据类型以及地址 在往下运行的过程中依次执行 在不是基本数据类型的时候在堆中开辟内存并存储开辟内存的地址 开辟的堆中存储相应成员变量
补充:常量池
堆和栈中数据 应该在存储在一个常量池当中 堆和栈中也是保存一个地址 后续数据比较需要 比较涉及 ==和equals的关系
以后再补充~~~
方法
重复使用的代码尽可能都写成方法 减少代码重复
方法格式:
private void openApple01(){
System.out.println("打开苹果");
}
public String openApple02(){
System.out.println("打开苹果");
return "";
}
protected int openApple03(int a,int b){
System.out.println("打开苹果");
return a + b;
}
// 遵守小驼峰命名法
// 权限修饰符 返回值 方法名(参数类型 参数名...)
// void 表示没有返回值
// 有返回值的在return后方法等于结束退出
权限修饰符:
方法调用
main方法会自动调用,其他的需要自己调用
调用的时候,实参和形参的顺序要一致
在同一类中同一类型方法可以直接调用