在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;
}
@Override
public String toString() {
return "重写了toString";
}
}
调用方法:如果方法用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
好了,上面就是我对方法的一些理解,有不足的地方,希望和大家相互探讨学习。