问题描述
- java中 的变量在方法间的传递权限问题
-
我现在定义了方法1(),在该方法里用了scanner获取了一个整数a,对这个整数进行了相关操作,返回了一个字符串s,但是我现在定义了一个方法2(),该方法要接收方法1()返回的字符串s,该方法同时也要用到方法1()中scanner获取的那个整数a,进行操作后返回一个整数b(b用main()函数接收),那么问题就来了,方法1只能返回一个字符串s,那么方法2()怎么获取方法1()的那个用scanner接收到的整数呢?我的想法是将方法1()中的scanner sc=new scanner(System.in), int a=sc,nextInt();在main()方法中定义,那么这个整数a就在方法1中定义整数a1接收,在方法2中用整数a2接收,可是这么做了后却发现不能接收,报错了,这是为什么?
这是我的代码:
package 第一次试验;import java.util.Scanner;
public class Test22 {
public static void main(String [] args){
int a;
Scanner sc=new Scanner(System.in);
a=sc.nextInt();
}public static String s1(){ int a1=a; } private int s2(){ int a2=a; }
}
解决方案
我蒙圈了,作为全局变量的a不是在main()方法中定义的,而是在方法外定义的,只要在类里面,方法外面定义a就行了,在方法里面来接收
解决方案二:
我蒙圈了,作为全局变量的a不是在main()方法中定义的,而是在方法外定义的,只要在类里面,方法外面定义a就行了,在方法里面来接收
解决方案三:
【Java】方法和类的权限问题
shell与python间传递变量方法(转)
php网页间变量传递方法
解决方案四:
你的a不是全局变量,全局变量又叫类变量
解决方案五:
变量a的作用域是定义该变量的最里面一层的大括号,也就是main方法,在s1 s2方法中如果想使用,可以做为参数传入s1。
解决方案六:
你这描述的,看了半天才看懂什么意思。。。。。。。。。。。。。首先方法内的变量属于局部变量,不能跨方法传递,要想传递两种方法,1,s1(int a)
s2(int a)作为参数传进去,2将变量a放到方法外申明,变为全局变量。。。
时间: 2024-11-08 18:49:36