对于网站开发有什么要求,宜宾网站建设价格,算命公司网站建设制作开发方案,越野车网站模板21. 什么是 Java 中的内部类#xff1f;它有哪些类型#xff1f;
Java 中的内部类是定义在另一个类内部的类。内部类能够访问其外部类的成员#xff0c;包括那些声明为私有的成员。内部类是面向对象编程中的一个特色#xff0c;可以用来逻辑上组织相关的类#xff0c;并且…21. 什么是 Java 中的内部类它有哪些类型
Java 中的内部类是定义在另一个类内部的类。内部类能够访问其外部类的成员包括那些声明为私有的成员。内部类是面向对象编程中的一个特色可以用来逻辑上组织相关的类并且可以增强封装性。
内部类大致可以分为以下四种类型 成员内部类Member Inner Class 成员内部类是最普通的内部类它像外部类的一个成员一样可以访问外部类的所有成员变量和方法。即使是声明为private的成员也可以访问。成员内部类不能包含任何static变量或方法。 class OuterClass {private String name;class InnerClass {public void displayName() {System.out.println(name);}}
}局部内部类Local Inner Class 局部内部类是定义在一个块中的类例如一个方法或一个作用域块中。它们仅在该块执行时可见并且只能使用final或effectively final的局部变量。 public class OuterClass {public void someMethod() {final String name Local;class LocalInnerClass {public void displayName() {System.out.println(name);}}LocalInnerClass lic new LocalInnerClass();lic.displayName();}
}匿名内部类Anonymous Inner Class 匿名内部类是没有名称的局部内部类。它通常用于扩展一个类或实现接口的一次性使用。匿名内部类不能有构造器但可以包含初始化代码块。 public class OuterClass {public void someMethod() {Thread thread new Thread(new Runnable() {Overridepublic void run() {System.out.println(Anonymous inner class as a Runnable);}});thread.start();}
}静态内部类Static Nested Class 静态内部类与其他内部类最大的不同是它是静态的可以包含静态成员。静态内部类通常用作与外部类关联的辅助类。它们不需要外部类实例即可实例化。 class OuterClass {static class StaticNestedClass {public void displayInfo() {System.out.println(This is a static nested class);}}
}内部类提供了一种强大的方式来组织相关的类同时保持代码的可读性和可维护性。通过内部类可以更清晰地表示类之间的关系并且可以隐藏不需要对外暴露的实现细节。
22. Java 中 IO 流分为几种
在 Java 中IO输入/输出流主要分为两大类字节流Byte Streams和字符流Character Streams。每一类又可以根据其功能分为输入流和输出流。
字节流Byte Streams 输入流InputStream用于从源数据源如文件、网络等读取数据。输出流OutputStream用于向目标数据源如文件、网络等写出数据。
字节流主要包括以下类
InputStream 的子类FileInputStream、ByteArrayInputStream、FilterInputStream及其子类如 BufferedInputStream、DataInputStream 等。OutputStream 的子类FileOutputStream、ByteArrayOutputStream、FilterOutputStream及其子类如 BufferedOutputStream、DataOutputStream 等。
字符流Character Streams 输入流Reader用于从源数据源读取字符数据。输出流Writer用于向目标数据源写出字符数据。
字符流主要包括以下类
Reader 的子类FileReader、CharArrayReader、BufferedReader、InputStreamReader用于转换字节流到字符流等。Writer 的子类FileWriter、CharArrayWriter、BufferedWriter、OutputStreamWriter用于转换字符流到字节流等。
此外Java 还提供了用于序列化和反序列化对象的 ObjectInputStream 和 ObjectOutputStream它们分别继承自 InputStream 和 OutputStream。
以下是一个简单的使用 FileInputStream 和 FileOutputStream 进行文件复制的代码示例
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class FileCopy {public static void main(String[] args) {try (FileInputStream in new FileInputStream(source.txt);FileOutputStream out new FileOutputStream(destination.txt)) {byte[] buffer new byte[1024];int length;while ((length in.read(buffer)) 0) {out.write(buffer, 0, length);}} catch (IOException e) {e.printStackTrace();}}
}以上就是 Java 中 IO 流的基本分类及其简短描述。希望这个答案对您有所帮助。
【150 道精选 Java 高频面试题】请go公众号码路向前 。