Java测试错题解析:基础与面向对象

需积分: 14 0 下载量 164 浏览量 更新于2024-08-05 收藏 17KB DOCX 举报
"PTA_2022java测试1-基础程序设计&&测试2-面向对象_个人错题汇总" 在PTA上进行的2022年Java测试涵盖了基础程序设计和面向对象两大主题。这个错题汇总旨在帮助学习者识别并纠正他们在编程实践中的常见错误,以提升技能和知识。 ### Java基础程序设计知识点 1. **数据类型的固定长度**:Java的内置数据类型如int、byte、char等都有固定的内存大小,不会因平台不同而变化。这确保了代码的可移植性。 2. **变量命名规则**:Java允许使用汉字作为变量名,体现了其对多语言的支持。 3. **数组大小的不变性**:一旦数组在创建时指定了大小,就不能在程序运行过程中更改。如果需要动态调整大小,可以使用ArrayList等集合类。 4. **标识符的规则**:标识符可以包含字母、数字、美元符号($)和下划线(_),但不能以数字开头。选项D (22) 是非法的Java标识符。 ### 面向对象知识点 1. **构造函数**:虽然Java类可以没有显式定义的构造函数,但系统会提供一个默认的无参构造函数。因此,构造函数并非总是必需的,但编写自定义构造函数可以满足特定初始化需求。 2. **修饰符的使用**:类、属性和方法可以使用多个修饰符,如public、private、protected和static等,以控制访问权限和范围。 3. **main方法和静态成员**:main方法是程序的入口点,必须是静态的。静态变量(如`static int q`和`static void fun()`)可以直接通过类名访问,无需实例化对象。 4. **构造函数的理解**:构造函数在创建对象时执行,用于初始化对象的状态。A选项错误,因为构造函数在某些情况下是必需的;B选项错误,因为构造函数与类同名,但方法可以与类同名;C选项正确;D选项错误,一个类可以有多个构造函数(构造函数重载)。 5. **抽象方法和修饰符**:abstract关键字用于声明抽象方法,这种方法没有具体实现(即没有大括号)。因此,D选项是正确的。 6. **局部变量**: - 局部变量的作用域仅限于定义它的代码块内。 - 它们不能被修饰符如static或final修饰。 - 局部变量必须在使用前初始化,否则编译器会报错。 - C选项错误,局部变量可以与类中的成员变量同名,只要它们的作用域不冲突。 7. **局部内部类**: - 局部内部类只能在其定义的类或方法内使用,A选项错误。 - 它不能包含静态成员,B选项正确。 - 可以访问外部类的所有成员,包括私有成员,C选项正确。 - 内部类不能被private、protected或public等访问修饰符修饰,因为它们的访问权限由包含它们的外部类决定,D选项正确。 8. **代码示例**: ```java public class Test { public static void main(String[] args) { String str = "ABCDE"; str.substring(3); // 不会改变原字符串 str.concat("XYZ"); // 同样不会改变原字符串,需重新赋值 System.out.println(str); // 仍为"ABCDE" } } ``` 这段代码展示了对字符串操作的常见误解。substring和concat方法都不会改变原字符串,需要将结果赋值回str才能更新字符串。 通过总结这些错题,我们可以更好地理解Java的基础概念和面向对象编程的核心原则,从而避免类似的错误,提升编程能力。