Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,245
1

Если добавить метод main в каждый класс, как их поодиночке запускать в NetBeans?

21.03.2012, 22:00. Показов 6600. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хорстманн пишет, что каждый класс может содержать метод main(). Так что можно тестировать классы независимо друг от друга.

Пусть у меня три класса. В каждом метод main.
Как их поочередно запускать из NetBeans?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2012, 22:00
Ответы с готовыми решениями:

Не создал вовремя метод main в NetBeans
Когда создавал проект, сбросил галочку Create main class. Хотел поэкспериментировать. ...

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

Как в netBeans запускать на выполнение не главные Java классы?
Добрый день, Я создал проект в netBeans, когда создавал проект, wizzard предложил создать...

Как добавить класс кнопке, если выделенный текст жирный?
Допустим есть некий текст с contenteditable=true, и кнопка, которая делает текст жирным/не жирным....

6
Эксперт Java
4093 / 3827 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 11
21.03.2012, 22:05 2
Текущий открытый файл, в netbeans, можно запустить с помощью команды Run File Shift + F6
1
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.03.2012, 01:44 3
самый лучший вариант делать вложеный статический класс с методом майн и в нём тестировать основной создавая его инстанс, тогда размер класса при использовании не будет раздут ненужным методом майн. Называть его лучше везде одинаково, чтобы потом по маске не включать скомпиленый тестовый класс в релиз jar. Так помалу вы прийдёте к логичному использованию юниттестов вместо самопальных.
0
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,245
22.03.2012, 06:31  [ТС] 4
Очень интересная мысль. А можно пример?

Я думал-думал, вот только такой пример придумал:

Вот наш класс. В нем onoff объявлена как private.

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package radioset;
public class RadioSet{
    
        private boolean onoff = false;
        
        public void switchon(){
            onoff = true;
        }
        
        public void switchoff(){
            onoff = false;
        }           
    
}
Мы его хотим тестировать специальным тестовым методом:

Java
1
2
3
4
5
6
7
8
9
10
package radioset;
 
public class test {
    public static void main (String[] args){
        RadioSet Volna = new RadioSet();
        Volna.switchon();
        System.out.println(Volna.onoff);
    }
    
}
Но ведь переменная onoff у нас объявлена как private. Т.е. наш тестовый метод просто так работать не будет. Это надо идти в тестируемый метод, удалять private.

Вопросов возникло два:
1. Прав ли я, что как-то у Хорстманна, кажется, надежнее способ? Тут надо покорежить свои классы, в то время как у Хорстманна все гладко. Метод main может быть в любом классе. И если его не трогать, то ничего страшного не случится. Поэтому если в классе был такой тестировочный метод, и про него просто забыли, то и бог с ним.

2. Не понял мысль - как по маске не включать скомпиленый тестовый класс в релиз jar? И два подвопроса. а) Как это сделать в NetBeans. б) Как это сделать без NetBeans.
0
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.03.2012, 13:29 5
Цитата Сообщение от Kifsif Посмотреть сообщение
Тут надо покорежить свои классы, в то время как у Хорстманна все гладко
а то что размер класса у вас выростет и потребление памяти, это вас не смущает?
И вообще ненужный мусор в классе это плохо, представьте себя на месте программиста который сапортит чужой код, как вы будете искать где стартовый класс???

у вас в классе есть сеттеры, но нет гетеров, как вы будете пользоваться результатами через инстанс??? поэтому надо изменить его:
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
package radioset;
 
public class RadioSet {
 
    private boolean onoff = false;
 
    public void switchon() {
        onoff = true;
    }
 
    public void switchoff() {
        onoff = false;
    }
 
    public boolean isOn() {
        return this.onoff;
    }
 
    static class Test {
 
        public static void main(String[] args) {
            RadioSet volna = new RadioSet();
            volna.switchon();
            System.out.println(volna.isOn());
        }
    }
}
и вообще почитайте про аксессоры и бины.

По поводу маски, зайдите в папку со скомпилеными классами и увидите
Bash
1
RadioSet.class  RadioSet$Test.class
так вот - маска для exclude будет "*Test.class"
0
145 / 113 / 31
Регистрация: 12.06.2011
Сообщений: 1,245
22.03.2012, 14:57  [ТС] 6
mutagen, спасибо большое за ответ.
Я еще в самом начале учебника, мне трудно следить за мыслью.
Боюсь, что аксессоры и бины для меня пока рановато.
И с экономией памяти для меня тоже пока высший пилотаж.

Давайте попроще.
Я сделал два класса - просто как пример.
Не надо их воспринимать как полноценную разработку.
Я просто хочу смоделировать вашу мысль.
Но у меня это пока не получается.

Посмотрите, пожалуйста, ведь вы предлагаете как раз то, что Хорстманн предлагал.
У вас добавлен метод main в класс RadioSet.

А вы предлагали отдельный тестовый метод.
0
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
22.03.2012, 15:04 7
Цитата Сообщение от Kifsif Посмотреть сообщение
У вас добавлен метод main в класс RadioSet.
у меня добавлен статический класс Test и вот уже в нём метод main, читай код внимательнее.
Фишка, такого трюка в нескольких вещах:
1. из внутреннего класса доступны все методы и проперти внешнего, в том числе и приватные
2. так как класс статический, то он независим от внешнего и его инстанс может создаваться без инстанса внешнего.
3. при создании инстанса внешнего всё что входит во внутренний не создаётся(экономия памяти)
4. при компиляции создаются 2 класса отдельно и тот у которого в имени есть слово Test можно вырезать по маске и не включать в дистрибьюцию
0
22.03.2012, 15:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.03.2012, 15:04
Помогаю со студенческими работами здесь

Как в bootstrap 3 добавить класс для блока, если активный — sm или xs?
Добрый день, мне нужно, чтобы если экран становится узким, то к блоку должен добавляться класс,...

Как вызвать метод info в метод Main и с какими параметрами?
я новичок в C#, так что не судите строго.. Я не думаю что это кому-то покажется сложным, но у меня...

Как правильно работать с GUI , класс main и класс окна
Здравствуйте , вот только не давно начал работать с пользовательским интерфейсом. Сейчас пытаюсь...

Метод main и как им вызвать другой метод
Доброго всем времени суток. У меня возникла проблема. Вобщем дело такое. У меня есть тестовый класс...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru