老紫竹JAVA基础培训(2)熟悉方法的调用


原文:http://www.java2000.net/p11412

我们上一个只用直接的输出语句,打印出可Hello World
  1. System.out.println("Hello World!");
这里我们讲使用方法,来实现输出这个 Hello World的功能。我们先看代码。
  1. // package 影响到你的类存储目录和访问方式
  2. // 这个课程2,我们使用了lession2,对应的目录也是
  3. // E:\javalession\base\src\lession2
  4. package lession2;
  5. /**
  6.  * 熟悉静态和非静态方法的调用。<br>
  7.  * 通过方法的调用,实现输出Hello World的目的。<br>
  8.  * 区分静态方法和非静态方法。
  9.  * 
  10.  * @author 老紫竹 JAVA世纪网(java2000.net)
  11.  * 
  12.  */
  13. public class Lession2 {
  14.   public static void main(String[] args) {
  15.     // 直接调用类的静态(static)方法
  16.     // 无论当前方法是否为静态方法。
  17.     hello1();
  18.     // 非静态方法,需要使用该方法的实例,也就是要new一个出来
  19.     // 因为当前调用方 main是 static void main, 也就是静态的
  20.     // 在静态的方法里是不能直接使用非静态的方法的
  21.     // 所以我们先构造出一个类的实例出来
  22.     Lession2 lession2 = new Lession2();
  23.     // 然后用类的实例,注意大小写,
  24.     // 类是大写开头的,我new出来的实例名字是小写开头的
  25.     // 其中 lession2 也被称为变量,因为它只在main方法里出现,也成为局部变量
  26.     lession2.hello2();
  27.   }
  28.   /**
  29.    * 静态方法,可以被任何方法直接调用。
  30.    */
  31.   public static void hello1() {
  32.     System.out.println("Hello World-1!");
  33.   }
  34.   /**
  35.    * 非静态方法,必须用一个类的实例调用才可以。
  36.    */
  37.   public void hello2() {
  38.     System.out.println("Hello World-2!");
  39.   }
  40. }
运行结果:
Hello World-1!
Hello World-2!

我们可以尝试如下的几个测试记得每次尝试后,恢复原始版本哦
1 去掉静态方法里面的static,然后编译看看,熟悉一下这个编译错误

2 将我们new出来的变量 lession1 改成 obj 或者你喜欢的变量名字(记得要改2处,一处声明,一处调用),然后编译看看,熟悉一下哪些可以做变量名,同时不同的变量名对程序的运行是否影响。

3 把非静态方法 hello2 改名为 hello1(同样得改2处),看看编译结果,熟悉一下这个编译错误

4 尝试用 lession2调用hello1看看,比如 lession2.hello1(); 看看编译效果和运行结果。



备注:
尝试1 出现的编译错误如下:
Cannot make a static reference to the non-static method hello1() from the type Lession2
老紫竹JAVA基础培训(2)熟悉方法的调用

尝试2,不合格的变量名出现的错误信息如下:
Syntax error on token "123l", delete this token
老紫竹JAVA基础培训(2)熟悉方法的调用


尝试3 里面出现错误信息如下:
Duplicate method hello1() in type Lession2
屏幕截图
老紫竹JAVA基础培训(2)熟悉方法的调用


尝试4 静态变量可以直接使用,也可以用类的实例调用。

这一讲我们就到这里,欢迎大家反馈意见,如有错误,我会尽快完善这个教程