Java內部類應用 作業

題目:

第一題:補全代碼
    1、已知有一個接口:
        interface Inter{
            void show();//默認修飾符爲public abstract
        }
    2、已知一個類如下:
        class Outer{

            //根據下面的OuterDemo測試類的方法調用和輸出結果,補全Outer類中的代碼使測試類中的輸出成立。

        }
    public class OuterDemo {
        public static void main(String[] args) {
            Outer.method().show();//輸出HelloWorld
        }
    }


第二題:有如下代碼,請說出輸出結果
    class Person{
       public void eat(){
          System.out.println("在吃飯..");
       }
        public void run(){
            System.out.println("在跑..");
       }
    }

    interface Dao{
       public void add();
    }



    class Outer{
        //在Outer中定義print()方法
       public void print(){
          //繼承關係下的匿名內部類
          new Person(){
             //匿名內部類的成員
             public void sleep(){
                System.out.println("在睡覺..");

             }

          }.eat();
       }
       //在Outer中定義show()方法
       public void show(){
          //這裏創建的不是Dao接口的對象,創建的是Dao接口實現類的對象。
          new Dao(){

             public void add(){
                System.out.println("添加成功..");
             }
          }.add();

       }
    }
    //測試了
    public class  OuterDemo{
       public static void main(String[] args){
          Outer outer = new Outer();
          outer.print();
          outer.show();
       }
    }

第三題:代碼補全
    interface Product{
        public double getPrice();
        public String getName();
    }

    public class AnonymousTest {
        public  void test(Product p){
            System.out.println("購買了一個"+p.getName()+",花掉了"+p.getPrice());

        }

        public static void main(String[] args) {
            AnonymousTest ta= new AnonymousTest();
            //補全代碼:調用AnonymousTest的test方法,使之打印"購買了一個小米手機,花掉了2999元。提示:使用匿名內部類實現

        }

    }

第四題:生成一個隨機100內小數,轉換爲保留兩位小數的字符串,不考慮四捨五入的問題。
        打印效果如下:
            隨機數爲:
            86.217840985496
            轉換爲:
            86.21
        提示:將隨機數結果轉換成String字符串,查閱String類進行字符串截取即可
第五題:不運行說出下面代碼的運行結果
    public class ToStringTest{
        static int i = 1;
        public static void main(String args[]){
            System.out.println("love " + new ToStringTest());//love java
            ToStringTest a = new ToStringTest();
            a.i++;
            System.out.println("me " + a.i);//me 2
        }
        public String toString(){
            System.out.print("I ");//I
            return "java ";
        }
    }

第六題:
    定義一個Student類,有private修飾的name和age成員變量,生成空參和有參構造方法,get/set方法。
    寫一個StudentTest測試類,創建兩個Student對象,如果對象的name和age一樣,那麼則認爲是同一個人,比較結果爲true。

第七題:嘗試使用冒泡排序對下面的數組進行降序排序
    int[] arr={24,69,80,57,13};

答案:

第一題:

package com.homework.homework_1;

interface Inter {
    void show();//默認修飾符爲public abstract
}
package com.homework.homework_1;

public class Outer {
    /*
        兩個明確:
            返回值類型:
            參數列表:   無參
     */
    public static Inter method(){
        return new Inter() {
            @Override
            public void show() {
                System.out.println("HelloWorld");
            }
        };
    }
}
package com.homework.homework_1;

public class OuterDemo {
    public static void main(String[] args) {
        Outer.method().show();//輸出HelloWorld
    }
}

第三題:

package com.homework.homework_3;

interface Product {
    public double getPrice();

    public String getName();
}
package com.homework.homework_3;

public class AnonymousTest {
    public void test(Product p) {
        System.out.println("購買了一個" + p.getName() + ",花掉了" + p.getPrice()+"元");
    }

    public static void main(String[] args) {
        AnonymousTest ta = new AnonymousTest();
        //補全代碼:調用AnonymousTest的test方法,使之打印"購買了一個小米手機,花掉了2999.0元。提示:使用匿名內部類實現
        ta.test(new Product() {
            @Override
            public double getPrice() {
                return 2999;
            }

            @Override
            public String getName() {
                return "小米手機";
            }
        });
    }

}

第四題:

package com.homework.homework_4;

/**
 * 第四題:生成一個隨機100內小數,轉換爲保留兩位小數的字符串,不考慮四捨五入的問題。
 *         打印效果如下:
 *             隨機數爲:
 *             86.217840985496
 *             轉換爲:
 *             86.21
 *         提示:將隨機數結果轉換成String字符串,查閱String類進行字符串截取即可   subString(int start,int end)
 */
public class HomeWork4 {

    public static void main(String[] args) {
        //1 使用math的方法生成0-100之間的隨機數
        double num=Math.random()*100;
        System.out.println("隨機數爲:");
        System.out.println(num);
        //2 將隨機數轉換成字符串
        String s=num+"";
        //3 獲取小數點的位置
        int index = s.indexOf(".");
        //4 字符串截取,保留兩位小數
        String newS = s.substring(0, index + 3);
        System.out.println("轉換爲:");
        System.out.println(newS);
    }
}

第五題:

package com.homework.homework_5;

public class ToStringTest{
        static int i = 1;
        public static void main(String args[]){
            /*
                1 執行new ToStringTest()創建對象  相當於ToStringTest tst=new ToStringTest()
                2 將"love "和tst做字符串拼接,會調用對象的toString方法,將對象轉換成字符串
                    調用同 String方法會發生如下事情:
                        1、打印 I
                        2 返回Java字符串,然後在main的第一行代碼中就相當於System.out.println("love " + "Java"));

                3 將最終的拼接結果進行輸出
                    I love java
             */
            System.out.println("love " + new ToStringTest());//love java
            ToStringTest a = new ToStringTest();
            a.i++;//i=2
            System.out.println("me " + a.i);//me 2
             // me 2
        }
        public String toString(){
            System.out.print("I ");//I
            return "java ";
        }
    }

完結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章