1.什么是方法
Java方法是语句的集合,它们在一起执行一个功能
a.方法是解决一类问题的步骤的有序组合
b.方法包含于类或对象中
c.方法在程序中被创建,在其他地方被引用
2.定义
语法:修饰符 返回值类型 方法名(参数类型 参数名){
方法体
return 返回值;
}
命名规则:a.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头,不 使用连接符,例:stuName
b.下划线可能被用来做分割(在JUnit测试方法名称中)。典型模式: test<MethodUnderTest>_<state>
例:testPop_emptyStack
方法包含一个方法头和方法体
方法头:1.修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问型。
2.返回值类型:方法可能会返回值,有些方法执行所需的操作,但没有返回值。
3.方法名:是方法的实际名称,方法名和参数表共同构成方法签名。
4.参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实 参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可 选的,方法可以不包含任何参数。
方法体:方法体包含具体的语句,定义该方法的功能。
public static int max(int a,int b) {
int result;
if(a>b){
result=a;
}
else{
result=b;
}
return result;
}
3.方法的调用(方式一)
Java支持两种调用方法的方式,根据方法是否返回值来选择
当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
当方法返回一个值的时候,方法调用通常被当做一个值。例如:
int larger=max(3,4);
如果方法返回值是void,方法调用一定是一条语句。例如,方法println返回void。下面的调用是个语句:System.out.println("Hello word");
定义及调用实例
public class TestMax {
// 主方法
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println( i + " 和 " + j + " 比较,最大值是:" + k);
}
// 返回两个整数变量较大的值
public static int max(int num1, int num2) {
int result;
if (num1 > num2){
result = num1;
}
else{
result = num2;
}
return result;
}
}
void关键字
一个void方法的调用一定是一个语句。 所以,它被在main方法第三行以语句形式调用。就像任何以分号结束的语句一样。
public class TestVoidMethod {
public static void main(String[] args) {
printGrade(78.5);
}
public static void printGrade(double score) {
if (score >= 90.0) {
System.out.println("A");
}
else if (score >= 80.0) {
System.out.println("B");
}
else if (score >= 70.0) {
System.out.println("C");
}
else if (score >= 60.0) {
System.out.println("D");
}
else {
System.out.println("E");
}
}
}
方法的调用(方式二)
JAVA中方法的调用主要有以下几种:
1.非静态方法
非静态方法就是没有static修饰的方法,对于非静态方法的调用,是通过对 象来调用的,表现形式如下:对象名.方法名()
public class InvokeMethod{
public static void main(String[] args){
InvokeMethod in = new InvokeMethod();
in.t1();
}
public void t1(){
System.out.printfln("t1");
}
}
2.调用静态方法
静态方法就是用 static 修饰的方法,静态方法的调用是通过类名来调用的, 表现形式如下:
类名.方法名()
public class InvokeMethod{
public static void main (String[] args){
InvokeMethod.t2();
}
public static void t2(){
System.out.println("static t2....");
}
}
3.方法与方法之间的调用
方法与方法之间的调用,主要是在一个方法内部如何调用其他方法。
(1)静态方法内部调用其他方法
如果在本类当中,静态方法可以直接调用静态方法,
除了在 main 方法中,还可以在自定义的静态方法中直接调用。
如果在本类当中是非静态方法,就必须通过对象来调用。
public class InvokeMethod{
public static void main (String[] args){
t2();
}
public static void t2(){
System.out.println("static t2...");
}
public static void t1(){
//静态方法调用非静态方法需通过对象来调用
//InvokeMethod in =new InvokeMethod();
//in.t2();
t2();
System.out.println("static t1");
}
}
如果不在一个类当中,静态方法调用其他类中的静态方法,必须通过类名.静态方法
如果在不同类当中,静态方法调用其他类的非静态方法,需要导入该类中的包,以及通过创建对象调用。
(2)非静态方法内部调用
如果在本类中,非静态方法可以直接调用静态方法与非静态方法。
在不同类中,非静态方法调用其他类的静态方法,需要通过导入该类中的包,并且需要通过类名来调用。
在不用类中,非静态方法调用其他类的非静态方法时,需要导入该类中的包,还需要通过创建对象来调用。