Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
1

Non-static variable a cannot be referenced from a static context

20.12.2018, 21:55. Показов 651. Ответов 24
Метки нет (Все метки)

non-static variable a cannot be referenced from a static context
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public class MyClass {
    private int a=2;
    private boolean b=true;
    private char c='A';
    private String s="I'm Ded Moroz";
    MyClass(int q,boolean w,char e)
    {
        a=q;
        b=w;
        c=e;
    }
    public void setA(int a)
    {
        this.a=a;
        System.out.println(a);
    }
    public void setB(boolean x)
    {
        b=x;
        System.out.println(b);
    }
    public void setC(char x)
    {
        c=x;
        System.out.println(c);
    }
     public void setS(String x)
    {
        s=x;
        System.out.println(s);
    }
    
    public String intMultiply3(int x)
    {
        a=a*x;
    }
     public int getA()
    {
        return a;
    }
    
    public static void main(String args[]) {
        MyClass testClass=new MyClass(12,false,'f');
        testClass.setA(1);
        testClass.setB(false);
        testClass.setC('a');
        testClass.setS("But I'm MC Snejnii");
        testClass.intMultiply3(a);
    }
}
Ну и где здесь статический контекст? Я же к объекту методы применю, а не к классу
P.S Просто экспериментировал в свое удовольствие
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2018, 21:55
Ответы с готовыми решениями:

Ошибка: non-static variable this cannot be referenced from a static context
Добрый вечер! Не пинайте сильно ногами, недавно решил взяться за обучение языку Java, что в...

Non-static variable this cannot be referenced from a static context
Выводит следующие ошибки при компиляции данной программы import java.io.*; class...

О чем говорит ошибка "Non-static variable D cannot be referenced from a static context"
non-static variable D cannot be referenced from a static context Вот эта ошибка мне часто...

Ошибка “non-static method cannot be referenced from a static context”
Проблема в том, что в одном классе он просто сделать методы static, а в другом - требует обратного...

24
337 / 263 / 108
Регистрация: 14.06.2016
Сообщений: 522
20.12.2018, 22:00 2
IDE не подсвечивает?
0
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
20.12.2018, 22:11  [ТС] 3
Цитата Сообщение от vcrop Посмотреть сообщение
IDE не подсвечивает?
Мой ноут в ремонте, поэтому пишу на древнем ноуте, которому больше чем мне. на нем IDE не запустится)
0
Эксперт Java
3049 / 2544 / 782
Регистрация: 05.07.2013
Сообщений: 12,308
20.12.2018, 22:24 4
Цитата Сообщение от Anton8800 Посмотреть сообщение
private int a=2;
Цитата Сообщение от Anton8800 Посмотреть сообщение
testClass.intMultiply3(a);
///

Добавлено через 2 минуты

Не по теме:

И да, если тебе пишут, что в твоем коде ошибка, то это у тебя руки не оттуда, а не программа не права, и тем более тут тебе никто ничем не обязан. Поэтому рекомендую пересмотреть свое отношение к проблемам.

0
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
20.12.2018, 22:41  [ТС] 5
Цитата Сообщение от xoraxax Посмотреть сообщение
Сообщение от Anton8800
private int a=2;
Сообщение от Anton8800
testClass.intMultiply3(a);
Java
1
testClass.getA().intMultiply3(a);
выдает:/MyClass.java:48: error: non-static variable a cannot be referenced from a static context
testClass.getA().intMultiply3(a);
^
/MyClass.java:48: error: int cannot be dereferenced
testClass.getA().intMultiply3(a);
^
2 errors

всмысле разыменован? Разыменование служит для обращения к значению в памяти? И почему раньше когда я говнокодил, такая ошибка не вылазила?
0
Эксперт Java
3049 / 2544 / 782
Регистрация: 05.07.2013
Сообщений: 12,308
20.12.2018, 22:43 6
ты полностью читай, а не через слово. переменная а не статическая, main - статический
0
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
20.12.2018, 22:47  [ТС] 7
Цитата Сообщение от xoraxax Посмотреть сообщение
ты полностью читай, а не через слово. переменная а не статическая, main - статический
Хорошо, а что делать чтобы работало и ошибки не было? Не делать же поля статическими? Или делать?
0
665 / 170 / 51
Регистрация: 22.12.2013
Сообщений: 1,279
Записей в блоге: 17
20.12.2018, 22:52 8
Anton8800, Тут две ошибки
1. попытка обращения к переменной a из статического метода.
2.
Java
1
public String intMultiply3(int x)
ничего не возвращает.

Добавлено через 1 минуту
Цитата Сообщение от Anton8800 Посмотреть сообщение
Хорошо, а что делать чтобы работало и ошибки не было? Не делать же поля статическими? Или делать?
Java
1
2
int a = 1;
        testClass.intMultiply3(a);
0
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
20.12.2018, 22:57  [ТС] 9
Цитата Сообщение от xoraxax Посмотреть сообщение
ты полностью читай, а не через слово. переменная а не статическая, main - статический
Хорошо, а что делать чтобы работало и ошибки не было?
Цитата Сообщение от vvm28 Посмотреть сообщение
aВыделить код
1
2
int a = 1;
* * * * testClass.intMultiply3(a);
int a=1 объявить в main?
0
665 / 170 / 51
Регистрация: 22.12.2013
Сообщений: 1,279
Записей в блоге: 17
20.12.2018, 23:03 10
PS. Но тогда все равно программа будет работать неправильно.

Добавлено через 3 минуты
Цитата Сообщение от Anton8800 Посмотреть сообщение
int a=1 объявить в main?
Все правильно. а передается в метод
Java
1
intMultiply3(int x)
из main.
Но в самом методе значение присваивается переменной x.
Что тут непонятного.
0
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
20.12.2018, 23:04  [ТС] 11
Цитата Сообщение от xoraxax Посмотреть сообщение
ты полностью читай, а не через слово. переменная а не статическая, main - статический
Хорошо, а что делать чтобы работало и ошибки не было?
Цитата Сообщение от vvm28 Посмотреть сообщение
aВыделить код
1
2
int a = 1;
* * * * testClass.intMultiply3(a);
int a=1 объявить в main?
Цитата Сообщение от vvm28 Посмотреть сообщение
PS. Но тогда все равно программа будет работать неправильно.
Я просто вас так и не понял, можете внести изменения в тот код который я скинул и скинуть код с изменениями в комменты?
0
665 / 170 / 51
Регистрация: 22.12.2013
Сообщений: 1,279
Записей в блоге: 17
20.12.2018, 23:12 12
Java
1
2
int a = 1;
testClass.intMultiply3(a);
Если быть точнее, передается ссылка на значение переменной.
И эта ссылка на значение переменной попадает в самом методе в переменную x
0
Эксперт Java
3049 / 2544 / 782
Регистрация: 05.07.2013
Сообщений: 12,308
20.12.2018, 23:14 13
, а что делать чтобы работало и ошибки не было? я тебе уже говорил, не можешь срать не мучай жопу, поступи в кулинарный
0
665 / 170 / 51
Регистрация: 22.12.2013
Сообщений: 1,279
Записей в блоге: 17
20.12.2018, 23:14 14
Цитата Сообщение от Anton8800 Посмотреть сообщение
Я просто вас так и не понял, можете внести изменения в тот код который я скинул и скинуть код с изменениями в комменты?
Нет, так вы ничему не научитесь.
Подумайте 5 минут. Посмотрите, что делает ваш метод intMultiply3(a);
И вы уже будете знать, что вы делаете.
0
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
20.12.2018, 23:18  [ТС] 15
Цитата Сообщение от vvm28 Посмотреть сообщение
Если быть точнее, передается ссылка на значение переменной.
И эта ссылка на значение переменной попадает в самом методе в переменную x
Тоесть это вообще никогда работать нет будет?
0
108 / 88 / 25
Регистрация: 02.06.2018
Сообщений: 257
20.12.2018, 23:45 16
Цитата Сообщение от Anton8800 Посмотреть сообщение
Хорошо, а что делать чтобы работало
Если вы хотите чему-то научиться, то надо делать не чтобы просто работало, а понимать, почему это работает или не работает соответственно.
Ну скажут вам, что скопировать написать в вашу программу, а толку?
Вы хотя бы про ключевое слово static удосужились почитать и вникнуть?

Добавлено через 29 секунд
Цитата Сообщение от Anton8800 Посмотреть сообщение
Тоесть это вообще никогда работать нет будет?
Боюсь, что с вашим подходом, да
0
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
20.12.2018, 23:53  [ТС] 17
Цитата Сообщение от vvm28 Посмотреть сообщение
Если быть точнее, передается ссылка на значение переменной.
И эта ссылка на значение переменной попадает в самом методе в переменную x
Тоесть это вообще никогда работать нет будет?
Цитата Сообщение от NiceJacket Посмотреть сообщение
Вы хотя бы про ключевое слово static удосужились почитать и вникнуть?
ну вроде читал что этот модификатор делает так чтобы поля или методы принадлежали классу, а не объекту. Только я не понимаю причем это.
0
108 / 88 / 25
Регистрация: 02.06.2018
Сообщений: 257
21.12.2018, 00:11 18
Цитата Сообщение от Anton8800 Посмотреть сообщение
я не понимаю причем это.
При том, что это одна из ваших ошибок.
Вам же уже всё написали выше.
0
665 / 170 / 51
Регистрация: 22.12.2013
Сообщений: 1,279
Записей в блоге: 17
21.12.2018, 00:14 19
Цитата Сообщение от Anton8800 Посмотреть сообщение
Тоесть это вообще никогда работать нет будет?
Будет работать. Но программа должна делать что-то полезное.
Если так задумано, что 2 нужно умножить на 1, то сделайте как я сказал и всё работает.
Только возвратите из метода String, если вы уж так написали, или возвратите из метода другой тип.
Что-то из него возвратите, а вы ничего не возвращаете, хотя написали, что метод должен возвращать значение типа String.
1
14 / 2 / 0
Регистрация: 29.09.2018
Сообщений: 242
21.12.2018, 22:02  [ТС] 20
Цитата Сообщение от vvm28 Посмотреть сообщение
Будет работать. Но программа должна делать что-то полезное.
Если так задумано, что 2 нужно умножить на 1, то сделайте как я сказал и всё работает.
Только возвратите из метода String, если вы уж так написали, или возвратите из метода другой тип.
Что-то из него возвратите, а вы ничего не возвращаете, хотя написали, что метод должен возвращать значение типа String.
Спасибо, понял что я должен был указать метод как void. А про то почему даже после исправления и добавления void не работает если int a=1; прописать не в main так и не понял. Киньте пожалуйста ссылки на материал с которым мне лучше ознакомится чтобы понять это
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.12.2018, 22:02

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Non-Static method cannot be referenced from a static context
Всем привет! Не могу никак разобраться со статическими и нестатическими классами в Java. Создал 2...

Non static method cannot be referenced from static
на 12й строчке выдает такую ошибку и я правда не знаю почему package com.epam.as.solarsystem.stm;...

non-static variable cannot be referenced from a static context
Здравствуйте, Пытаюсь создать запись в таблице MySQL c JFrame. Выдает ошибку non-static...

Ошибка "Non-static field 'Label' cannot be referenced from a static context"
Пытаюсь вывести на Label значение, но выдает сию ошибку. Подскажите новичку

Чем отличается static local variable от static global variable?
привет вроде уже ребята объясняли, но что -то я не понял.... скажите пожалуйста,чем...

Non-static method Letter::types() should not be called statically, assuming $this from incompatible context
Пытаюсь зайти в редактор шаблонов, в скрипте и выдает вот такую вот ошибку: " Non-static method...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.