楼上已经说得很详细了,我再凑下热闹吧。
因为method方法不是静态的,所以虽然在同一个类中,也是public权限,但仍不能直接被静态的main方法调用。所以只有通过对象调用。Demo实例调用method时接收2个参数,main方法中的i、s属于局部变量,在main内有效。而method中的i属于其内的局部变量,和main中的i不相干。所以,虽然method打印出一个27,但不影响main中的i值为9。- public class Demo
- {
- public void method (int i, String s) {
- i=i*3;
- System.out.println(s+"说的数字扩大3倍后为"+i);
- }
- public static void main(String[] args)
- {
- Demo demo=new Demo();
- int i=9;
- String s="Tom";
- demo.method(i,s);
- System.out.println(i);
-
- //method(9, "Tom"); //method不是静态方法
- }
- }
复制代码
|