概述
面向对象,常用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集合的特点?
答案
- List 集合: 有序、有重复、有索引
- 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;
}
@Override
public 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;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + ''' +
", age=" + age +
", gender='" + gender + ''' +
'}';
}
}
Man类:
package com.blb.test01;
public class Man extends Person {
@Override
public 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 {
@Override
public 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基础测试之第二次周考选择题第二章 简答题代码题的全部内容,希望文章能够帮你解决javaSE基础测试之第二次周考选择题第二章 简答题代码题所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复