Java 内部类
简介
在 Java 中,可以嵌套类(即类内部的类),称为内部类。嵌套类的目的是将属于一起的类分组,从而使您的代码更可读和可维护。
访问内部类
要访问内部类,请创建外部类的对象,然后创建内部类的对象:
1class OuterClass { 2 int x = 10; 3 4 class InnerClass { 5 int y = 5; 6 } 7} 8 9public class Main { 10 public static void main(String[] args) { 11 OuterClass myOuter = new OuterClass(); 12 OuterClass.InnerClass myInner = myOuter.new InnerClass(); 13 System.out.println(myInner.y + myOuter.x); 14 } 15}
私有内部类
与 “普通” 类不同,内部类可以是私有的或受保护的。如果不希望外部对象访问内部类,请将类声明为私有:
1class OuterClass { 2 int x = 10; 3 4 private class InnerClass { 5 int y = 5; 6 } 7} 8 9public class Main { 10 public static void main(String[] args) { 11 OuterClass myOuter = new OuterClass(); 12 OuterClass.InnerClass myInner = myOuter.new InnerClass(); // 错误:无法访问私有内部类 13 System.out.println(myInner.y + myOuter.x); 14 } 15}
静态内部类
内部类也可以是静态的,这意味着可以在不创建外部类对象的情况下访问它:
1class OuterClass { 2 int x = 10; 3 4 static class InnerClass { 5 int y = 5; 6 } 7} 8 9public class Main { 10 public static void main(String[] args) { 11 OuterClass.InnerClass myInner = new OuterClass.InnerClass(); 12 System.out.println(myInner.y); 13 } 14}
注意: 静态内部类不能访问外部类的成员,就像静态属性和方法一样。
从内部类访问外部类
内部类的一个优势是,它们可以访问外部类的属性和方法:
1class OuterClass { 2 int x = 10; 3 4 class InnerClass { 5 public int myInnerMethod() { 6 return x; 7 } 8 } 9} 10 11public class Main { 12 public static void main(String[] args) { 13 OuterClass myOuter = new OuterClass(); 14 OuterClass.InnerClass myInner = myOuter.new InnerClass(); 15 System.out.println(myInner.myInnerMethod()); // 10 16 } 17}
内部类提供了许多优势,例如:
- 提高代码的可读性和可维护性
- 允许访问外部类的成员
- 可以是静态的,以便在不创建外部类对象的情况下使用
请根据您的需要选择合适的内部类类型。
Java 抽象类和方法
数据抽象
数据抽象是隐藏某些细节并仅向用户显示必要信息的过程。
抽象可以通过抽象类或接口来实现
抽象类
抽象类是一种受限制的类,不能用于创建对象(要访问它,必须从另一个类继承)。
抽象类可以使用 abstract 关键字声明。
抽象方法
抽象方法是一种只能在抽象类中使用的方法,它没有具体的实现体,具体的实现由子类提供。
抽象方法可以使用 abstract 关键字声明。
示例
1abstract class Animal { 2 public abstract void animalSound(); 3 4 public void sleep() { 5 System.out.println("Zzz"); 6 } 7} 8 9class Pig extends Animal { 10 @Override 11 public void animalSound() { 12 System.out.println("The pig says: wee wee"); 13 } 14} 15 16class Main { 17 public static void main(String[] args) { 18 Pig myPig = new Pig(); 19 myPig.animalSound(); 20 myPig.sleep(); 21 } 22}
输出:
1The pig says: wee wee 2Zzz
为什么使用抽象类和方法?
- 为了实现安全性 - 隐藏对象的某些细节,仅显示其重要细节。
- 为了促进代码重用 - 抽象类可以提供通用的功能,子类可以根据需要进行扩展。
- 为了提高代码的可读性和可维护性 - 抽象类可以帮助将代码组织成逻辑模块。
注意
- 抽象类不能被实例化。
- 抽象类可以包含抽象方法和常规方法。
- 子类必须重写所有抽象方法,否则子类也是抽象类。
总结
抽象类和方法是 Java 中重要的概念,它们可以帮助您编写更安全、更可重用和更易于维护的代码。
最后
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
