• day09


    第一题:
    定义一个接口Animal,包含:
    1.抽象方法: run()
    2.默认方法: breathe(),输出"动物会呼吸",同时调用静态方法 eat(),私有方法: sleep()
    3.静态方法: eat(),输出"动物都要吃东西"
    4.私有方法: sleep(),输出"动物都要休息"

    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()方法,打印出如下效果:
    狗跑得飞快
    动物会呼吸
    动物都要吃东西
    动物都要休息

    public class Dog implements Animal {
        @Override
        public void run() {
            System.out.println("狗跑得飞快");
        }
    
     
    复制代码
    复制代码
    public class Test {
        public static void main(String[] args) {
            Dog dog=new Dog();
            dog.run();
            dog.breathe();
        }
    }
    复制代码
    复制代码


    第二题:
    定义一个接口Phone,包含:
    1.抽象方法: playGame()
    2.默认方法: sendMessage(),输出"发短信"
    3.静态方法: call(),输出"打电话"

    复制代码
    复制代码
    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(),输出"发彩信"

    复制代码
    复制代码
    public class IPhone implements Phone{
        @Override
        public void playGame() {
            System.out.println("打王者农药,吃鸡");
        }
    
        @Override
        public void sendMessage() {
            System.out.println("发彩信");
        }
    }
     
    复制代码
    复制代码


    在测试类中,编写代码,打印出如下语句(每句话都需调用上述方法打印):
    打电话
    打王者农药,吃鸡
    发彩信

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



    第三题:
    定义一个接口Animal,包含:
    1.抽象方法:run()
    2.默认方法: sleep(),输出"动物会休息"

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


    定义一个Dog类,实现Animal接口,
    实现抽象方法:run(),输出"如脱缰的野狗一样奔跑"
    定义自己特有的方法: eat(),输出"狗吃屎"

    复制代码
    复制代码
    public class Dog implements Animal {
        @Override
        public void run() {
            System.out.println("如脱缰的野狗一样奔跑");
        }
        public void eat(){
            System.out.println("狗吃屎");
        }
    }
    复制代码
    复制代码


    定义一个Cat类,实现Animal接口,
    实现抽象方法:run(),输出"奔跑的猫毛都被撸秃了"
    定义自己特有的方法: catchMouse(),输出"猫抓老鼠"

    复制代码
    复制代码
    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对象,能在控制台输出:
    奔跑的猫毛都被撸秃了
    动物会休息
    猫抓老鼠

    复制代码
    复制代码
    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"

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


    ② 定义抽象类Phone,要求如下:
    包含空参、满参构造和以下成员变量
    名称name( String 型)
    生成所有成员变量set/get方法
    定义抽象方法:void playMusic(Song song)

    复制代码
    复制代码
    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方法

    复制代码
    复制代码
    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属性值

    复制代码
    复制代码
    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
    华为手机正在播放周杰伦唱的菊花残

    复制代码
    复制代码
    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 (),要求:输出"镜头拍烂,月薪百万"

    复制代码
    复制代码
    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值

    复制代码
    复制代码
    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

    复制代码
    复制代码
    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

    复制代码
    复制代码
    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);
        }
    }
    复制代码
    复制代码
  • 相关阅读:
    树上DP
    区间dp
    [持续更新]学习并记忆 Linux 下的常用的命令
    区间dp
    codevs 2152
    树上DP入门题
    差分与前缀和
    POJ
    VJ
    Week 5: Object Oriented Programming 9. Classes and Inheritance Exercise: int set
  • 原文地址:https://www.cnblogs.com/csk001/p/13890402.html
Copyright © 2020-2023  润新知