2017-08-20 10 views
3

Je suis chargé de créer 10 instances de la classe Square dans une boucle utilisant 10 valeurs entières aléatoires (10 - 20) leur longueur et stocker 10 Installez des occurrences carrées dans sqArray et imprimez la longueur et la surface de tous les éléments du tableau.Comment stocker des entiers aléatoires dans une instance d'une classe

Voici mon code pour la classe carrée

public class Square { 

    private int length; 

     // Create a constructor that takes in len as parameter 
     public Square(int len){ 
      length = len; 
     } 

     public int getLength(){ 
      return length; 
     } 

     public double calculateArea(){ 
      return length * length; 
     } 
} //Square 

Voici mon code pour ma classe principale

public class SquareUser { 

    public static void main(String[] args) { 

     //Create an instance of array sqArray. 
     Square[] sqArray = new Square [10]; 

     for(int i = 0; i < sqArray.length; i++) { 

      sqArray[i] = (int) (Math.random()*10); 
     } 
    } 
} 

Comme vous pouvez le voir, je ne l'ai pas vraiment faire quoi que ce soit dans mon main class comme Je ne sais pas de quoi parle cette question. J'ai 2 questions:

  1. Comment générer un entier aléatoire dans la boucle for si le type de données est un objet? Que veulent-ils dire par "stocker les 10 instances carrées dans sqArray"? Est-ce qu'ils me demandent de stocker les entiers aléatoires dans le sqArray?

Répondre

3

Vous avez juste besoin de générer entier aléatoire entre 10 et 20 et le mettre à l'objet créé comme ça:

public class SquareUser { 

     public static void main(String[] args) { 

      //Create an instance of array sqArray. 
      Square[] sqArray = new Square [10]; 

      for(int i = 0; i < sqArray.length; i++) { 

       int val = 10 + (int) (Math.random()*10); 
       sqArray[i] = new Square(val); 
       System.out.println("Length is "+val); 
       System.out.println("Area is "+sqArray[i].calculateArea()); 
      } 
     } 
    } 
1

Vous y êtes presque.

  1. Remplacer
sqArray[i] = (int) (Math.random()*10); 

Avec

sqArray[i] = new Square(10 + Math.floor((int) (Math.random()*11))); 
  1. réseau de Square objets avec exactement 10 éléments