zoukankan      html  css  js  c++  java
  • 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);
        }
    
    
    
    }
    复制代码
  • 相关阅读:
    LeetCode——二叉树中的最大路径和
    LeetCode——验证回文串
    LeetCode——word-ladder*
    LeetCode——最长连续序列
    3G? 2G? 2.5G? 4G? 与 WIFI, GPRS,CDMA 3G无线上网
    GSM、GPRS、EDGE、2G、3G与WAP的关系
    3G 2G GPRS 1G的概念
    那些精华博客
    单片机系统与标准PC键盘的接口模块设计
    以多个实例方式打开Notepad++
  • 原文地址:https://www.cnblogs.com/lemperor/p/13884640.html
Copyright © 2011-2022 走看看