2016-03-17 4 views
2

Я новый пользователь в java. В качестве упражнения по программированию я должен создать программу, которая - спрашивает, сколько объектов пользователь хочет создать, а затем создает. Класс также вызывает метод класса, который печатает количество созданных объектов. также , чтобы написать класс, который создает объекты. Класс должен уметь отслеживать количество созданных объектов. Класс также нуждается в методе, который печатает количество объектов. Проверьте заполненный класс на имена класса и метода.создавать объекты, используя пользовательский номер ввода объекта

Я пробовал следовать, но так и не дошел до места, поэтому я жду некоторую помощь: Пожалуйста, помогите !!

import java.util.Scanner; 

public class NumberOfObjects{ 
    public static void main(String args[]) { 

     System.out.print("How many objects do you want to create:"); 
     Scanner reader = new Scanner(System.in); 
     int amount = reader.nextInt(); 

     Thing[] things = new Thing[amount]; 

     for(int i = 0; i<amount; i++) { 
      things[i] = new Thing(); 
     } 

     Thing.numberOfObjects(); 
    } 
    class Thing{ 
     int count; 

     public void numberOfObjects(){ 
      System.out.println(count); 

     } 


    } 
} 
+0

Начало с основной функцией, которая делает все, что вы хотите в правильном порядке, а затем писать классы, методы, функции, которые реализуют функциональные возможности, необходимые по ** main() **. –

ответ

1

Вы забыли 3 вещи:

1, чтобы увеличить количество объектов при их создании. Вы можете сделать это в конструкторе Thing.

2- объявить переменную count как статическую, чтобы разрешить обмен данными между всеми объектами типа Thing.

3 - объявить метод numberOfObjects, как статический, так как это метод класса, который вы обращаетесь с помощью класса Thing

Попробуйте это:

import java.util.Scanner; 

public class NumberOfObjects{ 
public static void main(String args[]) { 

    System.out.print("How many objects do you want to create:"); 
    Scanner reader = new Scanner(System.in); 
    int amount = reader.nextInt(); 

    Thing[] things = new Thing[amount]; 

    for(int i = 0; i<amount; i++) { 
     things[i] = new Thing(); 
    } 

    Thing.numberOfObjects(); 
    } 
    class Thing{ 
    private static int count = 0; 

    public Thing(){ 
    count++; 
    } 
    public static void numberOfObjects(){ 
     System.out.println(count); 

    } 


    } 
} 
1
class Box 
{ 
    //Keep track of all your objects 
    Thing[] objs; 
    int cursor; 

    public Box(int countOfObjects) 
    { 
     objs = new Thing[countOfObjects]; 
    } 
    //add new object to the array 
    public void add(Thing thing) 
    { 
     objs[cursor++] = thing 
    } 
    //gets the object 
    public Thing getThing(int pos) 
    { 
     if(pos < 0 || pos >= objs.lenght()) 
       throw; 

     return objs[pos]; 
    } 
    //count the objects 
    public int numberOfObjects() 
    { 
     System.out.println(objs.lenght()); 
     return objs.lenght(); 
    } 

    } 
} 

class Thing() 
{ 
    //any field you need to store 
} 

Ваш главный должен выглядеть следующим образом

public static void main(String args[]) { 

    System.out.print("How many objects do you want to create:"); 
    Scanner reader = new Scanner(System.in); 
    int amount = reader.nextInt(); 

    Box box = new Box(amount); 

    for(int i = 0; i<amount; i++) { 
     box.Add(new Thing()); 
    } 

    box.numberOfObjects(); 
} 
0

Объявить счет как статический и добавить счетчик в конструктор. Другая вещь для импорта, mov класс Thing из класса NumberOfObjects, в противном случае класс Thing является внутренним классом, вам нужно сначала создать экземпляр NumberOfObjects и использовать этот объект для создания экземпляра Thing.

импорт java.util.Scanner;

NumberOfObjects общественного класса {

public static void main(String args[]) { 
    System.out.print("How many objects do you want to create:"); 
    Scanner reader = new Scanner(System.in); 
    int amount = reader.nextInt(); 

    Thing[] things = new Thing[amount]; 
    for(int i = 0; i<amount; i++) { 
     things[i] = new Thing(); 
    } 
    Thing.numberOfObjects(); 
} 

}

class Thing{ 
    private static int count ; 
    public Thing(){ 
     count++; 
    } 
    public static void numberOfObjects(){ 
     System.out.println(count); 
    } 
} 
Смежные вопросы