面向对象,常用API,集合

  • 选择题
    • 第01题【单选】
    • 第02题【单选】
    • 第03题【单选】
    • 第04题 【多选】
    • 第05题【多选】
  • 第二章 简答题
    • 第01题
    • 第02题
    • 第03题
    • 第04题
    • 第05题
  • 代码题
    • 第一题
    • 第二题

选择题

第01题【单选】

以下说法描述当中,正确的是( )

A、 Java面向对象的三大特性是 封装、继承、接口。

B、 Java 支持多继承。

C、 Java 抽象类当中,没有构造方法。

D、Java 继承当中,创建子类对象的时候,必须执行父类构造方法。

题目正确答案: D

答案解析:
A. Java面向对象的三大特性是 封装、继承、多态
B. Java不支持多继承。Java支持 单一继承和多重继承
C. Java的抽象类,有构造方法。目的是为了在创建子类对象的时候,给父类成员变量初始化数据。

第02题【单选】

以下说法描述中,错误的是( )

A、 Calendar 类的使用,需要先创建对象,再调用方法。

B、 Object 类是所有类的父类,它里面的所有方法,都可以被子类使用。

C、 Integer类是int类型的包装类,可以完成字符串转换成为int的操作。

D、如果一个类,想要进行排序操作,则需要实现 Comparable接口

题目正确答案: A
答案解析:
A. 我们的 Calendar 类使用的方式是 Calendar cal = Calendar.getInstance(); 这里由于 Calendar是抽象类,他不能创建对象
B. Object类要所有类的父类,里面的方法,要么要 public 修饰,要么要 protected 修饰。 private修饰registerNatives的方法,在静态代码块当中,创建对象的时候,也可以被调用
C. 字符串转换int类型的方式是 Integer.parseInt(“520”);
D. 内部比较器,使用的就是 Comparable接口 需要重写 compareTo()方法

第03题【单选】

观察下面代码,请分析,请问答案是( )

public class Test{public static void main(String[] args){String str = new String("abc");//问题: 这里创建了几个对象?}
}

A、1个对象

B、2个对象

C、3个对象

D、1个或2个对象

题目正确答案: B
答案解析:
第一个指的是 new 出来的 String 对象,直接存放在 堆内存当中。
第二个指的是 “abc” 字符串胡对象,存在于 堆内存的常量池当中。

第04题 【多选】

关于 泛型说法错误的是( )

A、 泛型可以使用基本数据类型,也可以使用引用数据类型

B、 泛型包括有泛型类、泛型方法、泛型接口、泛型通配符等

C、 泛型是一种不明确的数据类型,定义的时候不会给出具体类型,使用才会给出具体类型。

D、泛型的上限限定是采用 super 关键字,泛型的下限限定采用 extends 关键字

题目正确答案:AD
答案解析:
A. 泛型只能是引用数据类型,即使存放整数 13 也是按照 Integer的对象存放的
D. 泛型的上限限定采用的要 extends 关键字, 泛型的下限限定采用的要 super 关键字

第05题【多选】

关于集合说法正确的是( )

A、 单列集合的顶层父接口是 Collections

B、 所有的单列集合,都可以使用迭代器来完成遍历的操作。

C、 集合可以存储基本数据类型

D、ArrayList 集合查询的效率比 LinkedList 集合的效率更高

题目正确答案:BD
答案解析:
A. 单列集合的顶层父接口是 Collection 并不是 Collections, Collecions是工具类
C. 集合只能存储引用数据类型,如果是基本数据类型,以自动装箱的包装类存储的

第二章 简答题

第01题

题目

观察下面代码,说明结果,解释原因?
String s1 = “ab”;
String s2 = “c”
String s3 = “ab” + “c”;
String s4 = s1 + s2;
请问: s3 == s4 执行的结果是什么?为什么?

答案

false
说明:s3 是常量相加。直接加,会在堆内存的常量池当中的地址。
s4是变量相加,相加的过程,实际上会创建新的对象,是堆内存的地址。(备注:底层是StringBuilder的append方法)

第02题

题目

举例说明,多态当中的转型方式和注意的问题?

答案

转型分为两类:
1. 向上转型
2. 向下转型(需要注意类型转换异常 ClassCastException)
例如:
Animal aa = new Dog(); //向上转型
Dog dd = (Dog)aa; //向下转型

第03题

题目

请说明,方法重载和方法重写的区别?

答案

方法重载:同一个类,同名方法,参数不同。(个数、类型、顺序)
方法重写:父子关系当中,出现了相同的方法

第04题

题目

简述一下SimpleDateFormat 的作用和方法举例?

答案

SimpleDateFormat 的作用主要有两点:
1. 格式化 String s = sdf.format(Date对象);
2. 解析 Date d = sdf.parse(字符串文本);

第05题

题目

说明一下 List集合、Set集合的特点?

答案

  1. List 集合: 有序、有重复、有索引
  2. Set 集合: 无序、无重复、无索引

代码题

第一题


代码答案
Hero类:

public class Hero {private String  name;private int age;private  int score;public Hero() {}public Hero(String name, int age) {this.name = name;this.age = age;
//        this.score = score;}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;}public int getScore() {return score;}public void setScore(int score) {this.score = score;}@Overridepublic String toString() {return "Hero{" +"name='" + name + '\'' +", age=" + age +", score=" + score +'}';}public static int  getScore111(){int score=0;Random random=new Random();score =random.nextInt(100-0+1)+0;return score;}
}

测试类:

public class Test {public static void main(String[] args) {ArrayList<Hero> list= new ArrayList<>();int [] arr=new int[10];Hero hero1=new Hero("疾风剑豪",29);Hero hero2=new Hero("德邦总管",25);Hero hero3=new Hero("嘉文四世",24);Hero hero4=new Hero("盲僧",30);Hero hero5=new Hero("艾瑞莉娅",21);int s1 = hero1.getScore111();arr[0]=s1;hero1.setScore(s1);int s2= hero2.getScore111();arr[1]=s2;hero2.setScore(s2);int s3= hero3.getScore111();arr[2]=s3;hero3.setScore(s3);int s4= hero4.getScore111();arr[3]=s4;hero4.setScore(s4);int s5= hero5.getScore111();arr[4]=s5;hero5.setScore(s5);list.add(hero1);list.add(hero2);list.add(hero3);list.add(hero4);list.add(hero5);int max=-1,index=0;for (int i = 0; i < arr.length; i++) {if(max<arr[i]){max=arr[i];index=i;}}System.out.println("姓名 年龄 成绩");for (Hero hero : list) {System.out.println(hero.getName()+" "+hero.getAge()+" "+hero.getScore());}switch (index){case 0:System.out.println("最终的MVP选手是:"+ hero1.getName());break;case 1:System.out.println("最终的MVP选手是:"+ hero2.getName());break;case 2:System.out.println("最终的MVP选手是:"+ hero3.getName());break;case 3:System.out.println("最终的MVP选手是:"+ hero4.getName());break;case 4:System.out.println("最终的MVP选手是:"+ hero5.getName());break;}}}

第二题


测试图:

Person类:

package com.blb.test01;public abstract class Person {private  String name;private  int age;private  String gender;public abstract void work();public Person() {}public Person(String name, int age, String gender) {this.name = name;this.age = age;this.gender = gender;}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;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}@Overridepublic String toString() {return "Person{" +"name='" + name + '\'' +", age=" + age +", gender='" + gender + '\'' +'}';}
}

Man类:

package com.blb.test01;public class Man extends Person {@Overridepublic void work() {System.out.println("挣钱养家");}public void  drink(){System.out.println("我能喝五瓶酒!");}public  char xm(){String name = this.getName();char c=name.charAt(0);return c;}
}

Woman类:

package com.blb.test01;import java.util.Calendar;
import java.util.Random;public class Woman extends Person {@Overridepublic void work() {System.out.println("貌美如花");}Calendar c = Calendar.getInstance();int week = c.get(Calendar.DAY_OF_WEEK)-1;public  void   breed(Man man){boolean flag=false;//默认男孩if(this.getAge()>=20 && man.getAge()>=22){int sex=getSex();if (sex%2==0){System.out.println("他们的小孩子是女性,姓名是:"+man.xm()+week);}else{System.out.println("他们的小孩子是男性,姓名是:"+man.xm()+week);}}else{System.out.println("不符合生育条件");}}public static int  getSex(){int score=0;Random random=new Random();score =random.nextInt(100-1+1)+1;return score;}}

测试类:

package com.blb.test01;import java.util.Calendar;
import java.util.Scanner;@SuppressWarnings("all")
public class Test {public static void main(String[] args) {System.out.println("请输入男人的姓名,年龄");Scanner in = new Scanner(System.in);Man man1=new Man();String name1=in.next();man1.setName(name1);int age1=in.nextInt();man1.setAge(age1);String gender1=in.next();man1.setGender(gender1);Man man2=new Man();String name2=in.next();man2.setName(name2);int age2=in.nextInt();man2.setAge(age2);String gender2=in.next();man2.setGender(gender2);man1.work();man1.drink();System.out.println("请输入女人的姓名,年龄");Woman woman1=new Woman();String name3=in.next();woman1.setName(name3);int age3=in.nextInt();woman1.setAge(age3);String gender3=in.next();woman1.setGender(gender3);Woman woman2=new Woman();String name4=in.next();woman2.setName(name4);int age4=in.nextInt();woman2.setAge(age4);String gender4=in.next();woman2.setGender(gender4);woman1.work();woman1.breed(man1);}
}

javaSE基础测试之第二次周考相关推荐

  1. 第二次周考题目答案整理

    1. 请说明python2与python3中的默认编码是什么?(1分) python2默认编码是askii,python默认编码是unicode View Code 2. re是什么?,有什么⽤(1分 ...

  2. 计算机应用第1次行考0001,四川电大5110083 计算机应用基础第二次形考_0001答案

    计算机应用基础第二次形考_0001 试卷总分:100       测试时间:480分钟 剩余时间:479分48秒 判断题单项选择题 多项选择题 一.判断题(共 10 道试题,共 30分.每小题3分,共 ...

  3. 江开计算机应用基础第二次形考,江开计算机应用基础第二次形考作业

    江开计算机应用基础第二次形考作业及答案 作业说明: 1.做作业之前首先在封面填上自己的学号和姓名,做完作业后请写上作业完成时间. 2.学习完第二单元计算机网络等内容之后必须完成本次作业,并请在规定时间 ...

  4. JavaSE入门0基础笔记 第二章Java基础语法

    JavaSE入门0基础笔记 第二章Java基础语法 1.运算符 1.1算术运算符 1.1.1运算符和表达式 1.1.2 算术运算符 1.1.3字符的"+"操作 1.1.4 字符串中 ...

  5. 厚基础Linux——第二周作业

    文章目录 厚基础Linux--第二周作业 按系列罗列Linux的发行版,并描述不同发行版之间的联系与区别. SlackWare SUSE DeBian Ubuntu RedHat RedHat Lin ...

  6. java学习之路之javaSE基础1

    <h2>java学习之路之javaSE基础1</h2> <div> ###01.01_计算机基础知识(计算机概述)(了解) * A:什么是计算机?计算机在生活中的应 ...

  7. JavaSE基础笔记——常用API、Lambda、常见算法

    日期与时间 时间日期是在任何一个程序系统里几乎都不可能忽略掉的数据量,而且大量的算法在底层都会使用到时间日期数据值作为算法的基本种子(随机数算法或加密算法都经常用到). 计算机里,时间日期的本质 作为 ...

  8. 计算机应用基础教学计划第二学期,师范学院《计算机应用基础》第二学期教学计划...

    师范学院<计算机应用基础>第二学期教学计划 (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 淄博师专2010 - 2011学 ...

  9. javaSE基础04

    javaSE基础04 一.三木运算符 <表达式1> ? <表达式2> : <表达式3> "?"运算符的含义是: 先求表达式1的值, 如果为真, ...

最新文章

  1. 微信基础服务肯定不收费
  2. crank storyboard学习笔记(一)环境安装
  3. mysql删除端口配置文件,linux中的Mysql的安装、重置安装密码、修改权限详解
  4. java gc 触发_Java GC种类和触发时机
  5. php 循环多条件,怎么循环带条件的数组
  6. 电脑重启f12怎么处理_电脑开机按f12怎么恢复系统(详解f12的使用方法)
  7. msdb 数据库_如何检索有关存储在MSDB数据库中的SSIS包的信息
  8. linux 帐号 配置sftp_Linux 下sftp配置之密钥方式登录详解
  9. c语言函数 参数,C语言函数的调用与参数
  10. Django 面试题
  11. 电脑使用小常识(4):让win10强制更新棍淡
  12. H5 --(解决)ios的webview中上/下拉露出黑灰色背景问题
  13. 【Pygame小游戏】魂斗罗经典BOSS都回来了 准备好再次击败他们了吗?(附源码)
  14. 在外包公司工作是什么样的体验?
  15. 弗吉尼亚理工大学计算机科学,弗吉尼亚理工大学计算机科学研究生专业.pdf
  16. 互联网晚报| 8月18日|未婚已育女性办理生育津贴不需要结婚证;拼多多将上线跨境电商平台;小米汽车将采用宁德时代麒麟和比亚迪刀片...
  17. Linux——读写锁
  18. java 分批次处理大数据量数据
  19. Cyber security和Network security的区别
  20. LeetCode笔记:原地修改数组

热门文章

  1. SHA-1 加密算法破解现已只需要 10 天
  2. 人工智能在医疗领域的不同层次
  3. Azure机器学习——计算目标03:使用 Azure机器学习工作室配置计算目标
  4. winform退出/关闭窗体时,弹窗温馨提示
  5. 【文献阅读】用于zero-shot识别的双曲视觉嵌入学习网络(S. Liu等人,CVPR,2020)
  6. 高并发服务器构架SEDA是什么?有什么特点?
  7. lucene(一):lucene是什么?
  8. linux 内核调试文件夹,Linux 内核测试和调试(5)
  9. 刑事案件管辖规定有哪些
  10. rt-thread驱动篇(08)---STM32F429单片机NAND FLASH驱动