方法定义
类似一个封装函数,有自己的作用域
五要素 (修饰词 返回值 方法名 形参(可以无) 方法体)
public static void usingMethod(数据类型 变量名){
}
// public 公共标签(所有人都能访问)
// static 静态数据
// void 返回
// usingMethod 方法名
修饰词
public (所有用户都可以访问)
protected(所属的类中的所有方法可以访问,但外部类无法访问,除继承关系之外)
private(所属的类中的所有方法可以访问,但外部类无法访问)
static 用于声明静态变量、静态方法、静态代码块或静态内部类
abstract 用于声明抽象类或抽象方法
final 一旦设置就不允许修饰修改 ,用于方法,方法不能重写,用于变量,变量无法修改.
final 用于保护数据不易被更改,提高类代码的安全性
返回值
返回的值,如果有返回值 写return 返回对应的数据类型的变量值
void 返回值为空
String 返回值为引用类型字符串
String[] 返回值为引用类型字符串数组
举例(这个在主函数调用方法可以展示到控制台)
单形参的情况下:
//将形参数字转化为字符串数字
public class UsingNoteMethod {
public static void main(String[] args) {
System.out.println(usingMethodString(12113));
}
public static String usingMethodString(int b){
return Integer.toString(b);
}
}
//此方法返回一个string类型的变量值,利用主函数接受
//Integer.toString 将数字类型的转化成字符串
多形参(已经确认了几个形参变量):
public class UsingNoteMethod {
public static void main(String[] args) {
System.out.println(Arrays.toString(usingMethodString(12113,899)));
}
public static String[] usingMethodString(int b,int c){
return new String[]{Integer.toString(b),Integer.toString(c),};
}
}
//多形参的条件下,传统的情况下return只能返回一个值,利用函数可以返回多个值
//Arrays.toString()将数组显示出来
多形参(不确认了几个形参变量)
public static void main(String[] args) {
System.out.println(Arrays.toString(usingMethodString(12113,899,90899,...)));
//...后面想输出几个就可以写几个(数据类型必须相同)
System.out.println(Arrays.toString(usingMethodString(new int[]
{999,78787,988,...})));//...后面想输出几个就可以写几个(数据类型必须相同)
}
public static int[] usingMethodString(int ...b){
return b;
}
调用方法
利用主函数调用方法
public static void main(String[] args) {
usingMethod();//形参没有可以不写但是有的话必须写符合数据类型的变量
}
public static void usingMethod(数据类型 变量名(形参)){
}
形参
定义 虚拟创建一个变量,只在该方法的作用域生效
public static void usingMethodString(int b){
}//其中int b b就是形参
方法重载
前提 方法名重名 但形参数据类型不一样和变量不一样
定义 :当方法名重名,用户可以通过改变了形参个数或者数据类型,减少方法名的重复书写
public static void main(String[] args) {
area("item","东西");
//输出值 index = item, value = 东西
area("好朋友");
//输出值 str = 好朋友
area("item","东西","非常好");
//输出值 random = [item, 东西, 非常好]
area(new String[]{"item","东西","非常好","你真的可以"});
//输出值 random = [item, 东西, 非常好, 你真的可以]
area(new ArrayList<>().toArray(new String[10]));
//输出值 random = [null, null, null, null, null, null, null, null, null, null]
// new ArrayList 是建立集合对象然后将其转化成数组
}
public static void area(String str ){
System.out.println("str = " + str);
}
public static void area(String index,String value ){
System.out.println("index = " + index + ", value = " + value);
}
public static void area( String ... random){
System.out.println("random = " + Arrays.deepToString(random));
}
//注意 当方法重载时候,当有多个参数会优先调用形参最少的方法
注意 当方法重载时候,当有多个参数会优先调用形参最少的方法