LZWcc's Blog

Back


知识点#


PTA#

import java.util.*;
// 主函数写法
public class Main {
    public static void main(String[] args) {}
}
java

25年java实验题目集-继承与多态#

interface Performable {
    void play();	// 等价于public abstract void play();
}
class Monkey implements Performable {}
class Coach {
    public void check(Performable p) { p.play(); }	// 多态
}
java

头歌#

Java中的异常#

检测型异常(Checked Exception)

要么 try-catch, 要么 throws 抛到上层

public static void main(String[] args) throws FileNotFoundException {
    test();
}
public static void test() throws FileNotFoundException {
    File file = new File("abc");
    if(!file.exists()){		//判断文件是否存在
        //文件不存在,则 抛出 文件不存在异常
        throw new FileNotFoundException("该文件不存在");
    }else{
        FileInputStream fs = new FileInputStream(file);
    }
}
java

运行时异常(Uncheckce Exception): 不需要在方法上声明 throws

自定义异常#

str.charAt(i)取出字符串的第 i个字符

Chacter.isDigit(char ch)判断某个字符是否是数字字符

if (!sc.hasNextLine()) break; // 检查是否有下一行输入, 若没有, 则break
String line = sc.nextLine().trim(); 	// 读取完整的一行字符串
String[] parts = line.split("\\s+");	// 按空白字符分割字符串
if (parts.length < 2) {
    throw new NoSuchElementException();
}
java

清览#

面向对象-第四章-1-作业#

在调用方法时, 若要使方法改变实参的值, 可以用对象作为参数

重载(Overload):同一类中,方法名相同,但参数的个数、类型、顺序不同**(至少满足一项)**, 仅返回值类型不同不构成重载

覆盖(Override):子类重写父类的方法,要求方法名、参数、返回值完全一致

构造函数没有返回值类型(不是void型)

被 private修饰的成员变量只能被该类自身访问和修改, 调用

Java 类默认会有一个 “隐式的无参构造方法”,但只要手动定义了任意构造方法,这个默认的无参构造方法就不再自动生成

匿名内部类

面向对象-第五章-1-作业#

接口的正确定义需遵循以下规则

  1. 关键字:用 interface声明(不能用 abstract修饰,接口默认是抽象的);
  2. 继承:接口可以通过 extends继承多个其他接口(类不支持多继承,但接口支持);
interface 接口名 extends 父接口1, 父接口2 {
    // 抽象方法(无方法体)
    返回值类型 方法名(参数列表);
}
java

String[] args 和 String args[] 是数组声明的两种等价写法(前者是更推荐的 “数组类型 + 变量名” 风格,后者是兼容 C 语言的写法)。

  1. 类修饰符:abstract(抽象类,需被继承)与 final(最终类,禁止继承)不能同时修饰类;
  2. 方法修饰符:abstract(抽象方法,需被重写)与 private(私有方法,无法继承)不能共存;abstract 方法不能有方法体;
  3. 变量修饰符:protected(受保护访问)与 private(私有访问)是互斥访问修饰符,不能同时修饰变量。
    • 接口本身不能用 abstract 修饰(默认抽象);
    • 接口的方法默认是 public abstract(只能用这两个修饰符);
    • 接口的变量默认是 public static final。

面向对象-第五章-2-作业#

Java编程所必须的默认引用包为 java.lang包

使用 Iterator遍历集合时,必须通过 Iterator自身的 remove()方法删除元素

在Java中, 用 package 语句说明一个包时, 该包的层次结构必须与文件目录的层次相同

实现多重继承效果方式是接口(Interface)

  1. 接口定义:用 interface关键字声明,接口中的方法默认是 public abstract(可省略,但显式写 abstract也合法)。
  2. 类实现接口:类通过 implements关键字实现多个接口(模拟 “多重继承”,因为 Java 类仅支持单继承,但可实现多个接口)。
  3. 规则:实现接口的类必须重写接口中所有抽象方法。

面向对象-第六章-配套试卷#

若方法内部调用了IOException, 需要在方法声明处通过 throws关键字声明该异常

public void methodName throws IOException {}
java

Java 异常分为检查型异常(编译期强制处理)和非检查型异常(运行时异常,编译期不强制处理)。

  • A. NullPointerException:空指针异常,属于运行时异常(非检查型)。
  • B. ClassCastException:类型转换异常,属于运行时异常(非检查型)。
  • C. FileNotFoundException:文件未找到异常,属于检查型异常,编译期要求必须声明或捕获。
  • D. IndexOutOfBoundsException:索引越界异常,属于运行时异常(非检查型)。

面向对象-第七章-配套试卷#

Chartacter流与Byte流的区别是(前者是字符读写, 后者是字节读写)

选项分析结论
A.BufferedWriter属于面向字符的输出流,用于缓冲字符写入操作,并非输入流。错误
B.FileInputStream属于面向字节的输入流,以字节为单位读取文件数据,不是字符流。错误
C.ObjectInputStream属于对象输入流,用于读取序列化的对象数据,本质是字节流的扩展,并非字符流。错误
D.InputStreamReader是字节流到字符流的转换流,将字节输入流转换为面向字符的输入流,属于字符输入流的范畴。正确
选项分析结论
A.new BufferedWriter(new FileWriter("a.txt"))BufferedWriter 接收 Writer 类型参数,FileWriter 是 Writer 的子类,语法合法。正确
B.new BufferedReader(new FileInputStream("a.dat"))BufferedReader 要求接收 Reader 类型参数,但 FileInputStream 是字节流(属于 InputStream 类),并非字符流(Reader 类),类型不匹配,语法错误。错误
C.new GZIPOutputStream(new FileOutputStream("a.zip"))GZIPOutputStream 接收 OutputStream 类型参数,FileOutputStream 是 OutputStream 的子类,语法合法。正确
D.new ObjectInputStream(new FileInputStream("a.dat"))ObjectInputStream 接收 InputStream 类型参数,FileInputStream 是 InputStream 的子类,语法合法。正确
面向对象程序设计-- 期末复习笔记
https://lzwcc.xyz/blog/oop-final-exam/
Author LZWcc
Published at December 21, 2025