Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
8 / 4 / 5
Регистрация: 10.12.2017
Сообщений: 178

Проблема при работа с классами

25.09.2019, 21:51. Показов 1484. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, только начал учить Java. Написал код для работы с классами. Компилирую, а мне выбивает ошибку в строке 63, пишет: "Exception in thread "main" java.lang.Error: Unresolved compilation problem:
No enclosing instance of type Trees is accessible. Must qualify the allocation with an enclosing instance of type Trees (e.g. x.new A() where x is an instance of Trees)." В чём проблема?

Надеюсь на вашу помощь. Заранее спасибо!


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
import java.io.IOException;
import java.io.*; 
import java.util.Scanner;
 
 
public class Trees {
    
    public class trees {
        String name;
        String section;
        String kind;
        String where_grows;
        Long average_height;
        private String number;
        
        trees(String name, String section, String kind, String where_grows, Long number) {
            this.name = name;
            this.section = section;
            this.kind = kind;
            this.where_grows = where_grows;
            average_height = number;
        }
        trees() {
            name = "";
            section = "";
            kind = "";
            where_grows = "";
            average_height = 0L;
            System.out.println("Tree data not specified!");
        }
        trees(trees ob) {
            this.name = ob.name;
            this.section = ob.section;
            this.kind = ob.kind;
            this.where_grows = ob.where_grows;
            this.average_height = ob.average_height;
        }
        void Set(String name, String section, String kind, String where_grows, Long number) {
            this.name = name;
            this.section = section;
            this.kind = kind;
            this.where_grows = where_grows;
            average_height = number;
        }
        void Get() {
            System.out.println("Name of tree:"+ this.name);
            System.out.println("Section of the tree:"+ this.section);
            System.out.println("Kind of tree:"+ this.kind);
            System.out.println("Where the tree grows:"+ this.where_grows);
            System.out.println("The height of the tree:"+ this.number);
        }
        void CompareTree(trees trs2) {
            if(this.section.compareTo(trs2.section) > 0 )
                System.out.println("Section "+ this.section+" another from " + trs2.section);
            else if(this.section.compareTo(trs2.section) < 0 )
                System.out.println("Section "+ this.section+" another from " + trs2.section);
            else
                System.out.println("Section "+ this.section+" the same section " + trs2.section);
        }
        
    }
    public static void main(String[] args) throws IOException {
        trees trs1 = new trees("Oak", "Green Plants", "Beech", "Europe", 50L);
        System.out.println("First tree data:");
        trs1.Get();
        trees trs2 = new trees("Baobab", "Higher Plants", "Mallow", "Africa", 45L);
        System.out.println("Tree data:");
        trs2.Get();
        trs1.CompareTree(trs2);
        System.out.println("Enter the tree data from the keyboard");
        String name;
        String section;
        String kind;
        String where_grows;
        Long average_height;
        trees trs3 = new trees();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
        System.out.println("Input the name of tree:");
        name = br. readLine ();
        System.out.println("Input the section of tree:");
        section = br. readLine ();
        System.out.println("Input the kind of tree:");
        kind = br. readLine ();
        System.out.println("Input where the tree grows:");
        where_grows = br. readLine ();
        System.out.println("Input the height of the tree:");
        average_height = Long.parseLong(br.readLine());
        trs3.Set(name, section, kind, where_grows, average_height);
        System.out.println("Checking the data entered:");
        System.out.println("Tree data:");
        trs3.Get();
    }
    
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.09.2019, 21:51
Ответы с готовыми решениями:

Проблема с классами (возможно с классами)
В общем такое дело. На днях надумал соорудить игру, эдакую экономическую стратегию. И попутно разрабатывая механику наткнулся на ряд...

Проблема с классами
Всем привет! Решил вспомнить, некогда изучавшийся, С++ и .... Подскажите Main.cpp ...

Проблема с Классами
// VectorClass.cpp : main project file. #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace System; using...

16
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.09.2019, 21:56
Что по-твоему означает эта конструкция?
Java
1
2
3
public class Trees {
    
    public class trees {
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.09.2019, 22:05
Лучший ответ Сообщение было отмечено Naz17 как решение

Решение

Naz17, где ТАК учат джаве??? Страх.
Класс - с большой буквы.
Методы - с маленькой.
public class Trees, а внутри public class trees...

Добавлено через 4 минуты
Naz17, раз уж пошла такая пьянка - вынеси класс trees из класса Trees и убери с него public
1
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.09.2019, 22:11
поля класса trees сделай private. Конечно, модификаторы доступа можно не указывать и тогда они по дефолту будут считаться public, но всё таки принято задавать их явно. Также в java не принято использовать нижнее подчёркивание '_' в названиях (разве что в константах), вместо этого буква следующего слова заменяется на заглавную
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.09.2019, 22:16
Цитата Сообщение от Gungala Посмотреть сообщение
и тогда они по дефолту будут считаться public
Уверен?
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.09.2019, 22:31
iSmokeJC, *protected
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.09.2019, 22:36
Цитата Сообщение от Gungala Посмотреть сообщение
protected
Все еще уверен?
0
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.09.2019, 22:41
iSmokeJC, ну да, я даже погуглил. Ну, вообще в гуголе сказано, что package-private, но protected ж именно это и подразумевает
1
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.09.2019, 22:55
Цитата Сообщение от Gungala Посмотреть сообщение
именно это и подразумевает
Опять таки уверен?

Добавлено через 2 минуты
На вот, раскури внимательно
http://proglang.su/java/modifiers
2
8 / 4 / 5
Регистрация: 10.12.2017
Сообщений: 178
25.09.2019, 23:00  [ТС]
iSmokeJC, я так понял, что все ошибки через неправильное название классов?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.09.2019, 23:03
Naz17, нет, ты неправильно понял.
1
 Аватар для Goongala
1022 / 562 / 185
Регистрация: 18.08.2013
Сообщений: 2,027
Записей в блоге: 2
25.09.2019, 23:05
Акей, значит всё таки package-private

Не по теме:

Я чёт всё время думал, что package-private эт и есть protected, ибо смысл вроде как похожий, да и сколько я не смотрел исходников, ни разу не встречал этот модификатор, а тут оказывается, что он не только существует как отдельный модификатор, но ещё и ведёт себя не так, как я представлял. Век живи, век учись

0
8 / 4 / 5
Регистрация: 10.12.2017
Сообщений: 178
25.09.2019, 23:32  [ТС]
iSmokeJC, может так:
Java
1
2
public class Trees {
    class trees {
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.09.2019, 23:49
Цитата Сообщение от Naz17 Посмотреть сообщение
может так:
Я тебе в 3-м посте написал что нужно сделать
1
 Аватар для Aviz__
2741 / 2050 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
26.09.2019, 08:24
Naz17, Бро, зачем ты сразу в дебри полез, не разобравшись с классами и объектами? пойми, если не разобраться в этом, ключевом понятии ооп, то вряд ли ты сможешь продолжить обучение.
https://ru.wikipedia.org/wiki/... ммирование) - есть пример и на java
1
8 / 4 / 5
Регистрация: 10.12.2017
Сообщений: 178
26.09.2019, 10:39  [ТС]
Мда, ну и ошибки детские. Спасибо всем!

Добавлено через 6 минут
Переписал немножко код, запускаю... и ошибка: "The height of the tree:null". Почему-то высота дерева null.
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
import java.io.IOException;
import java.io.*; 
import java.util.Scanner;
 
 
class TreesData {
    String name;
    String section;
    String kind;
    String where_grows;
    Long average_height;
    private String number;
    
    TreesData(String name, String section, String kind, String where_grows, Long number) {
        this.name = name;
        this.section = section;
        this.kind = kind;
        this.where_grows = where_grows;
        average_height = number;
    }
    TreesData() {
        name = "";
        section = "";
        kind = "";
        where_grows = "";
        average_height = 0L;
        System.out.println("Tree data not specified!");
    }
    TreesData(TreesData ob) {
        this.name = ob.name;
        this.section = ob.section;
        this.kind = ob.kind;
        this.where_grows = ob.where_grows;
        this.average_height = ob.average_height;
    }
    void Set(String name, String section, String kind, String where_grows, Long number) {
        this.name = name;
        this.section = section;
        this.kind = kind;
        this.where_grows = where_grows;
        average_height = number;
    }
    void Get() {
        System.out.println("Name of tree:"+ this.name);
        System.out.println("Section of the tree:"+ this.section);
        System.out.println("Kind of tree:"+ this.kind);
        System.out.println("Where the tree grows:"+ this.where_grows);
        System.out.println("The height of the tree:"+ this.number);
    }
    void CompareTree(TreesData trs2) {
        if(this.section.compareTo(trs2.section) > 0 )
            System.out.println("Section "+ this.section+" another from " + trs2.section);
        else if(this.section.compareTo(trs2.section) < 0 )
            System.out.println("Section "+ this.section+" another from " + trs2.section);
        else
            System.out.println("Section "+ this.section+" the same section " + trs2.section);
    }
    
}
 
public class Trees {
    public static void main(String[] args) throws IOException {
        TreesData trs1 = new TreesData("Oak", "Green Plants", "Beech", "Europe", 50L);
        System.out.println("First tree data:");
        trs1.Get();
        TreesData trs2 = new TreesData("Baobab", "Higher Plants", "Mallow", "Africa", 45L);
        System.out.println("Tree data:");
        trs2.Get();
        trs1.CompareTree(trs2);
        System.out.println("Enter the tree data from the keyboard");
        String name;
        String section;
        String kind;
        String where_grows;
        Long average_height;
        TreesData trs3 = new TreesData();
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
        System.out.println("Input the name of tree:");
        name = br. readLine ();
        System.out.println("Input the section of tree:");
        section = br. readLine ();
        System.out.println("Input the kind of tree:");
        kind = br. readLine ();
        System.out.println("Input where the tree grows:");
        where_grows = br. readLine ();
        System.out.println("Input the height of the tree:");
        average_height = Long.parseLong(br.readLine());
        trs3.Set(name, section, kind, where_grows, average_height);
        System.out.println("Checking the data entered:");
        System.out.println("Tree data:");
        trs3.Get();
    }  
}
В чём проблема?
0
 Аватар для Aviz__
2741 / 2050 / 507
Регистрация: 17.02.2014
Сообщений: 9,470
26.09.2019, 11:19
Цитата Сообщение от Naz17 Посмотреть сообщение
В чём проблема?
во всем, к сожалению((.
опять спрашиваю
Цитата Сообщение от Aviz__ Посмотреть сообщение
зачем ты сразу в дебри полез,
тут объясняя тебе полкниги нужно писать.

вот, вникай! но, без понимания, это все бесполезно((
Кликните здесь для просмотра всего текста

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
public class Helper {
 
    public static void main(String[] args) {
        List<Tree> forest = new ArrayList<>();
        for (int i = 0; i < 21; i++) {
            forest.add(new Tree("Tree #" + i, "sec", "ki", "US", i + 1, 7));
        }
        System.out.println(forest);
    }
}
 
class Tree {
    private String name;
    private String section;
    private String kind;
    private String whereGrows;
    private int number;
    private int averageHeight;
 
    public Tree(String name, String section, String kind, String whereGrows, int number, int averageHeight) {
        this.name = name;
        this.section = section;
        this.kind = kind;
        this.whereGrows = whereGrows;
        this.number = number;
        this.averageHeight = averageHeight;
    }
 
    public void setSection(String section) {
        this.section = section;
    }
 
    public void setKind(String kind) {
        this.kind = kind;
    }
 
    public void setWhereGrows(String whereGrows) {
        this.whereGrows = whereGrows;
    }
 
    public void setNumber(int number) {
        this.number = number;
    }
 
    public String getName() {
        return name;
    }
 
    public String getSection() {
        return section;
    }
 
    public String getKind() {
        return kind;
    }
 
    public String getWhereGrows() {
        return whereGrows;
    }
 
    public int getNumber() {
        return number;
    }
 
    public int getAverageHeight() {
        return averageHeight;
    }
 
    @Override
    public String toString() {
        return "Tree{" +
                "name='" + name + '\'' +
                ", section='" + section + '\'' +
                ", kind='" + kind + '\'' +
                ", whereGrows='" + whereGrows + '\'' +
                ", number=" + number +
                ", averageHeight=" + averageHeight +
                "}\n";
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.09.2019, 11:19
Помогаю со студенческими работами здесь

Проблема с классами
У меня возникла проблема с недопониманием классов в С++ помогите пожалуйста !!! в icq 437551173 ;)

Проблема с классами
Написал такой код, но он неправильный ( может и правильно, но выдает не то). using System; using System.Collections.Generic; ...

Небольшая проблема с классами
Всем привет. Дано задание: Расширить иерархию классов с использованием виртуального абстактного класса в качестве основы иерархии. ...

Проблема с классами конструктора
при отображении конструктора формы, выходит это окно:

Проблема с абстрактными классами и перегрузкой операторов
добрый день. в общем ситуация такая: есть несколько классов, наследуемых от абстрактного класса. Нужно реализовать чтобы можно было...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru