Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > HELP! "public" metody iz drugogo classa nedostupny


Автор: Гость_Sergey 20.5.2005, 13:07
Proshu pomoch', eto ochen vajno. Prostite za latinicu, ya ne v Rossii prosto.

Situaciya takaya: v odnom package est' 2 classa. Odin ispol'zuet drugoy (to est' ob'ekt

etogo classa).
Priviju kraten'ko pervyi class. Tolko chast', no suti eto ne menyaet.


package TestGeneration;

public class MatOfRec {

private double[][] matrix;

public MatOfRec() {

matrix = new double[6][7];

matrix[0][0]=3;
matrix[0][1]=2;
matrix[0][2]=0;
matrix[0][3]=2;
matrix[0][4]=1;
matrix[0][5]=0;
matrix[0][6]=1;

//i tak dalee...

}

public String toString()
{
String strRet="\t\t";

for (int i=0;i<6;i++)
{
for (int j=0;j<7;j++)
{
strRet=strRet+"\t"+matrix[i][j]);
}
strRet=strRet+"\n";
}

return strRet;
}
}



Drugoy class sozdaet ob'ekt etogo tipa i hochet ispolzovat' ego metody. Skajem, toString().

Konechno je, vnutri classa vse ok. Skajem, mojno propisat' vyzov etogo metoda v

konstruktore, vse super. Potomu chto idet neposredstvennoe obrashenie k peremennoy.

No esli ya ispol'zuyu accessor get iz main ili iz drugogo metoda, to poluchayu Exception in

thread "main" java.lang.NullPointerException.



package TestGeneration;

public class TestGenerator {

private MatOfRec matrix;


public TestGenerator() {
MatOfRec matrix = new MatOfRec();
System.out.println(matrix.toString());// rabotaet
System.out.println(getMatrix().toString());//ne rabotaet
}

public MatOfRec getMatrix() {
return matrix;
}


public static void main (String s[])
{
TestGenerator tg=new TestGenerator();
tg.setAmountTestItem(10);
System.out.println(tg.getMatrix().toString());//ne rabotaet
}
}



Ya znayu, eto glupaya oshibka i u nee est' ochen' prostoe reshenie, No ya zabyl. Proboval

CAST - ne rabotaet.

Proshu, ob'yasnite, v chem tut delo.

Ogromnoe spasibo!

Автор: batigoal 20.5.2005, 13:22
Видимо, все дело в этой строке (не проверял):
MatOfRec matrix = new MatOfRec();

Должно быть так:
matrix = new MatOfRec();

Автор: Guest 20.5.2005, 13:23
в конструкторе вместо:
Код

MatOfRec matrix = new MatOfRec();// не правильно
matrix = new MatOfRec();//правильно

Автор: kashka 20.5.2005, 13:24
Я вот даже забыла зарегистрироваться, а все равно Lamer George раньше успел. smile

Автор: batigoal 20.5.2005, 13:29
Проверил - так и есть.

Пара замечаний по "процедурным вопросам":
1) при вводе текста можно пользоваться флажком "транслит",
2) а для кода - кнопкой "Код".

Автор: Гость_Sergey 20.5.2005, 13:35
BLIN, SPASIBO OGROMNOE!!!!!!!

Eto menya tak zatormozilo. Teper' rabotaet. Znal je, chto reshenie elementarnoe...

Udivitel'no, tak bystro poluchit' otvet!

Spasibo, lyudi russkie!!!


Автор: AntonSaburov 20.5.2005, 14:08
Цитата
Spasibo, lyudi russkie!!!

Заходи еще - будем рады.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)