文章目录
1. 方法
1. 定义
方法是解决一类问题的步骤的有序组合
方法包含于类或对象中
方法在程序中被创建,在其他地方被引用
设计原则:一个方法只完成一个功能,便于后续拓展
作用:完成特定功能的代码片段
方法的定义
方法名:驼峰命名规则
方法的调用
百度:值传递与引用传递
值传递:java内的基础类型的传递都是值传递
引用传递:java内的实例对象的传递都是引用传递
num为基本类型,值直接保存在变量中
str为引用类型,变量中保存的是实例对象的地址,称这种变量为“引用”,引用指向实际对象,实际对象中保存着内容
基本类型:赋值运算符直接改变变量的值,将之前的值覆盖掉
引用类型:赋值运算符会改变引用中保存的地址,将之前的地址覆盖掉,并在指向的新地址中保存实例对象
(1)基本类型
void foo(int value) {
value = 100;
}
foo(num); // num 没有被改变
(2)没有提供改变自身方法的引用类型
void foo(String text) {
text = "windows";
}
foo(str); // str 也没有被改变
(3)提供改变自身方法的引用类型
StringBuilder sb = new StringBuilder("iphone");
void foo(StringBuilder builder) {
// builder.append("4");
}
foo(sb); // sb 被改变了,变成了"iphone4"。
StringBuilder sb = new StringBuilder("iphone");
void foo(StringBuilder builder) {
builder.append("4");
}
foo(sb); // sb 被改变了,变成了"iphone4"。
(4)提供了改变自身方法的引用类型,但是不使用,而是使用赋值运算符。
StringBuilder sb = new StringBuilder("iphone");
void foo(StringBuilder builder) {
// builder = new StringBuilder("ipad");
}
foo(sb); // sb 没有被改变,还是 "iphone"。
StringBuilder sb = new StringBuilder("iphone");
void foo(StringBuilder builder) {
builder = new StringBuilder("ipad");
}
foo(sb); // sb 没有被改变,还是 "iphone"。
2. 方法的重载
命令行传参
具体是跑到命令行去操作的
可变参数
递归
``
public class Demo04DiGui {
public static void main(String[] args) {
Demo04DiGui demo04DiGui = new Demo04DiGui();
System.out.println(demo04DiGui.f(5));
}
public int f(int n){
if(n == 1){
return 1;
}else{
return n * f(n-1);
}
}
}
边界条件:当n = 1时,所有值都会有
前阶段:–>
返回阶段:<–
不断调用新的方法,将新的方法进行压栈。当方法足够多时,会出现栈溢出
2. 数组
内存分析
数组越界异常:
java.lang.ArrayIndexOutOfBoundsException
三种初始化方式
增强for循环
arr.for
‘’
public static void main(String[] args) {
/*
arr[0] 1,2
arr[1] 2,3
arr[2] 3,4
*/
int[][] arr = {{1,2}, {2,3}, {3,4}};
System.out.println(arr.length); // 3
System.out.println(arr[0].length); // 2
}
Arrays类
冒泡排序的优化
https://blog.csdn.net/wubingju93123/article/details/81215984
稀疏矩阵
3. 面向对象(OO)
面向对象编程(OOP)的本质:以类的方式组织代码,以对象的方式组织(封装)数据
抽象
三大特性
封装
继承
多态
4. 异常机制
异常
异常体系结构
异常处理机制
分类
抛出异常
捕获异常
关键字
try、catch、finally、throw、throws