Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/55: Рейтинг темы: голосов - 55, средняя оценка - 4.78
2 / 1 / 1
Регистрация: 12.10.2016
Сообщений: 102

Ошибка cannot find symbol

27.08.2017, 16:19. Показов 11074. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В программе "каталог спиртных напитков" возникает 5 ошибок cannot find symbol. В методе print(). О напитке хранится наименоваение, тип, процент спирта, объем и цена за бутылку.
Скажте пожалуйста что не так

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
import java.util.*;
 
public class Catalog
{
    static ArrayList<Drink> drink = new ArrayList<Drink>();
    static Scanner in = new Scanner (System.in);
    public static void main (String[] args)
    {
        while (true)
        {
            System.out.println("Ввыберите действие");
            System.out.println("");
            System.out.println("1-Вывод каталога на экран");
            System.out.println("2-Добавление элемента");
            System.out.println("");
            int choose = in.nextInt();
            switch (choose)
            {
                case 1:
                    print();
                break;
                case 2:
                    add();
                break;
                default: System.out.println("Сделайте ваш выбор");
            }
        }
    }
     public static void print()
    {
        for(int i=0; i<drink.size(); i++)
        {
            System.out.println(name+" "+type+" "+ alcohol+" "+v+" "+price);
        }
    }
    public static void add()
    {
        System.out.println("Введите наименование");
        String name = in.next();
        System.out.println("Введите тип");
        String type = in.next();
        System.out.println("Введите содержание спирта");
        double alcohol = in.nextDouble();
        System.out.println("Введите объем бутылки");
        double v = in.nextDouble();
        System.out.println("Введите цену за бутылку");
        double price = in.nextDouble();
    }
    
}          
                    
class Drink
{
    public String name;
    public String type;
    public double alcohol;
    public double v;
    public double price;
    public Drink(String name, String type, double alcohol, double v, double price)
    {
        this.name = name;
        this.type = type; 
        this.alcohol = alcohol;
        this.v = v;
        this.price = price;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getType()
    {
        return type;
    }
    public void setType(String type)
    {
        this.type = type;
    }
    public double getAlcohol()
    {
        return alcohol;
    }
    public void setAlcohol(double alcohol)
    {
        this.alcohol = alcohol;
    }
    public double getV()
    {
        return v;
    }
    public void setV(double v)
    {
        this.v = v;
    }
    public double getPrice()
    {
        return price;
    }
    public void setPrice(double price)
    {
        this.price = price;
    }
    
    @Override
    public String toString()
    {
        return name+type+alcohol+v+price;
    }
     
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.08.2017, 16:19
Ответы с готовыми решениями:

Ошибка: cannot find symbol symbol: class toString location: class java.util.Date
import java.util.Date; import java.lang.String; import java.io.*; public class Sword { public static void main(String args)...

Ошибка cannot find symbol
Не могу разобраться, как исправить данную ошибку. Пытаюсь скомпилировать данный код (копипаст из интернета) из командной строки: ...

Ошибка компиляции cannot find symbol
При компиляции ошибка: D:\LinageII\gameserver\src\main\java\l2p\gameserver\model\Player.java:4339: cannot find symbol symbol :...

5
7 / 8 / 2
Регистрация: 22.06.2017
Сообщений: 30
27.08.2017, 16:45
Ну конечно! Откуда методу print знать о переменных метода add?))Почитайте о полях класса и сделайте name , type и т.д. статическими полями...

Добавлено через 16 минут
Вот вам подробный ответ:


Итак:
1) У вас есть два класса catalog и drink
2) В классе каталога есть несколько статических методов;
3) класс каталог подразумевает управление созданными напитками
4)класс drink инкапсулирует алкогольный напиток



О чем вы не знаете:
1) статические методы не имеют информацию а нестатических переменнвх и методах, имейте это ввиду;
2)нестатические переменные не существуют, пока вы не создадите обьект : что это значит?
Представьте себе темный сосуд с напитком(без надписей), пока вы не инициализаруете, тобишь не нальете напиток, вы не знаете , Что это за напиток...
3)Переменные метода - методы могут иметь внутри себя вспомогательные переменные...


В чем основная ошибка:
в методе add() вы создаете те самые вспомогательные переменные , о которых не известно ничего за пределами add().(та же ошибка в print).



Что стоит почитать:
1)О полях класса;
2) О сокрытии переменной;
3) О модификаторах доступа
4) О разнице статических и нестатических членов класса
1
2 / 1 / 1
Регистрация: 12.10.2016
Сообщений: 102
27.08.2017, 18:55  [ТС]
А теперь ничего не выводится на консоль
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
import java.util.*;
 
public class Catalog
{
   
    static Scanner in = new Scanner (System.in);
    static String name;
    static String type;
    static double alcohol;
    static double v;
    static double price;
    static ArrayList<Drink> drink = new ArrayList<Drink>();
    public static void main (String[] args)
    {
       ArrayList<Drink> drink = new ArrayList<Drink>(); 
        while (true)
        {
            System.out.println("Ввыберите действие");
            System.out.println("");
            System.out.println("1-Вывод каталога на экран");
            System.out.println("2-Добавление элемента");
            System.out.println("");
            int choose = in.nextInt();
            switch (choose)
            {
                case 1:
                    print();
                break;
                case 2:
                    add();
                break;
                default: System.out.println("Сделайте ваш выбор"); break;
            }
        }
    }
    public static void print()
    {
        for (int i=0; i<drink.size(); i++)
            System.out.println(name+type+alcohol+v+price);
    }
    public static void add()
    {
        System.out.println("Введите наименование");
        name = in.next();
        System.out.println("Введите тип");
        type = in.next();
        System.out.println("Введите содержание спирта");
        alcohol = in.nextDouble();
        System.out.println("Введите объем бутылки");
        v = in.nextDouble();
        System.out.println("Введите цену за бутылку");
        price = in.nextDouble();
        
    }
}     
         
                    
class Drink
{
   public String name;
    public String type;
    public double alcohol;
    public double v;
    public double price;
    public Drink(String name, String type, double alcohol, double v, double price)
    {
       this.name = name;
      this.type = type; 
      this.alcohol = alcohol;
    this.v = v;
     this.price = price;
    }
    public String getName()
    {
        return name;
    }
    public void setName(String name)
    {
        this.name = name;
    }
    public String getType()
    {
        return type;
    }
    public void setType(String type)
    {
        this.type = type;
    }
    public double getAlcohol()
    {
        return alcohol;
    }
    public void setAlcohol(double alcohol)
    {
        this.alcohol = alcohol;
    }
    public double getV()
    {
        return v;
    }
    public void setV(double v)
    {
        this.v = v;
    }
    public double getPrice()
    {
        return price;
    }
    public void setPrice(double price)
    {
        this.price = price;
    }
    
    @Override
    public String toString()
    {
        return name+type+alcohol+v+price;
    }
     
}
0
958 / 577 / 136
Регистрация: 23.05.2012
Сообщений: 7,364
27.08.2017, 19:03
Потому что в ArrayList ничего не добавляете. 15-ую строку удалить, 29-31 переписать:
Java
1
2
3
4
case 2:
   add();
   drink.add(new Drink(name, type, alcohol, v, price));
break;
1
7 / 8 / 2
Регистрация: 22.06.2017
Сообщений: 30
27.08.2017, 19:06
focusherad, надо так :
Метод print
Java
1
2
3
4
static void print(index i){
System.out.println(drink.get(i));
 
}
Метод add
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
static void add(){
 
System.out.println("Введите наименование");
        name = in.next();
        System.out.println("Введите тип");
        type = in.next();
        System.out.println("Введите содержание спирта");
        alcohol = in.nextDouble();
        System.out.println("Введите объем бутылки");
        v = in.nextDouble();
        System.out.println("Введите цену за бутылку");
        price = in.nextDouble();
Drink mydrink = new Drink(name,type,alcohol,v,price);
drink.add(mydrink);
}
Это убрать из кода:
Java
1
2
3
4
5
static String name;
    static String type;
    static double alcohol;
    static double v;
    static double price;
Код далек от идеального, зато работает, не так ли?)...
0
2 / 1 / 1
Регистрация: 12.10.2016
Сообщений: 102
27.08.2017, 19:09  [ТС]
Спасибо вам большое
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.08.2017, 19:09
Помогаю со студенческими работами здесь

Ошибка java:13: error: cannot find symbol
int x, dig1, dig2; x=reader.nextInt(); dig1=x/35; dig2=x%35; System.out.print(&quot;Число полных классов=&quot;+dig1); ...

Непонятная ошибка - cannot find symbol: variable Path
import java.util.Scanner; public class deleteMe { public static void main(String args) throws Exception { Scanner...

Cannot find symbol
Здравствуйте! Не могу понять в чем ошибка. import java.util.*; class Fibonacci { public static void main(String args) { ...

Cannot find symbol
import java.util.Scanner; class HelloWorld{ public static void main(String args){ Scanner in = new Scanner (System.in); ...

Error: cannot find symbol
Потихонечку играюсь в java. Написал класс прямоугольник. И вроде бы все нормально, но javac выдает мне ошибки hell.java:54: error: cannot...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru