Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用另一种方法访问数组_Java_Arrays_Variables_Public - Fatal编程技术网

Java 用另一种方法访问数组

Java 用另一种方法访问数组,java,arrays,variables,public,Java,Arrays,Variables,Public,我试图用一个单独的方法来访问一个数组,它是在这个方法中初始化的 public void initializeArray() { String sentences[] = new String[5]; for(int i=0; i<5; i++) { sentences[i] = i+1; } } public void printArray() { for(int i=0; i<5; i++

我试图用一个单独的方法来访问一个数组,它是在这个方法中初始化的

public void initializeArray()
{                
    String sentences[] = new String[5];

    for(int i=0; i<5; i++)
    { 
        sentences[i] = i+1;
    }
}

public void printArray()
{
    for(int i=0; i<5; i++)
    {
        System.out.println(sentences[i]);
    }
}
public void initializeArray()
{                
字符串语句[]=新字符串[5];

对于(int i=0;i将
printArray
方法的签名更改为

public void printArray(String[] sentences){...}
你有吗

public void initializeArray(){
   int arraySize = 5;
   String[] sentences = new String[arraySize];
   for(int i=0; i<arraySize; i++){
        sentences[i] = new String(i+1);
   }
   printArray(sentences);
}
public void initializeArray(){
int-arraySize=5;
String[]句子=新字符串[arraySize];

对于(int i=0;i将
printArray
方法的签名更改为

public void printArray(String[] sentences){...}
你有吗

public void initializeArray(){
   int arraySize = 5;
   String[] sentences = new String[arraySize];
   for(int i=0; i<arraySize; i++){
        sentences[i] = new String(i+1);
   }
   printArray(sentences);
}
public void initializeArray(){
int-arraySize=5;
String[]句子=新字符串[arraySize];

对于(int i=0;i使句子成为两个函数的全局变量或参数。

使句子成为两个函数的全局变量或参数

我试图在程序顶部创建一个数组实例,但是 它给了我一个错误,说“局部变量隐藏一个字段”

您已经有一个实例变量,因此请删除方法中的局部变量:

public void initializeArray()
{                
    //String Sentences[] = new String[5];
    ...
}
也不要像在for循环中那样使用幻数:

for(int i=0; i<5; i++)//use `sentences.length` instead of `5`
for(int i=0;i
我试图在程序顶部创建一个数组实例,但是
它给了我一个错误,说“局部变量隐藏一个字段”

您已经有一个实例变量,因此请删除方法中的局部变量:

public void initializeArray()
{                
    //String Sentences[] = new String[5];
    ...
}
也不要像在for循环中那样使用幻数:

for(int i=0; i<5; i++)//use `sentences.length` instead of `5`

for(int i=0;i从两种方法访问同一数组有两种方法:

  • 通过数组类型的实例变量访问数组,或
  • 将数组作为参数传递给方法
第一种方法如下所示:

class TestInstanceVar {
    private String[] sentences = new String[5];
    public static void main(String[] args) {
        TestInstanceVar obj = new TestInstanceVar();
        obj.initializeArray();
        obj.printArray();
    }
    public void initializeArray() {
        ...
    }
    public void printArray() {
        ...
    }
}
class TestPassArray {
    public static void main(String[] args) {
        private String[] sentences = new String[5];
        initializeArray(sentences);
        printArray(sentences);
    }
    public static void initializeArray(String[] sentences) {
        ...
    }
    public static void printArray(String[] sentences) {
        ...
    }
}
public class Example {

    static String sentences[] = new String[5];;

    public static void main(String[] args) {
        initializeArray();
        printArray();
    }

    public static void initializeArray() {
        for (int i = 0; i < 5; i++) {
            sentences[i] = "" + (i + 1);
        }
    }

    public static void printArray() {
        for (int i = 0; i < 5; i++) {
            System.out.println(sentences[i]);
        }
    }
}
在这里,方法作为实例变量访问
语句
,在同一实例上运行的所有方法中共享

第二种方法如下所示:

class TestInstanceVar {
    private String[] sentences = new String[5];
    public static void main(String[] args) {
        TestInstanceVar obj = new TestInstanceVar();
        obj.initializeArray();
        obj.printArray();
    }
    public void initializeArray() {
        ...
    }
    public void printArray() {
        ...
    }
}
class TestPassArray {
    public static void main(String[] args) {
        private String[] sentences = new String[5];
        initializeArray(sentences);
        printArray(sentences);
    }
    public static void initializeArray(String[] sentences) {
        ...
    }
    public static void printArray(String[] sentences) {
        ...
    }
}
public class Example {

    static String sentences[] = new String[5];;

    public static void main(String[] args) {
        initializeArray();
        printArray();
    }

    public static void initializeArray() {
        for (int i = 0; i < 5; i++) {
            sentences[i] = "" + (i + 1);
        }
    }

    public static void printArray() {
        for (int i = 0; i < 5; i++) {
            System.out.println(sentences[i]);
        }
    }
}

这里,数组是在
main
方法中创建的,并作为参数显式传递给初始化和打印方法。请注意,这些方法被标记为
static
,并且在不创建对象的情况下进行访问。

有两种方法可以从两个方法访问同一数组:

  • 通过数组类型的实例变量访问数组,或
  • 将数组作为参数传递给方法
第一种方法如下所示:

class TestInstanceVar {
    private String[] sentences = new String[5];
    public static void main(String[] args) {
        TestInstanceVar obj = new TestInstanceVar();
        obj.initializeArray();
        obj.printArray();
    }
    public void initializeArray() {
        ...
    }
    public void printArray() {
        ...
    }
}
class TestPassArray {
    public static void main(String[] args) {
        private String[] sentences = new String[5];
        initializeArray(sentences);
        printArray(sentences);
    }
    public static void initializeArray(String[] sentences) {
        ...
    }
    public static void printArray(String[] sentences) {
        ...
    }
}
public class Example {

    static String sentences[] = new String[5];;

    public static void main(String[] args) {
        initializeArray();
        printArray();
    }

    public static void initializeArray() {
        for (int i = 0; i < 5; i++) {
            sentences[i] = "" + (i + 1);
        }
    }

    public static void printArray() {
        for (int i = 0; i < 5; i++) {
            System.out.println(sentences[i]);
        }
    }
}
在这里,方法作为实例变量访问
语句
,在同一实例上运行的所有方法中共享

第二种方法如下所示:

class TestInstanceVar {
    private String[] sentences = new String[5];
    public static void main(String[] args) {
        TestInstanceVar obj = new TestInstanceVar();
        obj.initializeArray();
        obj.printArray();
    }
    public void initializeArray() {
        ...
    }
    public void printArray() {
        ...
    }
}
class TestPassArray {
    public static void main(String[] args) {
        private String[] sentences = new String[5];
        initializeArray(sentences);
        printArray(sentences);
    }
    public static void initializeArray(String[] sentences) {
        ...
    }
    public static void printArray(String[] sentences) {
        ...
    }
}
public class Example {

    static String sentences[] = new String[5];;

    public static void main(String[] args) {
        initializeArray();
        printArray();
    }

    public static void initializeArray() {
        for (int i = 0; i < 5; i++) {
            sentences[i] = "" + (i + 1);
        }
    }

    public static void printArray() {
        for (int i = 0; i < 5; i++) {
            System.out.println(sentences[i]);
        }
    }
}

这里,数组是在
main
方法中创建的,并作为参数显式传递给初始化和打印方法。请注意,这些方法被标记为
static
,并且在不创建对象的情况下访问。

让您的
initializeArray
返回数组,如中所示

public String[] initializeArray () {

   ...
   return sentences;
}
printary
更改为

public void printArray (String [] arr) {
   ...
   System.out.println(arr[i]);
}
设想一个主要方法,如

String myArr [] = initializeArray  ();
printArray (myArr);

让您的
initializeArray
返回一个数组,如中所示

public String[] initializeArray () {

   ...
   return sentences;
}
printary
更改为

public void printArray (String [] arr) {
   ...
   System.out.println(arr[i]);
}
设想一个主要方法,如

String myArr [] = initializeArray  ();
printArray (myArr);

以下方面应起作用:

class MyClass
{

    private String sentences[] = new String[5];

    public void initializeArray()
    {                
        for(int i=0; i<5; i++)
        { 
            sentences[i] = i+1;
        }
    }

    public void printArray()
    {
        for(int i=0; i<5; i++)
        {
            System.out.println(sentences[i]);
        }
    }
}
class-MyClass
{
私有字符串语句[]=新字符串[5];
公共无效初始值设定项array()
{                

对于(int i=0;i而言,以下各项应适用:

class MyClass
{

    private String sentences[] = new String[5];

    public void initializeArray()
    {                
        for(int i=0; i<5; i++)
        { 
            sentences[i] = i+1;
        }
    }

    public void printArray()
    {
        for(int i=0; i<5; i++)
        {
            System.out.println(sentences[i]);
        }
    }
}
class-MyClass
{
私有字符串语句[]=新字符串[5];
公共无效初始值设定项array()
{                

对于(inti=0;i而言,
printary
方法对句子一无所知,对吗

Java是按值传递的,它要求您将一段数据的值直接传递给一个方法,以便该方法对其进行处理。全局值基本上是每个对象都知道的值

因此,您需要一些东西来告诉
initializeArray
printary
应该处理这段数据语句

// A Calling Function
public void initializeAndPrintStringArray
{
    // Get the initialized Sentences Array
    String[] sentences = initializeArray();

    // Print this Initialized Array
    printArray(sentences)
}

// For doing this, you need to change the definitions of your methods

public String[] initializeArray()
{                
    String[] sentences = new String[5]; // You have a spelling mistake here

    for(int i=0; i<5; i++)
    { 
        sentences[i] = i+1;
    }
    return sentences
}

public void printArray(String[] sentences)
{
    // Don't assume the length will always be 5 or something you know beforehand.
    for(int i=0; i<sentences.length; i++) 
    {
        System.out.println(sentences[i]);
    }
}
//调用函数
public void initializeAndPrintStringArray
{
//获取初始化的句子数组
String[]句=initializeArray();
//打印此初始化数组
打印数组(句子)
}
//为此,您需要更改方法的定义
公共字符串[]initializeArray()
{                
String[]句=新字符串[5];//这里有拼写错误

对于(inti=0;i而言,
printary
方法对句子一无所知,对吗

Java是按值传递的,它要求您将一段数据的值直接传递给一个方法,以便该方法对其进行处理。全局值基本上是每个对象都知道的值

因此,您需要一些东西来告诉
initializeArray
printary
应该处理这段数据语句

// A Calling Function
public void initializeAndPrintStringArray
{
    // Get the initialized Sentences Array
    String[] sentences = initializeArray();

    // Print this Initialized Array
    printArray(sentences)
}

// For doing this, you need to change the definitions of your methods

public String[] initializeArray()
{                
    String[] sentences = new String[5]; // You have a spelling mistake here

    for(int i=0; i<5; i++)
    { 
        sentences[i] = i+1;
    }
    return sentences
}

public void printArray(String[] sentences)
{
    // Don't assume the length will always be 5 or something you know beforehand.
    for(int i=0; i<sentences.length; i++) 
    {
        System.out.println(sentences[i]);
    }
}
//调用函数
public void initializeAndPrintStringArray
{
//获取初始化的句子数组
String[]句=initializeArray();
//打印此初始化数组
打印数组(句子)
}
//为此,您需要更改方法的定义
公共字符串[]initializeArray()
{                
String[]句=新字符串[5];//这里有拼写错误

对于(int i=0;i您正在方法initializeArray()内声明变量语句[]。因此,它在该方法外不存在。一旦该方法完成,它就会消失。其他方法无法使用该变量

您应该在方法外部声明变量,如下所示:

class TestInstanceVar {
    private String[] sentences = new String[5];
    public static void main(String[] args) {
        TestInstanceVar obj = new TestInstanceVar();
        obj.initializeArray();
        obj.printArray();
    }
    public void initializeArray() {
        ...
    }
    public void printArray() {
        ...
    }
}
class TestPassArray {
    public static void main(String[] args) {
        private String[] sentences = new String[5];
        initializeArray(sentences);
        printArray(sentences);
    }
    public static void initializeArray(String[] sentences) {
        ...
    }
    public static void printArray(String[] sentences) {
        ...
    }
}
public class Example {

    static String sentences[] = new String[5];;

    public static void main(String[] args) {
        initializeArray();
        printArray();
    }

    public static void initializeArray() {
        for (int i = 0; i < 5; i++) {
            sentences[i] = "" + (i + 1);
        }
    }

    public static void printArray() {
        for (int i = 0; i < 5; i++) {
            System.out.println(sentences[i]);
        }
    }
}
公共类示例{
静态字符串语句[]=新字符串[5];;
公共静态void main(字符串[]args){
初始化array();
printArray();
}
公共静态void initializeArray(){
对于(int i=0;i<5;i++){
句子[i]=“”+(i+1);
}
}
公共静态void printary(){
对于(int i=0;i<5;i++){
系统输出打印LN(senten