Скажем, у меня есть пакет под названием com.Gazzali, и внутри этого пакета есть еще 3 класса.
package com.Gazzali;
//Driver class
public class Main {
public static void main(String[] args) {
System.out.println("Hey There !");
FireCall target = new FireCall(); // calls 2nd class (named: Firecall)
target.callfired();
}
}
2 класс:
package com.Gazzali;
public class FireCall {
public void callfired()
{
System.out.println("Calling function Triggered.");
Execute Fire = new Execute(); //calls 3rd class (named : Execution).
if (Fire.click() == 1)
System.out.println("You're Dead, Boy !!!");
else
System.out.println("Whoooss Saved !!!");
}
}
3 класс:
package com.Gazzali;
import java.util.Scanner;
public class Execute {
int choice;
Scanner query = new Scanner(System.in);
public int click()
{
System.out.println("Enter a choice : ");
choice = query.nextInt();
if (choice % 2 == 0)
{
return 1;
}
else
return 0;
}
}
эти 3 составляют мой пакет com.Gazzali. Теперь в другом файле (RunPackTest.java) я хочу вызвать метод main класса Main (класс драйвера). Итак, я попытался импортировать, как показано ниже:
import com.Gazzali.Main;
public class RunPackTest {
public static void main(String[] args) {
Main run = new Main(); //calling Main method of Driver class of the package
System.out.println(run); //Doesn't seem to work,IDE only return 0
}
}
Как это сделать? поскольку метод main класса Main запускает программу и соответственно вызывает другой класс пакета.
Точно: вызывать другой основной метод - плохая практика.
На первый взгляд кажется, что вы путаете классы с методами; вы уверены, что вам нужно создать целый новый класс, чтобы просто реализовать в них один метод?
@Thomas, Спасибо, теперь все работает!
@Zephyr, Яш, я новичок в Java. Я практиковался на package, как методы вызова ООП C++.




Я считаю, что это сработает:
import com.Gazzali.Main;
public class RunPackTest {
public static void main(String[] args) {
Main.main(null);
}
}
Вы можете вызвать main, как и любой другой метод, хотя в целом это не очень хорошая практика.
new Main()просто создает новый экземпляр, но больше ничего не делает. Либо вызовитеrun.main(args), либо (лучше) предоставьте метод, который фактически содержит логику, и вызовите его из обоих методовmain().