• Java暑期学习第十五天日报


    一、今日学习内容:

    今天学习了5.5的内容和5.6的综合实例。

    二、遇到的问题:

     没有遇到什么问题。

    三、明日计划:

    明天计划练习5.8的课后习题。

    今天进行的具体内容:

    1.abstract关键字

    (1)抽象类

    由abstract关键字修饰的类叫抽象类,抽象类必须由子类继承才能实例化对象。

    抽象类中的方法 抽象方法
    具体方法

    抽象类的定义形式:abstract class 类名{ }

    (2)抽象方法

    由abstract修饰的方法称为抽象方法,其中抽象方法必须在抽象类中,且在抽象类中对抽象方法只进行声明,其方法体在子类中。若需要使用这些方法,需要由子类实现。

    public abstract class student2 {
        protected abstract void test();
        public static void main(String[]args) {
            student3 s=new student3();
            s.test();
            
        }
    }
    class student3 extends student2{
        @Override
        public void test() {
            System.out.println("test方法!");
        }
    }

    另外需要注意的是抽象类无法被实例化。

    抽象类和抽象方法总结 抽象类中既含有抽象方法,也有非抽象方法
    含有抽象方法的类一定是抽象类
    抽象类中不一定含有抽象方法

    2.综合实例——选择题

     其中设置Question为父类,单项选择题和多项选择题分别是子类。

    package atm;
    import java.util.Arrays;
    public class Question {
        public String text;   //题目文本
        public String[] options;  //选项
        public void print() {
            System.out.println(this.text);
            for(int i=0;i<options.length;i++) {
                System.out.println(options[i]+"\t");
            }
        }
        public boolean check(char[] answers) {
            return false;
        }
    
    }
    class singleQuestion extends Question{
        char answer;  //标准答案
        public singleQuestion(String str,String [] opt,char ans) {
            this.text=str;
            this.options=opt;
            this.answer=ans;
        }
        public boolean check(char[] answers) {
            if(answers==null||answers.length!=1)
                return false;
            return this.answer==answers[0];
        }
    }
    
    class multiQuestion extends Question{
        char [] answer;  //标准答案
        public  multiQuestion(String str,String [] opt,char [] ans) {
            this.text=str;
            this.options=opt;
            this.answer=ans;
        }
        public boolean check(char[] answers) {
            return Arrays.equals(answers,this.answer);
        }
        
    }
    
    
    package atm;
    import java.util.*;
    public class PersonDemo {
        public static void main(String[] args) {
            Question []paper= {null,null};
            paper[0]= new singleQuestion("如何买火车票靠谱?",new String [] {"A.电话","B.黄牛","C.画的"},'A');
            paper[1]= new multiQuestion("谁是歌手?",new String[] {"A.刘德华","B.张学友","C.孙悟空","D.周杰伦"},new char[] {'A','B','D'}) ;
        
        Scanner sc=new Scanner(System.in);
        for(int i=0;i<paper.length;i++) {
             paper[i].print();
             System.out.println("请选择:");
             String s=sc.nextLine();
            char [] answers=s.toCharArray();  //将字符串转换为字符数组
            if(paper[i].check(answers)) {
                System.out.println("答案正确!\n");
            }
            else
                System.out.println("答案错误!\n");
            
                
        }
        }
    
    }

    测试截图:

  • 相关阅读:
    用PHP编写Hadoop的MapReduce程序
    zookeeper原理
    实现输出h264直播流的rtmp服务器 flash直播服务器
    HTTP Live Streaming直播(iOS直播)技术分析与实现
    谷歌技术"三宝"之BigTable
    谷歌技术"三宝"之谷歌文件系统
    谷歌技术"三宝"之MapReduce
    Ceph分层存储分析
    Ubuntu系统监控cpu memery 磁盘Io次数 IO速率 网卡 运行时间等信息的采集
    java动态加载类和静态加载类笔记
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/13347583.html
Copyright © 2020-2023  润新知