方法
像经常使用的 main方法啊,println(“字符串”),println(100),具备有打印功能的方法,只不过是jdk自带的方法
- 理解:解决某个功能的有名称的代码块.函数……
a: 具备有某个功能
b: 方法名:可以多次使用,调用
c: 多行代码 - 参数
a: 编写的方法:方便外界放入数据的,功能方法内使用
b: 编写方法的使用: 需要实参(就是变量)
c: 调用方法的使用: 需要实参(就是数据) - 返回
编写方式,根据需要返回你需要的类型值,注:接受值一定要与返回值类型一致
格式:return 返回值
- 编写方法格式
public static 返回值|void 方法名(形参列表){
代码块
}
方法编写时与位置无关。调用确定顺序……方法不能嵌套
理解:不能在mian方法里里嵌套创建另一个方法
- 方法调用: 原路返回,从哪里来回到哪里
- 方法签名:保证此方法在一个类中的唯一性:方法名+形参组成(类型 个数 顺序),与 形参名 返回类型 方法体无关
注:一个类中的方法名与签名不能为一致,否则会报重复定义方法错误 - 方法的重载
System.out.println("abc");
System.out.println("100");
System.out.println("3.14");
System.out.println(true);
方法调用;就近最优原则
理解:方法调用时,优先找签名一致的方法,如签名名不一致,找类型盒子大的且签名个数一致的方法
- 递归:就是自己调自己 : 递归头 递归体 递归结束
/**
悌归算法
*/
public class Test10{
/*
主入口
*/
public static void main(String[] args){
//裴波那契数列
int num=f(10);
System.out.println(num);
}
public static int f(int num){
if(num==1){
return 1;
}
else if(num==2){
return 1;
}
else{
return f(num-1)+f(num-2);
}
}
}
两个方法
系统提供的工具方法
- 获取随机的整数
a: java.util.random() ->[0,1] 随机的小数 详请见
b:java.util.Random nextInt(int bound)->[0,bound] 随机的整数
public class Test11{
/*
主入口
*/
public static void main(String[] args){
int num1 = num();
System.out.println(num1);}
/*
随机整数的测试
*/
public static int num(){
java.util.Random random=new java.util.Random();
int result= random.nextInt();
return result;
}
}
- 键盘上输入
目标:获取 整数 小数 字符串
包名:Java.util.Scanner
整数 nextInt()public class Test13{ /* 主入口 */ public static void main(String[] args){ int num1=num("请输入你要测试的整数"); System.out.println(num1); } /* 获取整数 */ public static int num(String world){ java.util.Scanner scanner= new java.util.Scanner(System.in); System.out.println(world); int result=scanner.nextInt(); return result; }
}
```
小数 nextDouble()
public class Test13{
/*
主入口
*/
public static void main(String[] args){
int num1=num("请输入你要测试的整数");
System.out.println(num1);
}
/*
获取整数
*/
public static int num(String world){
java.util.Scanner scanner= new java.util.Scanner(System.in);
System.out.println(world);
int result=scanner.nextInt();
return result;
}
}
- 字符串
String 为字符串,系统存在大量已经编写的方法- equals() equalslgnoreCase(String anotherString) 比较内容 == 比较的是地址值
2.length() 长度
3.trim() 去除两边的空格
4.replaceAll(): 替换//需要有返回值接受 原字符串没有修改
5.indexOf() 查找子串出现的位置/返回值为int类型
6.substring() 获取子字符串//一种左闭右开从闭截取到开前一位
另一种是直接输入截取开头到末尾结束
- equals() equalslgnoreCase(String anotherString) 比较内容 == 比较的是地址值
/**
字符串 :
1、equals() equalsIgnoreCase(String anotherString) 比较内容 ==比较地址值
2、length() 长度
3、trim() 去除两边的空格
4、replaceAll() 替换
5、indexOf() 查找子串出现的位置
6、substring() 获取子字符串
*/
public class ToolTest03{
/*
入口点
*/
public static void main(String[] args){
String msg1 = "shsxt is very good";
//省略优化的写法
String msg2 = new String("shsxt is very good");
String msg3 = "shsxt Is very good";
System.out.println(msg1==msg2); //地址不同
//1、比较内容 equals()
boolean flag = msg1.equals(msg3);
System.out.println(flag);
flag = msg1.equalsIgnoreCase(msg3);
System.out.println(flag);
//2、长度
int len = msg1.length();
System.out.println(msg1+"的长度为:"+len);
//3、去除两头空格
msg1 =" very good ";
System.out.println("|"+msg1+"|");
String anotherMsg = msg1.trim();
System.out.println("|"+anotherMsg+"|");
//4、替换
msg1 =" very good ";
System.out.println("|"+msg1+"|");
anotherMsg = msg1.replaceAll(" ","*");
System.out.println("|"+anotherMsg+"|");
anotherMsg = msg1.replaceAll(" ","");
System.out.println("|"+anotherMsg+"|");
//5、找位置 如果没有 返回 -1
msg1 ="abc123abc";
int idx = msg1.indexOf("123");
System.out.println(idx);
idx = msg1.indexOf("a",2);
System.out.println(idx);
idx = msg1.indexOf("aaa");
System.out.println(idx);
//6、获取子串
String sub = msg1.substring(0,3); //[0,3)
System.out.println(sub);
sub = msg1.substring(2); //[0,length())
System.out.println(sub);
}
}