Java中静态的main方法为什么可以调用非静态成员变量?方法之间调用局部变量?

  1. 静态方法不可以 直接 调用动态方法或动态变量,但是可以创建动态变量,也可以 直接 调用静态方法和静态变量。
  2. 对象属于动态的
  3. 动态的可以调用动态的,也可以调用静态的。

综上:

1)main()方法是静态的,在main()方法中,我们可以直接调用main()方法所在类的静态变量或静态方法。
2)但是,在main()方法中,不能直接调用main()方法所在类(或其他类)的非静态变量或非静态方法。必须先创建一个对象实例后,通过对象名.方法 对象名.变量,通过这个对象才能调用类中的非静态变量或非静态方法。
3)在main方法(或其他方法)内部不能直接定义另一个方法,但是可以在main方法(或其他方法)内部定义一个类,再在类里定义方法。
4)一个方法中的变量是局部变量,只能在该方法内使用,如果想要将要一个方法的局部变量在另一个方法使用,一种方式是将局部变量作为实参,第二种方法是利用方法返回值传递局部变量的值。

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
函数的形参、静态局部变量静态局部变量在作用域和生命周期方面有所不同。 形参是在函数定义时声明的,用于接收传入函数的值。它们只在函数内部有作用域,在函数执行结束后就被销毁了。 静态局部变量是在函数内部声明,但是在函数调用结束后,它的值并不会被销毁,它的生命周期与整个程序的生命周期相同,即在程序运行期间都存在。静态变量只会被初始化一次,之后每次调用函数时,都会使用上一次的值。 静态局部变量也是在函数内部声明,但是它的生命周期只在函数调用期间,函数调用结束后,它的值就被销毁了。 下面是一个示例代码,展示了这三种变量的区别: ```c++ #include <iostream> using namespace std; void test(int x) { static int static_var = 0; // 静态局部变量 int non_static_var = 0; // 静态局部变量 cout << "x = " << x << endl; cout << "static_var = " << static_var << endl; cout << "non_static_var = " << non_static_var << endl; static_var++; non_static_var++; } int main() { test(1); test(2); test(3); return 0; } ``` 输出结果: ``` x = 1 static_var = 0 non_static_var = 0 x = 2 static_var = 1 non_static_var = 0 x = 3 static_var = 2 non_static_var = 0 ``` 可以看到,静态局部变量的值在每次调用函数时都会累加,而静态局部变量的值在每次调用函数时都被重新初始化为0。形参也可以像普通变量一样使用,在这个例子,x就是一个形参,它的值在每次调用函数时都不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿罗小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值