java中 的变量在方法间的传递权限问题

问题描述

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

java中 的变量在方法间的传递权限问题的相关文章

java中final 变量作为方法的参数?怎么理解?见下面代码

问题描述 java中final 变量作为方法的参数?怎么理解?见下面代码 class NiMingLei { public static void main(String[] args) { Outer out= new Outer(); out.function(7); out.function(8); } } class Outer { static int y=4; void function(final int a) { class Inter { void method() { Sys

java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢

问题描述 java中static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢 栈内存:局部变量和对象的引用变量: 堆内存:对象: 以上是我所知道的,那么static变量和static方法以及普通方法在那个内存中存储呢? 请高手指点,谢谢 解决方案 static和普通方法都存在堆内存中,堆内存有个永久区permgen,这里面会存类信息. 所以不断的加载类或jar包可能出现permgen oome的错误. static是在堆内存的数据区. 解决方案二: java stat

java反射_改变private中的变量及方法的简单实例_java

java反射_改变private中的变量及方法的简单实例 class DemoTest{ private String name="123"; public getName(){ system.out.println("public getName " + name); return name; } private getName2(){ system.out.println("private getName2 " + name); return

java中关于变量的作用域的问题

问题描述 java中关于变量的作用域的问题 在java中局部变量,实例变量,类变量的作用域都分别是什么呢? 解决方案 在java中: 局部变量:一般指的就是方法内部的变量,它的作用域范围就是定义方法体内部,也就是两个花括号之间,出了这个范围就访问不到了.实例变量实例变量也叫_非静态成员变量_,它的作用范围是在当前类创建的实例对象范围,如果当前实例对象被销毁,它也将随之消失,各个实例对象之间互不影响.类变量类变量也叫_静态成员变量_,顾名思义类变量,它就是跟当前类有关系的,它是属于当前类的.cla

java 使用变量-java 中使用变量之前是不是一定得判断是否为空?

问题描述 java 中使用变量之前是不是一定得判断是否为空? java 中使用变量之前是不是一定得判断是否为空? java 中使用变量之前是不是一定得判断是否为空? 解决方案 Java 中判断 String 变量为空的条件 解决方案二: 这个要视情况而定了.如果你定义的时候给了初始值,并且在程序运行过程中,你确定没有其他地方该对象进行null赋值,那么就不需要判断了. 如果你不确定,那么最好在使用前判断下,避免空指针异常 解决方案三: 其实从安全性考虑,无论何时,只要使用了该变量都最好判断一下,

java中的类的方法的调用的问题

问题描述 java中的类的方法的调用的问题 新人初学java,有些概念不是很懂,还望各位能帮帮忙,谢谢 在java中,我知道静态方法(变量)可以直接类名.调用,而不用再创建对象, 但是我在学习枚举时遇到这样一个问题: public enum WeekDay{ MON,TUE,WEB,THU,FIR,SAT } public class TestEnum{ public void static main(String [] ,args){ WeekDay today = WeekDay.SAT;

java中什么情况下方法的参数可以省略数据类型而直接写数据?

问题描述 java中什么情况下方法的参数可以省略数据类型而直接写数据? 比如put(int 3); 什么情况下可以写put(3); 这里的put方法也没有方法体,什么情况下可以省略方法体呢 解决方案 put(int 3),有这种方式吗 put(int n)这种形式是方法的定义,当你使用put方法时,就直接传具体的值就行了 public int put(int n) { return n*10; } int m = put(10) 解决方案二: 对于你这种问法我是不解的,全局变量定义之后,局部变量

《Android的设计与实现:卷I》——第2章2.4 在Java中调用JNI实现方法

2.4 在Java中调用JNI实现方法 本节介绍如何在Java中调用JNI实现方法.JNI数据类型转换.JNI方法命名规则,以及JNI方法签名规则. 2.4.1 Java数据类型与JNI数据类型转换 Java中调用Native方法传递的参数是Java类型的,这些参数需要经过Dalvik虚拟机转化为JNI类型才能被JNI层识别.下面分基本类型和引用类型介绍这种转化关系. 1.基本类型转化关系 表2-1列出了基本类型的转化关系. 2.引用类型转化关系 JNI的引用类型定义了九种数组类型,以及jobj

java中的变量的作用域问题

问题描述 java中的变量的作用域问题 新人初学java,在变量的作用域这里卡了下 我知道全局变量和局部变量,但是如果我在main的开头就申明了一个变量,那这个变量应该是全局变量吧,下面所有的方法都可以调用这些变量,但是如果我在main函数中间申明了一个变量,那这个变量算什么?还算是全局变量吗?是不是只有后面的方法才能使用它,而在他之前的就不能用? 还有一个问题: File tmp; while(!list.isempty()){ tmp = (File)list.removeFirst ...