2015-07-14 4 views
0

Я пытаюсь построить подкласс, и я получаю ошибку, что конструктор не определен?!?!Подкласс Конструктор не распознан

import java.awt.image.BufferedImage; 
import java.io.IOException; 
import javax.imageio.ImageIO; 

public class LinearAlgebra 
{ 
public class Matrix 
    { 
    public int m; 
    public int n; 
    public float Matrix[][]; 
    void Matrix(int tempm, int tempn) 
    { 
     m = tempm; 
     n = tempn; 
     Matrix = new float[m-1][n-1]; 
    } 

    } 
    public static void main(String[] args) 
    { 
    LinearAlgebra Geometry = new LinearAlgebra(); 
    LinearAlgebra.Matrix Rotation = Geometry.new Matrix(3,3); 

    System.out.println("hello"); 
    } 

} 

Извините, что из java некоторое время. Я посмотрел на некоторых ява учебники и думаю, что я делаю то же самое, но он не работает https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html

ответ

2
void Matrix(int tempm, int tempn) 

Это метод не является конструктором. Вы должны удалить тип возвращаемого void:

Matrix(int tempm, int tempn) 

Вы также должны назвать свои локальные переменные, чтобы начать с нижнего регистра, geometry вместо Geometry. Использование прописных букв смущает читателя, потому что кажется, что вложенный класс Matrix является статическим классом, а не внутренним классом. То же самое для переменной Rotation.

+0

все в порядке, спасибо. Так что конструкторам не нужен тип возврата? Или, скорее, не может быть? –

+0

@marshalcraft У него его не должно быть. В противном случае это метод, а не конструктор. – manouti

+0

Да, есть и другие проблемы, например, я сделал Matrix [] [] float, не уверен, что это делает какой-то рекурсивный метод, поэтому я переименовал его в элементы [] [] –

Смежные вопросы