Java 使用简单的打印方法打印数组对象
如何引用在其上实现实例方法的对象。我编写了一个名为Java 使用简单的打印方法打印数组对象,java,arrays,class,object,methods,Java,Arrays,Class,Object,Methods,如何引用在其上实现实例方法的对象。我编写了一个名为MatrixMaker的类,如下所示: package one; public class MatrixMaker { private int rows; private int columns; public MatrixMaker(int m, int n){ rows = m; columns = n; double[][] matrix = new double[rows][columns]; } pub
MatrixMaker
的类,如下所示:
package one;
public class MatrixMaker {
private int rows;
private int columns;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
double[][] matrix = new double[rows][columns];
}
public void printer(){
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
System.out.print(matrix[i][j]);
}
System.out.println();
}
}
我的问题是如何使用
matrix.printer();
打印数组。我似乎无法引用方法printer()
中对象的内容。具体而言,该行:
System.out.print(matrix[i][j]);
您的
double[][]矩阵
变量是构造函数的局部变量,因此它只存在于构造函数的范围内。使其成为实例变量,以便从其他方法访问它
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
这将使打印机
方法可以访问它。
…您的
double[][]矩阵
变量是构造函数的局部变量,因此它只存在于构造函数的范围内。使其成为实例变量,以便从其他方法访问它
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
这将使打印机
方法可以访问它。
…您的
矩阵
数组是构造函数矩阵生成器(int m,int n)
中的局部变量。如果将其转换为成员变量,则可以从其他方法访问它
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
您的
矩阵
数组是构造函数矩阵生成器(int m,int n)
中的局部变量。如果将其转换为成员变量,则可以从其他方法访问它
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
您将矩阵定义为矩阵类构造函数的局部变量。这个类不会编译 尝试将矩阵定义为字段:
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
public void printer(){
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
System.out.print(matrix[i][j]);
}
System.out.println();
}
}
公共类矩阵生成器{
私有int行;
私有int列;
私有双[]矩阵;
公共矩阵生成器(int m,int n){
行=m;
列=n;
矩阵=新的双[行][列];
}
公用打印机(){
对于(int i=0;i
您将matrix定义为matrix类构造函数的局部变量。该类不会编译
尝试将矩阵定义为字段:
public class MatrixMaker {
private int rows;
private int columns;
private double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
public void printer(){
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
System.out.print(matrix[i][j]);
}
System.out.println();
}
}
公共类矩阵生成器{
私有int行;
私有int列;
私有双[]矩阵;
公共矩阵生成器(int m,int n){
行=m;
列=n;
矩阵=新的双[行][列];
}
公用打印机(){
对于(int i=0;i
必须在类中声明变量矩阵,使其成为成员变量,而不是构造函数中的局部变量
public class MatrixMaker(int m, int n) {
private int rows;
private int columns;
private double[][] matrix;
...
必须在类中声明变量矩阵,使其成为成员变量,而不是构造函数中的局部变量
public class MatrixMaker(int m, int n) {
private int rows;
private int columns;
private double[][] matrix;
...
试试这个:
import java.util.Scanner;
public class MatrixMaker {
private int rows;
private int columns;
double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
public void printer(){
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
System.out.print(matrix[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args) {
MatrixMaker m=new MatrixMaker(4,4);
Scanner in=new Scanner(System.in);
System.out.println("Enter Matrix Elements:");
for(int i=0;i<m.rows;i++){
for(int j=0;j<m.columns;j++)
m.matrix[i][j]=Integer.parseInt(in.next());
}
in.close();
m.printer();
}
}
或者您可以逐个提供输入编号,如下所示:
1.
2.
3.
4.
5.
6.
..试试这个:
import java.util.Scanner;
public class MatrixMaker {
private int rows;
private int columns;
double[][] matrix;
public MatrixMaker(int m, int n){
rows = m;
columns = n;
matrix = new double[rows][columns];
}
public void printer(){
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
System.out.print(matrix[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args) {
MatrixMaker m=new MatrixMaker(4,4);
Scanner in=new Scanner(System.in);
System.out.println("Enter Matrix Elements:");
for(int i=0;i<m.rows;i++){
for(int j=0;j<m.columns;j++)
m.matrix[i][j]=Integer.parseInt(in.next());
}
in.close();
m.printer();
}
}
或者您可以逐个提供输入编号,如下所示:
1.
2.
3.
4.
5.
6.
..在类范围中定义
double[]matrix
。因此将其放置在private int columns;
所在的位置。谢谢!我甚至没有想到这个。定义double[]矩阵
在你的类范围内。所以把它放在private int columns;
所在的位置。谢谢你!我甚至没有想到这一点。它起作用了!再次感谢。我应该想到这一点。它起作用了!再次感谢。我应该想到这一点。