#java #netbeans
#java #netbeans
Вопрос:
Привет, в настоящее время я выполняю эту программу для моего задания создать что-то вроде виртуального магазина. В настоящее время я использую NetBean IDE 8.1 и получил ошибку при попытке протестировать программу. Это сказано, хотя программа сообщила об успешной сборке, когда я пытался собрать программу.
Я пытался следовать инструкциям в этом видео, но здесь изображение оказалось пустым
Вот моя основная программа (я еще не завершил программу, но эта ошибка продолжает блокировать меня для ее тестирования)
import java.util.Scanner;
public class Zarashop {
int choice;
public static void main(String[] args, int clothA){
Scanner absorb = new Scanner(System.in);
// phase 1 login
cloth cl = new cloth(); // declaring objects
payment pay = new payment();
personalinfo pi = new personalinfo();
shipping ship = new shipping();
receipt re = new receipt();
System.out.println("Welcome to Zara's cloth Shopping Center");
System.out.println("nThis an online Shopping application will help you to buy " "a new cloth");
System.out.println("Please enter your detail");
System.out.println("nPlease enter your name");
String Name = absorb.nextLine(); // user input name
System.out.println("nAre you a student? (yes) or (no)");
String personalchoice = absorb.nextLine(); // user input status
//phase 2
System.out.println("please choose your cloth" );
System.out.println("cloth A detail : size: 170cm and red color ");
int cloathA = absorb.nextInt();
System.out.println("enter quantity ");
int quantity = absorb.nextInt();
pay.setclothA(clothA); // store value
pay.setquantity(quantity);
// phase 3 payment
System.out.println("please press 1 to calculate your payment");
int choice = absorb.nextInt();
if(choice == 1){
pay.total();
}
else {
System.err.println("error!");
}
}
}
Вот мой основной класс для cloth (предполагалась ошибка в написании)
public class cloth {
// superclass
private int quantity; //
private int clothA=200;
//void
void setclothA(int ca){
clothA = ca;
}
void setquantity(int q){
quantity=q;
}
//get
int getclothA(){
return clothA;
}
int getquantity(){
return quantity;
}
}
мой основной класс для PersonalInfo
public class personalinfo {
// superclass
public String Name;
private int Password;
private String TypeCard;
private int CardNo;
private String Address;
private int TeleNo;
//void
void setName(String n){
Name = n;
}
void setPassword(int p){
Password = p;
}
void setTypeCard(String tp){
TypeCard = tp;
}
void setCardNo ( int cn){
CardNo=cn;
}
void setAddress ( int a){
CardNo=a;
}
void setTeleNo ( int tl){
TeleNo=tl;
}
//get
String getName(){
return Name;
}
String getAddress(){
return Address;
}
int getPassword(){
return Password;
}
String getTypeCard(){
return TypeCard;
}
int getCardNo(){
return CardNo;
}
int getTeleNo (){
return TeleNo;
}
}
мой подкласс для оплаты
магазин пакетов zarashop;
//subclass
public class payment extends cloth {
String Status = "Initial";
public void total(){
int ca = super.getclothA(); //fetching values
int q = super. getquantity();
int total= q*ca;
}
}
public class receipt extends shipping{
}
мой заменитель для отправки
public class shipping extends payment {
public int typeofshipping;
//void
void settypeofshipping(String ts){
String typeofshipping = ts;
}
int gettypeofshipping(){
return typeofshipping;
}
}
подкласс для получения (я оставляю это для того, чтобы программа отображала весь необходимый пользовательский ввод)
public class receipt extends shipping{
}
спасибо всем и извините за мою плохую программу и мой английский.
Комментарии:
1. Предполагается, что основной метод должен быть
public static void main(String[])
, а неpublic static void main(String[], int)
.2. если вы получили ответ на свой вопрос, вы должны принять его, отметив лучший для вас ответ галочкой.
Ответ №1:
Приложение Java может принимать любое количество аргументов из командной строки, и все они интерпретируются как String
, вот почему main принимает только массив строк в качестве параметра.
Измените свой код на
public static void main(String[] args)
и вы сможете запустить свое приложение.
Если вам нужно поддерживать числовой аргумент командной строки, вы должны преобразовать строковый аргумент, представляющий число, в значение int:
int firstArg;
if (args.length > 0) {
try {
firstArg = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("Argument" args[0] " must be an integer.");
System.exit(1);
}
}
parseInt выдает исключение NumberFormatException, если формат аргументов [0] недопустим.
Пример взят из официальной документации.
Ответ №2:
Вот ваша ошибка: public static void main(String[] args**, int clothA**)
Измените ее на public static void main(String[] args)
Ответ №3:
Вам нужно будет изменить ваш основной метод на public static void main(String[] args)
. Добавляя int clothA в качестве второго аргумента, вы изменяете подпись, и тогда она становится недопустимым основным методом для запуска вашего приложения.
Если вы хотите получить что-либо из консоли, вы найдете свой аргумент внутри args.
Затем вы можете извлечь clothA следующим образом:
int clothA;
if (args.length > 0) {
try {
clothA = Integer.parseInt(args[0]);
} catch (NumberFormatException e) {
System.err.println("Argument" args[0] " must be an integer.");
System.exit(1);
}
}
Комментарии:
1. Спасибо всем!