java选择填空

本文深入探讨Java语言的基础知识,包括类与对象、继承、抽象类、接口、修饰符的使用,以及Java I/O流的基本原理。解析了常见判断题背后的逻辑,帮助读者牢固掌握Java编程的关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有疑问的题已加粗,请读者谨慎考虑,若是知道确切答案,请在评论区指出,感激不尽
(文章判断选择来自于pta做题学习的总结,只对不容易记忆【或者我顺手复制】的内容进行总结和整理,如果涉及侵权或者其他不宜事宜,请通知我立刻删除)

  1. 2019年11月11日 第一次更新

1-1 java语言中不用区分字母的大写小写。 (F)
1-2 java.lang包是Java的核心类库,它包含了运行Java程序必不可少的系统类。(T)
1-3 package语句必须放到java程序的最开始。(T)
1-4 Java中所有的I/O都是通过流来实现的。(T)
1-5 Object是Java中所有类的共同父类。(T)
1-6 系统自动引入java.lang包中的所有类,因此不需要显示地使用import语句引入该包的所有类。(T)
1-7 java.lang包是Java 的核心类库,它包含了运行Java程序必不可少的系统类。(T)
1-8 在Java程序中,可以使用protected来修饰一个类. (F)

类的修饰符分为:可访问控制符和非访问控制符两种。
可访问控制符是:公共类修饰符 public
非访问控制符有:抽象类修饰符 abstract ;最终类修饰符 final
----也就是protected是不能用来修饰一个类的
java修饰符号

1-9 在Java程序中,可以使用private来修饰一个类

private 为私有的,只能在本类中访问,用于修饰属性和方法

1-10 如果一个类的声明中没有使用extends关键字,这个类被系统默认为是继承Object类。(T)
1-11 如果一个成员变量被修饰为final的,就是常量,常量必须赋给初值,而且不能再发生变化(T)
1-12 不允许使用final来修饰abstract方法。 (T)

抽象类中的抽象方法不能是final,但是非抽象方法前加final可以编译通过因为abstract和final相互排斥,前者专用于继承,后者禁止继承
抽象类中的抽象方法不能为static
非抽象方法可以为static
包裹类Integer、 String 、Float、 Double等都是final类,不能被继承!
原文链接:原文链接

1-13 对于abstract类,不能创建该类的对象。(T)

有些判断题是说“对于abstract类,不能new该类的对象。”都是错误的
相关资料
抽象类abstract
基本概念:通过在类定义前面放置关键字 abstract,可以将类声明为抽象类
抽象类是无法通过new创建的,要通过产生子类,由子类创建对象

1-14 子类如果想使用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super来表示,而且super必须是子类构造方法中的头一条语句。

稍微查了一下,有些题目没有最后一句《super必须是子类构造方法中的头一条语句》,不加语句是对的,加语句也是对的

1-15 如果在子类的构造方法中,没有使用关键字super调用父类的某个构造方法,那么默认有super();语句,即调用父类的不带参数的构造方法。

1.子类继承父类的方法属性,并重写父类的方法,子类修饰符不能比父类方法的修饰符的范围狭窄。
2.子类必须在构造函数中使用super()来调用父类的构造函数
说明:1.父类没有写构造函数(系统默认有一个无参构造函数),子类可以不写构造函数(可以理解为:子类的系统默认构造函数,默认调用了super();)
2.如果父类有无参构造函数,子类可以不写构造函数(同上理解)
3.如果父类有有参构造函数,则子类必须在自己的构造函数中显示的调用父类的构造函数即super(参数名)
4.如果父类的构造函数只有一个,且修饰符是private,则不可以被继承。
参考自「风正吹」的原创文章,

1-16 java接口的方法默认都是public abstract类型

因此我们在编写接口的实现类的时候,方法的实现前面要显式的加上public访问控制符

1-17 类在实现接口方法时必须给出方法体,并且一定要用public来修饰。
1-18 一个Java源文件就是由类和接口组成的。
1-18 case语句后如没有break,顺序向下执行。 (T)
1-19

### Java 练习题之选择填空 #### 题目一:继承与接口实现 给定以下代码片段: ```java class SuperClass { String fun1() { return "fun1"; } String fun2() { return "fun2"; } } interface Inf { void infFun(); } public class SubClass extends SuperClass implements Inf { @Override String fun2() { return "sub, " + super.fun2(); } @Override public void infFun() { System.out.println("inf fun"); } public static void main(String[] args) { SubClass sc = new SubClass(); System.out.println(sc.fun1() + ", " + sc.fun2()); } } ``` 当执行上述程序时,控制台输出的结果是什么? - A. `fun1, sub, fun2` - B. `fun1, fun2` - C. 编译错误 - D. 运行时异常 正确答案是 **A**[^1]。 #### 解析 此题目考察了Java中关于的继承以及接口实现的知识点。子重写了父的方法,并实现了接口中的抽象方法,在创建实例并调用相应函数后会得到预期输出结果。 #### 题目二:命令行参数处理 考虑下面这段简单的Java应用程序入口处对于输入参数的操作: ```java public static void main(String[] args) throws IOException { int a = args.length; } ``` 如果运行该应用时传递任何命令行参数,则变量a的值是多少? - A. null - B. 0 - C. 抛出NullPointerException - D. 确定 正确答案是 **B**[^3]。 解析这部分主要测试开发者对于Java命令行参数的理解程度。即使没有提供外部参数,默认情况下args仍是一个有效的字符串数组,只是其长度为零而已。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值