在 Java 中,可以嵌套类(即类内部的类),称为内部类。嵌套类的目的是将属于一起的类分组,从而使您的代码更可读和可维护。
要访问内部类,请创建外部类的对象,然后创建内部类的对象:
class OuterClass {
int x = 10;
class InnerClass {
int y = 5;
}
}
public class Main {
public static void main(String[] args) {
OuterClass myOuter = new OuterClass();
OuterClass.InnerClass myInner = myOuter.new InnerClass();
System.out.println(myInner.y + myOuter.x);
}
}
与 “普通” 类不同,内部类可以是私有的或受保护的。如果不希望外部对象访问内部类,请将类声明为私有:
class OuterClass {
int x = 10;
private class InnerClass {
int y = 5;
}
}
public class Main {
public static void main(String[] args) {
OuterClass myOuter = new OuterClass();
OuterClass.InnerClass myInner = myOuter.new InnerClass(); // 错误:无法访问私有内部类
System.out.println(myInner.y + myOuter.x);
}
}
内部类也可以是静态的,这意味着可以在不创建外部类对象的情况下访问它:
class OuterClass {
int x = 10;
static class InnerClass {
int y = 5;
}
}
public class Main {
public static void main(String[] args) {
OuterClass.InnerClass myInner = new OuterClass.InnerClass();
System.out.println(myInner.y);
}
}
注意: 静态内部类不能访问外部类的成员,就像静态属性和方法一样。
内部类的一个优势是,它们可以访问外部类的属性和方法:
class OuterClass {
int x = 10;
class InnerClass {
public int myInnerMethod() {
return x;
}
}
}
public class Main {
public static void main(String[] args) {
OuterClass myOuter = new OuterClass();
OuterClass.InnerClass myInner = myOuter.new InnerClass();
System.out.println(myInner.myInnerMethod()); // 10
}
}
内部类提供了许多优势,例如:
请根据您的需要选择合适的内部类类型。
数据抽象是隐藏某些细节并仅向用户显示必要信息的过程。
抽象可以通过抽象类或接口来实现
抽象类是一种受限制的类,不能用于创建对象(要访问它,必须从另一个类继承)。
抽象类可以使用 abstract
关键字声明。
抽象方法是一种只能在抽象类中使用的方法,它没有具体的实现体,具体的实现由子类提供。
抽象方法可以使用 abstract
关键字声明。
abstract class Animal {
public abstract void animalSound();
public void sleep() {
System.out.println("Zzz");
}
}
class Pig extends Animal {
@Override
public void animalSound() {
System.out.println("The pig says: wee wee");
}
}
class Main {
public static void main(String[] args) {
Pig myPig = new Pig();
myPig.animalSound();
myPig.sleep();
}
}
输出:
The pig says: wee wee
Zzz
抽象类和方法是 Java 中重要的概念,它们可以帮助您编写更安全、更可重用和更易于维护的代码。
为了方便其他设备和平台的小伙伴观看往期文章:
微信公众号搜索:Let us Coding
,关注后即可获取最新文章推送
看完如果觉得有帮助,欢迎 点赞、收藏、关注
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有