• 荣岩岩作业9


    第一题:
    定义一个接口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);
        }
    
    
    
    }
  • 相关阅读:
    再次或多次格式化导致namenode的ClusterID和datanode的ClusterID之间不一致的问题解决办法
    Linux安装aria2
    POJ 3335 Rotating Scoreboard 半平面交
    hdu 1540 Tunnel Warfare 线段树 区间合并
    hdu 3397 Sequence operation 线段树 区间更新 区间合并
    hud 3308 LCIS 线段树 区间合并
    POJ 3667 Hotel 线段树 区间合并
    POJ 2528 Mayor's posters 贴海报 线段树 区间更新
    POJ 2299 Ultra-QuickSort 求逆序数 线段树或树状数组 离散化
    POJ 3468 A Simple Problem with Integers 线段树成段更新
  • 原文地址:https://www.cnblogs.com/ryyy/p/13860959.html
Copyright © 2020-2023  润新知