IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java编程继承与多态练习题(继承、接口程序demo) -> 正文阅读

[Java知识库]Java编程继承与多态练习题(继承、接口程序demo)

1.编写学生类和成绩类并测试

学生有姓名()和成绩(sGrade)信息,成绩有课程(sGrade)和分数(score)信息。学生类的showResult方法用于输出学生姓名、课程和成绩信息。编写学生类(Student)和成绩类(Grade)并测试。

思路:成绩和学生是学生有成绩的关系,即一个类中有另一个类的成分,所以用组合的方式来实现

/**
 * 先定义一个成绩类
 */
class Grade{
    private String course;
    private String score;

    public String getCourse() {
        return course;
    }

    public void setCourse(String course) {
        this.course = course;
    }

    public String getScore() {
        return score;
    }

    public void setScore(String score) {
        this.score = score;
    }
}

/**
 * 再定义一个学生类,学生类包含成绩类
 */
class Student{
    private String sName;
    private Grade sGrade;

    public Student(String sName,Grade sGrade){
        this.sName = sName;
        this.sGrade = sGrade;
    }

    public void showResult(){
        System.out.print("学生的姓名:"+sName);
        System.out.print(",课程:"+sGrade.getCourse());
        System.out.println(",成绩为:"+sGrade.getScore());
    }
}

public class Practice1 {
    public static void main(String[] args){
        Grade sGrade = new Grade();
        sGrade.setCourse("math");
        sGrade.setScore("100");
        Student student = new Student("小明",sGrade);
        student.showResult();
    }
}

2.设计和实现一个接口

该接口能播放声音,调节声音的大小,接口的功能将由收音机(Radio)和手机(Mobilephone)两种设备来实现,最后设计一个应用程序类来使用这些实现接口的声音设备。设计要求为当程序运行时先询问用户想使用哪个设备,然后程序按照该设备的工作方式来输出声音。

interface Soundable{
    void displaySound();//播放声音
    void turnDown();//调小声音
    void turnUp();//调小声音
}

class Radio implements Soundable{

    @Override
    public void displaySound() {
        System.out.println("收音机播放广播");
    }

    @Override
    public void turnDown() {
        System.out.println("降低收音机音量");
    }

    @Override
    public void turnUp() {
        System.out.println("调高收音机音量");
    }
}

class Mobilephone implements Soundable{

    @Override
    public void displaySound() {
        System.out.println("手机发出来电铃声");
    }

    @Override
    public void turnDown() {
        System.out.println("手机发出来电铃声");
    }

    @Override
    public void turnUp() {
        System.out.println("调高手机音量");
    }
}

/**
 * 通过引用不同的实现接口的对象,从而调用特定对象中重写的接口的方法
 */
class SampleDisplay{
    public void display(Soundable soundable){
        soundable.displaySound();
        soundable.turnDown();
        soundable.turnUp();
    }
}

public class Practice2 {
    public static void main(String[] args){
        Scanner scanner =new Scanner(System.in);
        System.out.println("你想使用什么收听?请输入:");
        System.out.println("1-收音机  2-手机");
        int choice;
        SampleDisplay sampleDisplay= new SampleDisplay();
        choice = scanner.nextInt();
        switch (choice){
            case 1:
              sampleDisplay.display(new Radio());//通过对象调用接口中被重写的方法
                break;
            case 2:
                sampleDisplay.display(new Mobilephone());//通过对象调用接口中被重写的方法
                break;
        }
    }
}

3.登录程序的接口设计与实现

package com.chapter5;

import java.util.Scanner;

/**
 * @Author: qp
 * @Time: 2021/8/22 12:38
 * @Description 当用户民为admin、密码为123456时,将在控制台输出“登录成功”;
 * 当用户名或密码有不正确时,将输出“用户名或密码错误";
 * 当用户名或密码为空时,将输出“用户名或密码不能为空";
 * 思路:首先确定有用户类,用户类有用户名和密码信息;
 * 然后有用户登录确认类,有登录成功确认方法,登录信息为空方法,登录信息为错误方法
 */

class User {
    private String userName;
    private String passWord;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }
}

interface Loginable {
    void loginNull();

    void loginFail();

    void loginSuccess();
}

class UserVerify implements Loginable {

    @Override
    public void loginNull() {
        System.out.println("用户名或密码不能为空");
    }

    @Override
    public void loginFail() {
        System.out.println("用户名或密码错误");

    }

    @Override
    public void loginSuccess() {
        System.out.println("登录成功");
    }

    public int verify(User user) {
        String userName = user.getUserName();
        String passWord = user.getPassWord();


        if (userName.isEmpty() || passWord.isEmpty()) {
            return 0;
        }
        if (userName.equals("admin") || passWord.equals("123456")) {
            return 1;
        }

        return -1;
    }
}

public class Practice3 {
    public static void main(String[] args) {
        String name, passWord;
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名");
        name = scanner.nextLine();
        System.out.println("请输入密码");
        passWord = scanner.nextLine();
        User user = new User();
        user.setUserName(name);
        user.setPassWord(passWord);
        UserVerify userVerify = new UserVerify();
        int code;
        code = userVerify.verify(user);
        switch (code) {
            case 0:
                userVerify.loginNull();break;
            case 1:
                userVerify.loginSuccess();break;
            case -1:
                userVerify.loginFail();break;
        }
    }
}

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-23 16:31:00  更:2021-08-23 16:32:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:02:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码