[英]cannot be resolved to a variable java 101
用于打印矩阵的新手代码:
import java.util.*;
import java.io.File;
public class Strings {
public static void main(String[] args){
Strings String1 = new Strings();
int alen =0 ,blen =0;
String a,b;
int [][] matrix = new int[alen+1][blen+1];
System.out.println("Enter String a: ");
Scanner usrip = new Scanner(System.in);
a = usrip.next();
System.out.println("Enter String b: ");
b = usrip.next();
System.out.println("Execute print method: ");
String1.printMatrix();
}//end of main
public void printMatrix(){
for(int i=0;i<alen+1;i++)
{
for(int j=0;i<blen+1;j++)
{
System.out.print(matrix[i][j]);
}
}
}//end of printMatrix
}// End class
既然alen,blen在类中声明的不是方法,所以我认为它们是全局变量。 但是看起来它不是我想的那样。
我得到的错误是alen cannot be resolved into a variable
为blen
和matrix
相同alen cannot be resolved into a variable
。
当我尝试像String1.alen
一样访问它们时,同样的错误。
您在main()中声明的变量“ alen”和“ blen”是局部方法,这意味着它们不能从printMatrix()方法访问。 通过编写以下内容使它们成为字段:
private int alen;
private int blen;
在public class Strings {
或按照Christian的建议将它们作为参数传递给printMatrix()方法。
您不能访问alen
, blen
和matrix
因为它们没有在printMatrix()
范围内声明(您可能想了解Java的范围),这是一个简单的解决方案:
将变量作为参数传递:
public void printMatrix(int alen, int blen, int[][] matrix){
...
}
并调用main
方法:
String1.printMatrix(alen, blen, matrix);
当然,这不是必须的,您可以这样做:
public void printMatrix(int[][] matrix){
for(int i=0;i<matrix.length;i++)
{
for(int j=0;i<matrix[i].length;j++)
{
System.out.print(matrix[i][j]);
}
}
}
这有点难看,但是对于初学者来说,您可以执行以下操作:
public class Strings {
public int [][] matrix;
public static void main(String[] args){
Strings String1 = new Strings();
int alen =0 ,blen =0;
String a,b;
String1 = new int[alen+1][blen+1];
...
public void printMatrix(){
for(int i=0;i<matrix.length;i++)
{
for(int j=0;i<matrix[0].length;j++)
{
System.out.print(matrix[i][j]);
}
}
}//end of printMatrix
}// End class
这是许多方法之一:
public void printMatrix(int[][] matrix){
for(int i=0;i<matrix.length;i++) {
for(int j=0;i<matrix[i].length;j++) {
System.out.print(matrix[i][j]);
}
}
}//end of printMatrix`enter code here
像这样称呼它:
String1.printMatrix(matrix);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.