⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 petcount3.java

📁 java编程思想是一本非常经典的书籍 此源码包涵了书籍的所有源码 书籍源码
💻 JAVA
字号:
package the10;

//: c10:PetCount3.java
//Using isInstance()
//From 'Thinking in Java, 3rd ed.' (c) Bruce Eckel 2002
//www.BruceEckel.com. See copyright notice in CopyRight.txt.
 
import java.util.*;

public class PetCount3 {
//private static Test monitor = new Test();
private static Random rand = new Random();
public static void main(String[] args) {
 Object[] pets = new Object[15];
 Class[] petTypes = {
   // Class literals:
   Pet.class,
   Dog.class,
   Pug.class,
   Cat.class,
   Rodent.class,
   Gerbil.class,
   Hamster.class,
 };
 try {
   for(int i = 0; i < pets.length; i++) {
     // Offset by one to eliminate Pet.class:
     int rnd = 1 + rand.nextInt(petTypes.length - 1);
     pets[i] = petTypes[rnd].newInstance();
   }
 } catch(InstantiationException e) {
   System.out.println("Cannot instantiate");
   System.exit(1);
 } catch(IllegalAccessException e) {
   System.out.println("Cannot access");
   System.exit(1);
 }
 AssociativeArray map =
   new AssociativeArray(petTypes.length);
 for(int i = 0; i < petTypes.length; i++)
   map.put(petTypes[i].toString(), new Counter());
 for(int i = 0; i < pets.length; i++) {
   Object o = pets[i];
   // Using Class.isInstance() to eliminate
   // individual instanceof expressions:
   for(int j = 0; j < petTypes.length; ++j)
     if(petTypes[j].isInstance(o))
       ((Counter)map.get(petTypes[j].toString())).i++;
 }
 // List each individual pet:
 for(int i = 0; i < pets.length; i++)
   System.out.println(pets[i].getClass());
 // Show the counts:
 System.out.println(map);
 /**monitor.expect(new Object[] {
   new TestExpression("%% class c10\\." +
     "(Dog|Pug|Cat|Rodent|Gerbil|Hamster)",
     pets.length),
   new TestExpression("%% class c10\\." +
     "(Pet|Dog|Pug|Cat|Rodent|Gerbil|Hamster) : \\d+",
     petTypes.length)
 });*/
}
} ///:~

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -