基本數據類型的包裝類和隨機數

 
 
public class BasisTest {

    /**
     *  封裝類/包裝類 :  把 基本數據類型轉換成對象!
     * 
     *  基本數據類型               包裝類
     *  byte           Byte
     *  short          Short
     *  int            Integer
     *  long           Long
     *  float          Float
     *  double         Double
     *  char           Character
     *  boolean        Boolean
     *  
     *  使用咱們的封裝類 ,就能夠使用類中對應的方法
     *  集合中在存儲基本數據類型時!只能存放封裝類!
     */

    // 全部的封裝類 都有將對應的基本數據類型做爲參數的方法 來構造實例
    @Test
    public void test01() {
        /**
         * 除了Character來構造實例的時候,沒有String類型的參數!
         * Float有三個實例化構造方法  分別是  傳遞 double  float  String
         */
        Byte a = new Byte((byte) 1);
        Short s = new Short((short) 1);
        Integer b = new Integer(5);
        Long l = new Long(1);
        Float f = new Float(2);
        Double c = new Double(5);
        // 上面的六個封裝類都繼承了Number
        Boolean boolean1 = new Boolean(true);
        Character character1 = new Character((char) 1);
        Character character2 = new Character('1');
    }

    /**
     * 六個封裝類繼承了Number
     * 用String來構造實例的時候,String中存放的必須是數值類型的字符串
     */
    @Test
    public void test02() {
        Byte a = new Byte("1");
        Short s = new Short("1");
        Integer b = new Integer("1");
        Long l = new Long("1");
        Float f = new Float("1");
        Double c = new Double("1");
        // 除了大小寫的true 其它都返回false
        Boolean boolean1 = new Boolean("");
        System.out.println(boolean1);
        // 編譯報錯 Character character1 = new Character("1");
    }

    @Test
    public void test03() {
        System.out.println(Integer.toBinaryString(28)); // 轉換成2進制
        System.out.println(Integer.toHexString(28)); // 轉換成16進制
        System.out.println(Integer.toOctalString(28)); // 轉換成8進制
    }

    /**
     * 六個封裝類繼承了Number,只要不是傳遞 字符串類型的數值
     * 都會拋出NunberFormatException
     */
    @Test
    public void test04() {
        // Integer integer = new Integer(null);
        double a = 1;
        System.out.println(a);
        Double double1 = new Double(1);
        System.out.println(double1);
    }

    /**
     * 
     *除了Character,都有對應的parse的方法
     */
    @Test
    public void test05() {
        Integer integer = new Integer(5);
//第一個參數是對應進制的寫法 System.out.println(integer.parseInt(
"11011", 2)); /** String num = "27"; System.out.println(Integer.parseInt(num) + 1); Double.parseDouble("20"); Byte.parseByte("1"); Short.parseShort("1"); System.out.println(1 + 1 + "2"); // 22 System.out.println("1" + (1 + 2)); // 13 */ } /** * valueOf * 把基本數據類型轉換成對應的封裝類 * 除了Character沒有傳遞String類型的參數 * * xxxValue * 把xxx類型轉換成xxx對應的基本數據類型 */ @Test public void test06() { // 基本數據類型和對應封裝類之間的轉換 咱們稱之爲 裝箱和拆箱操做 int a = 5; Integer integer = Integer.valueOf(a); integer.intValue(); Double double1 = Double.valueOf(20); double1.doubleValue(); Character character = Character.valueOf('a'); character.charValue(); } @Test public void test07() { Integer a = new Integer(1); Integer b = new Integer(1); int c = 1; System.out.println(a == b); // false 都是new出來的對象 System.out.println(a == c); } @Test public void test08() { /** *底層默認執行了valueOf() *若是值在 -128到127 之間 則不會new對象 *不然 會new出來新的對象 */ Integer a = 128; Integer b = 128; System.out.println(a == b); // false } }
 
 

 

 
 
@Test
    public void testMath() {
        System.out.println("向上取值:" + Math.ceil(50.1));
        System.out.println("向下取值:" + Math.floor(50.9));
        System.out.println("絕對值:" + Math.abs(-50.9));
        System.out.println("最大值:" + Math.max(50, 60));
        System.out.println("最小值:" + Math.min(50, 60));
        System.out.println("隨機數:" + (int) (Math.random() * 10));
        // 以前使用的Math.random() 實際上是調用了Random.nextDouble();
    }

    @Test
    public void testRandom() {
        Random random = new Random();
        for (int i = 0; i < 100; i++) {
            // System.out.println(random.nextBoolean()); 隨機boolean類型的值
            // System.out.println(random.nextDouble()); 0-1之間
            // System.out.println(random.nextInt()); int取值範圍
            System.out.println(random.nextInt(10)); // 參數的範圍 可是不包含自己 參數必須大於0
        }
    }
 
 

 

//隨機數
    @Test
    public   void  test12(){
        Scanner scanner=new Scanner(System.in);
        System.out.println("請輸入一個4位數字:");
        String num=scanner.next();
        //把String類型的num轉換成int
        int realNum=Integer.parseInt(num);
        //獲取百位
        int bai=realNum/100%10;
        Random random=new Random();
        //定義一個標記
        boolean flag=false;
        for (int i = 1; i <=100; i++) {
        int a=    random.nextInt(10);
        System.out.println("第"+i+"次的隨機數:"+a);
            if (a==bai) {
                //找到了
                flag=true;
                break;
            }
        }
        if (flag) {
            System.out.println("中獎了");
        }else {
            System.out.println("下次努力...");
        }
    }
    
}
相關文章
相關標籤/搜索