day09

第一题:
定义一个接口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);
    }



}
复制代码

 

posted @ 2020-10-27 14:23  翘中之楚  阅读(82)  评论(0编辑  收藏  举报