JAVA进阶自学第三天
计划:尚硅谷 75-85 完成!
专升本在读三本计科专业。立志找到一份JAVA工作。
记录学习过程;学习时间大概5小时,作为对之前学习的内容一个复习;
---------------------------------------------------------------------------------------------------------------------------------
面向对象内容(oop)
局部变量的概念:在方法内中声明的变量,出了该方法后就失效的变量;
成员变量:又称实例变量,实在方法外声明的变量;
内存中,成员变量的存放位置在堆;
局部变量都是存放在栈中;
方法:(method)
*方法不能独立存在,一定要放在类当中
方法的声明(重点)
权限修饰符 [其他修饰符] 返回值类型 方法名()[throws 异常处理] {方法头
//方法体
}
权限修饰符:public > protected > 缺省 > private
返回值类型: 根据方法具体的功能来决定是否需要返回值;
内存新伙伴:方法区!
注意点:
方法是可以调用本类的另一个方法或属性
方法调用时放在栈区
方法中不能再定义方法
return关键词
1.结束方法;
2.结束方法并返回数据给方法的调用者;
sout需要返回值的 才能够输出内容
方法调用的内存解析;
- 形参:方法在声明时,()中的一个或者多个形式参数;
- 实参:方法在调用时,实际传给形参的变量或者常量;
JVM的学习!
1.方法的重载:同一个类中,允许存在同名的方法,只要他们的形式参数不同;
*println的重载 char是会遍历
2.可变个数形参的方法: (参数类型 ... 参数名)
但是数组与可变个数形参会冲突
3.方法的值传递机制(学的有点迷糊)
基本数据类型和引用数据类型 存放的位置要分别
基本数据类型的局部变量都是存放在栈中;
而引用数据类型都是声明一个地址值;
Java中的参数传递机制是什么? 值传递
如果是基本数据类型的变量,则将此变量保存的数据值传递出去;
如果是引用数据类型的变量,则将此变量保存的地址值传递出去;
4.递归方法
例子解释,算是理解吧!
public class RecursionTest { public static void main(String[] args) { /**递归练习 *计算阶层 */ RecursionTest jc = new RecursionTest(); System.out.println(jc.getMul(5)); } /** * 知道num=1时才结束递归 * @param num 记录 NUM! * @return 返回到方法中,一个嵌套的过程 */ public int getMul(int num){ if(num == 1){ return 1; }else { return num * getMul(num - 1); } } }
package 与 import
java.util 工具类
java.io 输入输出
java.util.* 就是导入UTIL所有工具类
面向对象的三个特征:
封装性;继承性;多态性
封装性:
高内聚:类的内部细节自己完成,不允许外部干涉
低耦合:暴露较少的方法给外部使用,方便外部调用
该隐藏就隐藏,该暴露就暴露;
权限修饰符:public ,protected , 缺省 ,private
但是类 只能是用public和 缺省