在Java语言中,方法表示类和对象能做什么,对于调用者来说,有一个输入和输出的关系。输入的是参数,输出的是结果。
方法的语法格式
修饰符 返回值类型 方法名(参数类型 参数名){
...方法体
...return 返回值;
}
上面的参数不是必须的,可以直接用()中不带任何参数,如果方法的返回类型为void,那方法内的retun 也可以不用,如果有其他类型,那return的类型必须和返回值类型一致。
怎么调用方法
因为java的面向对象特性,方法是不能单独存在的,它是类所包含的。在外部被调用的时候需要对象或者类,如果方法有static修饰,那就可以用类直接调用改方法。当然在自己的类中可以在其他的方法中被随意调用。
实例
我将构建一个Person的类,它有两个方法,一个方法打印出“我是方法1”,一个打印出“我是方法1”,一个方法调用内部的方法1,一个带参数输入的方法,重载的方法。
/**
* Person 类
*/public class Person {/**
* 需要对象实例才可以被调用的
*/public void fun1() {
System.out.println("我是方法1");
}public static void fun2() {
System.out.println("我是方法2");
}public void fun3() {
System.out.println("我调用了方法1");
fun1();
}/**
* 带参数输入的方法
* @param str
*/public void fun4(String str) {String getStr = str;
System.out.println(getStr);
}/**
* 带返回值的方法
* @return
*/public String fun5() {return "666";
}public String fun5(String str) {return str;
}public String fun5(String str, int number) {return str + number; } }}
}
调用方法:如果方法用static修饰,直接用类名就可以调用该方法。
方法直接使用类调用:
/**
* 主函数
* @param args
*/public static void main(String[] args) {// 直接调用
Person.fun2();
Person person = new Person();// 通过对象去调用
person.fun1();
person.fun2();
person.fun3();
}打印结果:我是方法2我是方法1我是方法2我调用了方法1我是方法1
在方法中比较重要的两个就是返回值和参数。返回的是结果,输入的是参数。
- 参数(形参和实参)
形参是方法表示时候的参数,它告诉调用者我需要什么样的参数。
实参是调用者实际传入的参数,方法需要什么类型参数,我就给你的这个参数的值就是实参。
/**
* 主函数
* @param args
*/public static void main(String[] args) {
Person person = new Person();String str = "我是实参";
person.fun4(str);
person.fun4("我是直接传入的实参");
}打印结果:我是实参我是直接传入的实参
- 返回值
带返回值的方法,可以将最后的值,赋值给相对应的参数定义。
/**
* 主函数
* @param args
*/public static void main(String[] args) {
Person person = new Person();String s = person.fun5();
System.out.println(s);
}打印结果:666
方法重载
方法重载是指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数的类型或参数的个数
方法重载就是我们两的方法名相同,但是传入的参数类型是不一样的。
查看重载方法的其他参数:使用快捷键control + p
方法重写
子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
/**
* 主函数
* @param args
*/public static void main(String[] args) {
Person person = new Person();String s = person.toString();
System.out.println(s);}打印结果:重写了toString
}
打印结果: