Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > ошибка при создании экземпляра класса


Автор: Berliner 25.4.2006, 14:19
Здраствуйте ,пытаюсь создать экземпляр  класса 

Код

class scr  extends JFrame{
 int read;
 Graphics g;


  public void pars(){



Создаю экземпляр данного класса

Код

 public static void main(String[] args)  {
        scr scrl=new scr();


Вот ошибка 

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Administrator\Рабочий стол\istr\build\classes
C:\Documents and Settings\Administrator\Рабочий стол\istr\src\istr\istr.java:104: non-static variable this cannot be referenced from a static context
        scr scrl=new scr();
1 error
СБОРКА ЗАВЕРШЕНА НЕУДАЧНО (общее время: 0 секунд)
Подскажите  в чем проблема?
    

Автор: Beard 25.4.2006, 14:28
Класс scr должен быть static, либо вынесен в отдельный файл 

Автор: batigoal 25.4.2006, 14:37
Приведи полный код. 

Автор: jimur 25.4.2006, 23:03
Поставь Idea или Eclipse - очень помогает начинающим своими подсказками.
И имена классов должны с больших букв начинаться smile 

Автор: Sherst 25.4.2006, 23:53
Где-то в staic методе используешь this ...
Если ты находишся внутри метода и хочешь получить ссылку на объект, который вызвал данный метод,  то надо использовать this.
Статик методы можно вызывать без создания объекта класса, значит использование this здесь запрещено.И еще внутри static метода нельзя вызывать не static метод, хотя обратное верно.

to Beard
Не понял твою мысль на счет static класса. (я ж могу создать экземпляр не статического класса в статик методе : Scr s = new Scr()) 

Автор: jimur 26.4.2006, 00:12
Цитата(Sherst @  25.4.2006,  23:53 Найти цитируемый пост)
to Beard
Не понял твою мысль на счет static класса. (я ж могу создать экземпляр не статического класса в статик методе : Scr s = new Scr())  

Только не иннер класса smile

Без исходников приходится догадыватьсяsmile Наверно имелась в виду такая ошибка:
Код

public class istr {
 public static void main(String[] args)  {
        scr scrl=new scr();
}
class scr  extends JFrame{
 int read;
 Graphics g;
  public void pars(){}
}
}
 

Автор: Sherst 26.4.2006, 08:50
А если так написать smile

Код

import javax.swing.*;
import java.awt.Graphics;

public class Main {
 public static void main(String[] args)  {
     Main g = new Main();
     scr h = g.new scr();
     h.pars();
}
 
class scr  extends JFrame{
 int read;
 Graphics g;
  public void pars(){}
}
}



 

Автор: Beard 26.4.2006, 10:06
Цитата

Без исходников приходится догадыватьсяsmile Наверно имелась в виду такая ошибка:


Это ИМЕННО такая ошибка smile

to Sherst:
Именно так бы и посоветовал сделать Eclipse в такой ситуации smile
 

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