目录
一.方法定义
方法也叫函数,就是用来解决一类问题的代码的有序组合,是一个功能模块。方法定义语句为:
【访问修饰符】 【返回值类型】【方法名】(参数列表){
方法体
}
*访问修饰符:有public(公共的)、protected(被保护的)、private(私有的)、default(无修饰符)。
*返回值类型:如果方法不需要返回值,则返回值类型为void,如果方法具有返回值,则需要指定返回值类型,并使用return语句返回值。
*方法名:定义方法的名字。
*参数列表:参数可有多个,每个参数由参数类型和参数名组成。此处参数为形参,后续调用方法时括号内的为实参。
如:public void a(int x, int y){}
二.方法种类
成员方法:
无参无返回值方法;
无参带返回值方法;
带参无返回值方法;
带参带返回值方法。
(一)无参无返回值方法
定义:
public static void Main(){
System.out.println("hello world");
}
//void表示无返回值(无return语句)
现阶段使用方法都是静态的(static)。
调用:
public static void Main(String[] args){
Main();//调用方法
}
(二)无参有返回值方法
定义:
public static int Main(){
int a = 1;
return a;
}
注意:如果方法返回类型为void,则方法中不能使用return返回值;方法的返回值最多只能有一个,不能返回多个值;方法的返回值类型必须兼容(若返回值类型为int,则不能返回string类型)。
(三)有参无返回值类型
定义:
public static void show(String name){
System.out.println(name);
}
//此处name为形参
调用带参方法与调用无参方法类似,但调用时必须传入实际的参数值。
调用:
public static void main(String[] args) {
//调用方法,得到结果
show("我是Java爱好者");
}
注意:调用带参方法时,必须保证实参的数量、类型、顺序与形参一一对应;调用方法时,实参不需要指定数据类型。
(四)有参有返回值类型
定义:
public static String main(String name){
return "欢迎你" + name;
}
调用:
public static void main(String[] args){
main("wyr");
}
(五)数组作为参数的类型
定义:
public static void arrayManage(int [] data){
for(int i = 0 ; i < data.length ;i++){
// 打印数组
System.out.println(data[i]);
}
}
//无返回值所以用void
//参数列表应写做 类型 [] 数组名
调用:
public static void main(String[] args) {
// 调用方法时传递一个数组
int [] arrayData = {1 ,2 ,3 };
arrayManage(arrayData);
}
构造方法:
构造方法需要满足:
方法名与类名相同;
方法名前面没有声明返回值类型(没有void);
没有返回值(return语句);
一般被声明为公有的(public);
可以有任意多个参数。
定义和调用:
class Apple{
String Name;
int Age;
float Height;
}
//定义构造方法
public class Main {
public static void main(String[] args){
Apple apple = new Apple();
System.out.println(Apple.Name);
System.out.println(Apple.Age);
System.out.println(Apple.Name);
}
}
//调用方法
上述代码中,出现了两个class,其中只有主class用public修饰。一个文件中只有一个主class,主class名与文件名一致。
三.方法重载
如果同一个类中包含了两个或两个以上方法名相同,方法参数的个数、顺序或类型不同的方法,则称为方法的重载,也可称该方法被重载了(在同一个类中,方法名相同,参数类型不同)。
如何区分哪个是被重载方法?当调用被重载的方法时,Java
会根据参数的个数和类型来判断应该调用哪个重载方法,参数完全匹配的方法将被执行。如:
public static void main(String[] args) {
// 调用无参的方法
print();
// 调用带有一个字符串参数的方法
print("小强");
// 调用带有一个整型参数的方法
print("老肖",38);
}
判断方法重载的依据:
1.必须在一个类中
2.方法名相同
3.方法参数的个数、顺序或类型不同
4.与方法的修饰符或返回值无关