老紫竹JAVA基础培训(2)熟悉方法的调用
原文:http://www.java2000.net/p11412
我们上一个只用直接的输出语句,打印出可Hello World
- System.out.println("Hello World!");
- // package 影响到你的类存储目录和访问方式
- // 这个课程2,我们使用了lession2,对应的目录也是
- // E:\javalession\base\src\lession2
- package lession2;
- /**
- * 熟悉静态和非静态方法的调用。<br>
- * 通过方法的调用,实现输出Hello World的目的。<br>
- * 区分静态方法和非静态方法。
- *
- * @author 老紫竹 JAVA世纪网(java2000.net)
- *
- */
- public class Lession2 {
- public static void main(String[] args) {
- // 直接调用类的静态(static)方法
- // 无论当前方法是否为静态方法。
- hello1();
- // 非静态方法,需要使用该方法的实例,也就是要new一个出来
- // 因为当前调用方 main是 static void main, 也就是静态的
- // 在静态的方法里是不能直接使用非静态的方法的
- // 所以我们先构造出一个类的实例出来
- Lession2 lession2 = new Lession2();
- // 然后用类的实例,注意大小写,
- // 类是大写开头的,我new出来的实例名字是小写开头的
- // 其中 lession2 也被称为变量,因为它只在main方法里出现,也成为局部变量
- lession2.hello2();
- }
- /**
- * 静态方法,可以被任何方法直接调用。
- */
- public static void hello1() {
- System.out.println("Hello World-1!");
- }
- /**
- * 非静态方法,必须用一个类的实例调用才可以。
- */
- public void hello2() {
- System.out.println("Hello World-2!");
- }
- }
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
尝试2,不合格的变量名出现的错误信息如下:
Syntax error on token "123l", delete this token
尝试3 里面出现错误信息如下:
Duplicate method hello1() in type Lession2
屏幕截图
尝试4 静态变量可以直接使用,也可以用类的实例调用。
这一讲我们就到这里,欢迎大家反馈意见,如有错误,我会尽快完善这个教程