39.方法的作用
方法的作用:
1)避免main方法代码过多-不便于调试
2)重复利用已有的代码--》重复的代码-定义在方法中,多次使用(去调用即可)
3)分解功能:
解决一个复杂问题(功能)的时候-->不要直接用一个方法解决
把复杂的问题(功能)分解为小问题(功能)
小功能-对应方法解决-》解决复杂问题更简单
40.方法绝对的重点:
方法的绝对重点:
方法概念:
方法对应一种功能,方法的多句代码-对应该功能实现的步骤,方法名代表该功能做的事情。
方法参数:方法的功能在执行的时候,需要方法的使用者传入值给方法--》通过参数。
使用方法参数的步骤
1)定义方法--》定义参数-来规定我们需要的数据
public static void 方法名(形式参数列表){
}
形式参数列表:数据类型参数名1,数据类型 参数名2...
2)调用(执行)方法--》传入参数对应的值给方法
方法名(实际参数列表);
实际参数列表:值1,值2...
实际参数列表必须和形式参数列表匹配
1)个数一致
2)类型兼容(可以自动类型转换)
3)顺序一致
41.方法返回值:方法执行完成的时候需要把执行的结果值,带回给方法的调用处--》返回值
方法的返回值:
方法使用返回值的步骤
1)定义方法--》规定返回的数据的类型
语法:public static 返回的数据类型 方法名(形式参数){ }
返回的数据类型:a)void(不返回)b)其他数据类型
2)方法代码里-》通过return语句把数据返回
public static 返回的数据类型 方法名(形式参数){
//业务代码
....
//计算结果值
return 结果值;
}
3)调用(执行)方法--》接收方法的值
接收值:返回的数据类型 接收变量=方法名(实际参数);
可以不接收值:方法名(实际参数);
方法的注意点
1)方法有参数:必须传入参数--》买东西必须给钱
2)方法有返回值:可以不接收--》买东西,给了钱可以不带走东西
循环嵌套:循环的代码里-又出现循环结构。
42.break和continue关键字--》用于循环
break和continue关键字:
break:默认结束包裹break的当前循环。break后的当前循环剩余的次数不执行
continue:默认结束包裹continue的当前循环的当次循环。continue后的当前循环的当次循环 不执行,后面继续执行。
--》作用-》动态的在循环内部结束循环
43.开发java程序的时候,java开发环境提供了很多内置(方法)功能
java内置功能:
例如:1)打印内容到控制台2)随机数 3)获取用户控制台输入内容
我们怎么使用这些功能?--》通过查看api
api:程序开发帮组文档--》类似于 小学学习汉语,词典,字典。
api:提供很多功能的使用介绍,不用背,需要知道怎么去使用,怎么去查询!!
java系统提供了很多对"字符串"处理的相关的功能-放到了String类中。
字符串类型(String)基本api使用
String 类:封装了各种操作字符串的功能。
注意:如下api都是针对某一个具体的字符串。
所以使用的时候得先有一个字符串。
再通过字符串调用下面的方法。
语法:[返回值类型 变量=] 字符串.方法([实际参数]);
2)方法返回值
length() :长度
trim(); -->去除左右所有空白字符 -->String
3)java判断数据的内容相同
1)基本类型
==
语法: 值1==值2
2)引用类型
equlas
语法: 值1.equals(值2);
4)方法参数及返回值
charAt(索引):获取索引[0,length())对应的单个字符
equals(其他字符串):比较两个字符串内容是否相等
replaceAll("旧字符串","新字符串"):替换所有的字符串为新的字符串,支持正则
+ 拼接:不是追加,会产生新的字符串
5)方法重载
String substring(int beginIndex, int endIndex) 返回一个新字符串,它是此字符串的一个子字符串。
String substring(int beginIndex) ----(自学)
equalsIgnoreCase(其他字符串):忽略大小写比较两个字符串内容是否相等
int indexOf(String str) 返回指定子字符串在此字符串中第一次出现处的索引。
indexOf(String str, int fromIndex) 返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
44.方法的递归:方法调用的特殊形式
方法的递归:
--》在方法自己的代码里调用了方法自己
--》作用:可以实现类似于循环结构的效果-》多次重复执行方法自己的代码
方法递归-调用自己-》需要根据条件->否则-死循环->方法调用次数有限-》程序异常
递归的模版
方法名(){
//递归体-->循环内容
//递归头--》循环条件
}
45.方法的签名:方法名字+形式参数列表(与名字无关)
方法的签名:
--》作用-区分类中不同的方法
方法的签名必须唯一:同一个类中方法签名不同相同
-->方法不能重复定义--》方法签名一致就会出现方法重复定义
46.方法的重载:同一个类多个方法之间的关系
方法的重载:
语法:
1)同一个类
2)方法名相同
3)参数列表不同
a)个数不同
b)类型不同
c)顺序不同
d)注意==》跟参数名无关
在什么情况使用方法重载--》如果同一个类中-多个方法功能类似-那么可以使用方法重载
--》便于学习
重载的方法-参数列表不要过于相似-》可能会使用混乱
如果实际参数和多个形式参数匹配--》先类型相同,再类型兼容
47.方法的返回值注意点
方法返回值的注意点:
a)方法有返回值:
1)必须设置返回的数据类型
2)方法内部所有,可能作为最后执行的代码的位置都必须return 值;--》通常最后一句
b)方法没有返回值:
1)返回值类型-必须设置为void(空,不返回数据)
2)void也可以有return语句,return;
49.break:结束循环 return:结束方法
break和return的区别:
return值和break对比
return 值;---》在需要返回值的时候使用
x)把值赋值给返回值变量类型
x)结束方法-return 后面代码不执行
x)回到方法调用处
break;---》方法执行已经完成逻辑-可以使用 break;结束方法
x)结束方法-break后面代码不执行
x)回到方法调用处
成员方法:属于对象,有对象才能使用
* 定义语法:
* public 返回值类型 方法名(参数列表){}
* 调用语法: 对象引用.成员方法
* 怎么选择:类中定义功能属于对象,每个对象执行的效果不一致后,需要用到this---》成员方法
* 例如:学生吃饭:(学生对象体重<75kg 吃2碗,否则5碗)
* -->每个对象吃饭效果不一致
* 静态方法:属于类,有类就可以使用
* 定义语法:
* public static 返回值类型 方法名(参数列表){}
* 调用语法:
* a)类名.静态方法(推荐)
* b)对象引用.静态方法
* 怎么选择:类中定义功能属于类,每个对象执行的效果一致,不需要用到this---》静态方法
* 例如:计算学生平均分:(学生的数量和总分确定,计算的平均分都一致)
* -->每个对象计算平均分效果一致
* 注意点
* 1)静态的结构(静态变量,方法,块) 不能直接 访问非静态(成员变量,方法,构造器)的 结构
* 原因-》静态的结构-属于类-调用的时候没有用对象,不能访问this,不能用this.成员变量。。。
* 2)非静态(成员变量,方法)的结构 可以直接 访问的 静态的结构(静态变量,方法,块)
* 原因-》静态的资源--先于(非静态)成员的资源存在