Java——方法

Java 方法

    Systom.out.println():其中,println()是一个方法(Method),而System是系统类(Class),out是标准输出对象(Object)。这句话的意思是:调用系统类Systeme中的标准输出对象out中的方法println()。

什么是方法?

    Java 方法是语句的集合,它们在一起执行一个功能。
    ·方法是解决一类问题的步骤的有序组合。
    ·方法包含于类或对象中
    ·方法在程序中被创建,在其他地方被引用。

方法的定义:

   语法:
         修饰符 返回值类型 方法名(参数类型 参数名){
               . . . . . . . . . 
               方法体
               . . . . .
               return 返回值;
          }
       方法包含一个方法头和一个方法体。
        一个方法的所有部分为:
             · 修饰符:可选的,告诉编译器如何调用该方法,定义了该方法的访问类型。
             · 返回值类型:方法可能会返回值。eturnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void。
         · 方法名:是方法的实际名称。方法名和参数共同构成方法签名。
         · 参数类型:当方法被调用时,传递值给参数。值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,可有可无。
          实例:public static int age (int birthday) {......}
         参数可以有多个:
          static float hobby(float a,char b){......}

方法调用

    根据方法是否返回值来选择,Java支持两种调用方法的方式。
    当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
   下面的例子演示了如何定义一个方法,以及如何调用它:
public class TestMax {
   /** 主方法 */
   public static void main(String[] args) {
      int i = 5;
      int j = 2;
      int k = max(i, j);
      System.out.println("The maximum between " + i +
                    " and " + j + " is " + k);
   }

   /** 返回两个整数变量较大的值 */
   public static int max(int num1, int num2) {
      int result;
      if (num1 > num2)
         result = num1;
      else
         result = num2;

      return result; 
   }
}

以上实例编译运行结果如下: The maximum between 5 and 2 is 5

main方法的头部是不变的,如例子所示,带修饰符public和static,返回void类型值,方法名字是main,此外带个一个String[]类型参数。String[]表明参数是字符串数组。

void关键字

下面的例子声明了一个名为printGrade的方法,并且调用它来打印给定的分数。
示例

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('F');
      }
   }
}

以上实例编译运行结果如下: C

这里printGrade方法是一个void类型方法,它不返回值。
一个void方法的调用一定是一个语句。 所以,它被在main方法第三行以语句形式调用。就像任何以分号结束的语句一样。

通过值传递参数
调用一个方法时候需要提供参数,你必须按照参数列表指定的顺序提供。


方法的重载

 创建另一个有相同名字但参数不同的方法。
 一个类的两个方法拥有相同的名字,但是有不同的参数列表。
 Java编译器根据方法签名判断哪个方法应该被调用。
 重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。

变量作用域

 变量的范围是程序中该变量可以被引用的部分。
 方法内定义的变量被称为局部变量。
 局部变量的作用范围从声明开始,直到包含它的块结束。
 局部变量必须声明才可以使用。
 方法的参数范围涵盖整个方法。参数实际上是一个局部变量。
 for循环的初始化部分声明的变量,其作用范围在整个循环。
 但循环体内声明的变量其适用范围是从它声明到循环体结束。

命令行参数的使用
运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。
命令行参数是在执行程序时候紧跟在程序名字后面的信息。

构造方法:

 当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。
 通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。
 不管你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个默认构造方法,它把所有成员初始化为0。
 一旦你定义了自己的构造方法,默认构造方法就会失效。

下面是一个使用构造方法的例子:

// 一个简单的构造函数
class MyClass {
   int x;

   // 以下是构造函数
   MyClass() {
      x = 10;
   }
}

你可以像下面这样调用构造方法来初始化一个对象:
public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass();
      MyClass t2 = new MyClass();
      System.out.println(t1.x + " " + t2.x);
   }
}
大多时候需要一个有参数的构造方法。
下面是一个使用构造方法的例子:
// 一个简单的构造函数
class MyClass {
   int x;

   // 以下是构造函数
   MyClass(int i ) {
      x = i;
   }
}

你可以像下面这样调用构造方法来初始化一个对象:

public class ConsDemo {

   public static void main(String args[]) {
      MyClass t1 = new MyClass( 10 );
      MyClass t2 = new MyClass( 20 );
      System.out.println(t1.x + " " + t2.x);
   }
}

运行结果如下: 10 20

上一篇:编程规范


下一篇:4.Kotlin的泛型和委托