1. 程式人生 > 實用技巧 >java基礎隨筆09

java基礎隨筆09

第一題:
定義一個介面Animal,包含:
1.抽象方法: run()
2.預設方法: breathe(),輸出"動物會呼吸",同時呼叫靜態方法 eat(),私有方法: sleep()
3.靜態方法: eat(),輸出"動物都要吃東西"
4.私有方法: sleep(),輸出"動物都要休息"

package com.hp.work09;

public interface Animal {
    public abstract void run();
    public default void breathe(){
        System.out.println("動物會呼吸");
        eat();
    }
    public  static void eat(){
        System.out.println("動物都要吃東西");
    }

}



定義Dog類實現Animal介面,實現抽象方法run(),輸出"狗跑得飛快"
在測試類中建立Dog類的物件d,通過物件呼叫run()方法和breathe()方法,打印出如下效果:
狗跑得飛快
動物會呼吸
動物都要吃東西
動物都要休息

package com.hp.work09;

public class Dog implements Animal {
    @Override
    public void run() {
        System.out.println("狗跑得飛快");
    }
}
package com.hp.work09;

public class Test {
    public static void main(String[] args) {
        Dog dog=new Dog();
        dog.run();
        dog.breathe();
    }
}



第二題:
定義一個介面Phone,包含:
1.抽象方法: playGame()
2.預設方法: sendMessage(),輸出"發簡訊"
3.靜態方法: call(),輸出"打電話"

package com.hp.work0902;

public interface Phone {
    public abstract void playGame();
    public default void sendMessage(){
        System.out.println("發簡訊");
    }
    public static void call(){
        System.out.println("打電話");
    }
}


定義IPhone類實現Phone介面,實現抽象方法playGame(),輸出"打王者農藥,吃雞"
重寫預設方法sendMessage(),輸出"發彩信"

package com.hp.work0902;

public class IPhone implements Phone{
    @Override
    public void playGame() {
        System.out.println("打王者農藥,吃雞");
    }

    @Override
    public void sendMessage() {
        System.out.println("發彩信");
    }
}


在測試類中,編寫程式碼,打印出如下語句(每句話都需呼叫上述方法列印):
打電話
打王者農藥,吃雞
發彩信

package com.hp.work0902;

public class Test {
    public static void main(String[] args) {
        IPhone iPhone=new IPhone();
        iPhone.playGame();
        iPhone.sendMessage();
        Phone.call();
    }
}



第三題:
定義一個介面Animal,包含:
1.抽象方法:run()
2.預設方法: sleep(),輸出"動物會休息"

package com.hp.work0903;

public interface Animal {
    public abstract void run();
    public default void sleep(){
        System.out.println("動物會休息");
    }

}


定義一個Dog類,實現Animal介面,
實現抽象方法:run(),輸出"如脫韁的野狗一樣奔跑"
定義自己特有的方法: eat(),輸出"狗吃屎"

package com.hp.work0903;

public class Dog implements Animal {
    @Override
    public void run() {
        System.out.println("如脫韁的野狗一樣奔跑");

    }
    public void eat(){
        System.out.println("狗吃屎");

    }
}


定義一個Cat類,實現Animal介面,
實現抽象方法:run(),輸出"奔跑的貓毛都被擼禿了"
定義自己特有的方法: catchMouse(),輸出"貓抓老鼠"

package com.hp.work0903;

public class Cat implements Animal{
    @Override
    public void run() {
        System.out.println("奔跑的貓毛都被擼禿了");
    }
    public void catchMouse(){
        System.out.println("貓抓老鼠");
    }}

在測試類中定義如下方法:
public static void printAnimal(Animal a){}
要求在方法中編寫程式碼實現如下功能:
在主方法中:
1. Animal b = new Dog();
呼叫方法printAnimal()傳入b物件,能在控制檯輸出:
如脫韁的野狗一樣奔跑
動物會休息
狗吃屎

1. Animal c = new Cat();
呼叫方法printAnimal()傳入c物件,能在控制檯輸出:
奔跑的貓毛都被擼禿了
動物會休息
貓抓老鼠

package com.hp.work0903;

public class Test {
    public static void main(String[] args) {
        Animal b=new Dog();
        printAnimal(b);
        Animal c=new Cat();
        printAnimal(c);
    }
    public static void printAnimal(Animal a){
        a.run();
        a.sleep();
        if (a instanceof Dog){
            ((Dog) a).eat();
        }else if (a instanceof Cat) {
            ((Cat) a).catchMouse();
        }
    }
}


第四題:
根據要求完成以下功能:
① 定義介面Bluetooth,要求如下:
定義抽象方法: void btFunction()
定義預設方法: void connecting(),要求:輸出"可以連線WIFI"

package com.hp.work0904;

public interface Bluetooth {
    public abstract void btFunction();
    public  default void connecting(){
        System.out.println("可以連線WIFI");
    }
}


② 定義抽象類Phone,要求如下:
包含空參、滿參構造和以下成員變數
名稱name( String 型)
生成所有成員變數set/get方法
定義抽象方法:void playMusic(Song song)

package com.hp.work0904;

public abstract class Phone {
    String name;

    public Phone(String name) {
        this.name = name;
    }

    public Phone() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    public abstract void playMusic(Song song);
}


③定義類Song
包含空參、滿參構造和以下成員變數
歌手 singer(String 型)
歌名 name( String 型)
生成所有成員變數set/get方法

package com.hp.work0904;

public class Song {
    String singer;
    String name;

    public Song(String singer, String name) {
        this.singer = singer;
        this.name = name;
    }

    public String getSinger() {
        return singer;
    }

    public void setSinger(String singer) {
        this.singer = singer;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}


④ 定義類IPhone,要求如下:
繼承抽象類 Phone,實現介面 Bluetooth
構造方法包括:空參構造和滿參構造方法(String)
重寫抽象方法:
void btFunction(),要求:輸出"支援WIFI功能"
void playMusic(Song song),要求:輸出列印"XXX手機正在播放YYY唱的ZZZ"
PS:XXX是Phone類中的 name屬性值,YYY是Song 類中的 singer屬性值,ZZZ是Song 類中的 name屬性值

package com.hp.work0904;

public class IPhone extends Phone implements Bluetooth {
    public IPhone(String name) {
        super(name);
    }

    public IPhone() {
    }

    @Override
    public void btFunction() {
        System.out.println("支援WIFI功能");
    }

    @Override
    public void playMusic(Song song) {
        System.out.println(name+"手機正在播放"+song.singer+"唱的"+song.name);
    }
}


⑤ 定義測試類Test,在main方法實現以下功能:
建立並初始化一個IPhone 物件phone和一個Song 物件s,呼叫phone的 btFunction()、connecting()和playMusic(Song song)方法,列印如下:
支援WIFI功能
可以連線WIFI
華為手機正在播放周杰倫唱的菊花殘

package com.hp.work0904;

public class Test {
    public static void main(String[] args) {
        IPhone phone=new IPhone("華為");
        Song s=new Song("周杰倫","菊花殘");
        phone.btFunction();
        phone.connecting();
        phone.playMusic(s);
    }
}




第五題:
根據要求完成以下功能:
① 定義介面Study,要求如下:
定義抽象方法: void studyLine(Line line)
定義預設方法: void info(),要求:依次呼叫stu1(),stu2()
定義私有方法: void stu1 (),要求:輸出"好好練習,天天向上"
void stu2 (),要求:輸出"鏡頭拍爛,月薪百萬"

package com.hp.work0905;

public interface Study {
    public abstract void studyLine(Line line);
    public default void info(){
        stu1();
        stu2();
    }

   static   void stu2(){
       System.out.println("好好練習,天天向上");
   }

  static   void stu1(){
      System.out.println("鏡頭拍爛,月薪百萬");
  }


}



②定義類Line,包含空參、滿參構造和以下成員變數
基礎班學習 basicClass(String 型)
就業班學習 emplymentClass(String 型)
生成所有成員變數set/get方法
定義成員方法:void printLine(),要求:輸出"練習路線,基礎班學習:xxx,就業班學習:yyy",
PS: xxx為變數basicClass值,yyy為變數emplymentClass值

package com.hp.work0905;

public class Line {
    String basicClass;
    String emplymentClass;

    public Line(String basicClass, String emplymentClass) {
        this.basicClass = basicClass;
        this.emplymentClass = emplymentClass;
    }

    public Line() {
    }

    public String getBasicClass() {
        return basicClass;
    }

    public void setBasicClass(String basicClass) {
        this.basicClass = basicClass;
    }

    public String getEmplymentClass() {
        return emplymentClass;
    }

    public void setEmplymentClass(String emplymentClass) {
        this.emplymentClass = emplymentClass;
    }
    public void printLine(Line line){
        System.out.println("練習路線,基礎班學習:"+basicClass+",就業班學習:"+emplymentClass);

    }
}



③定義類Student,包含空參、滿參構造和以下成員變數
姓名 name(String 型)
年齡 age(int型)
生成所有成員變數set/get方法
定義成員方法:void studying(Study sy),要求:輸出“xxxx練習中”,然後在方法內依次呼叫info(),studyLine (Line line)
PS:xxx為變數name值,引數line需要自行建立並初始化變數basicClass與 emplymentClass

package com.hp.work0905;

public class Student {
    String name;
    int age;

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public Student() {
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    void studying(Study sy){
        System.out.println(name+"練習中");
        sy.info();
        Line line=new Line("JAVASE","JAVAEE");
        sy.studyLine(line);
    }
}



④ 定義測試類Test,在main方法實現以下功能:
建立並初始化一個Student物件stu,呼叫方法 studying(Study sy)
sy為Study的實現類,需要實現studyLine (Line line)抽象方法,實現要求:呼叫引數line的printLine()方法;
示例如下:
蒼井空練習中
好好練習,天天向上
鏡頭拍爛,月薪百萬
學習路線,基礎班學習:JAVASE,就業班學習:JAVAEE

package com.hp.work0905;

public class Test {
    public static void main(String[] args) {
        Student stu=new Student("蒼井空",18);
        Study sy = new Study() {
            @Override
            public void studyLine(Line line) {
                line.printLine(line);
            }
        };
        stu.studying(sy);
    }



}