类和对象三

简介: 类和对象三

Dog(); // Dog对象赋值给Speakable引用

复制代码

 

// 调用抽象类和接口中定义的方法

 

animal.makeSound(); // 输出 "The dog barks."

 

speakable.speak(); // 输出 "The dog says, 'Woof!'"

 

}

}

复制代码

 

**Java类和对象实例(七):内部类**

 

 

 

内部类(Inner Class)是定义在另一个类内部的类。内部类可以访问外部类的私有成员,这是它们的主要优势之一。内部类可以分为四种类型:静态内部类、实例内部类、局部内部类和匿名内部类。

 

 

 

**静态内部类(Static Inner Class)**

 

 

 

静态内部类不需要外部类对象即可创建实例,它们只能访问外部类的静态成员。

 

 

 

```java

 

public class OuterClass {

 

static int outerVariable = 100;

 

 

 

// 静态内部类

 

static class StaticInnerClass {

 

void display() {

 

System.out.println("This is a static inner class.");

 

System.out.println("outerVariable = " + outerVariable);

 

}

 

}

 

 

 

public static void main(String[] args) {

 

// 创建静态内部类的实例,不需要外部类对象

 

StaticInnerClass innerObject = new StaticInnerClass();

 

innerObject.display();

 

}

 

}

实例内部类(Instance Inner Class)

实例内部类需要外部类对象才能创建实例,它们可以访问外部类的所有成员(包括私有成员)。

java复制代码

 

public class OuterClass {

 

private int outerVariable = 100;

 

 

 

// 实例内部类

 

class InstanceInnerClass {

 

void display() {

 

System.out.println("This is an instance inner class.");

 

System.out.println("outerVariable = " + outerVariable);

 

}

 

}

 

 

 

public void show() {

 

// 创建实例内部类的实例,需要外部类对象

 

InstanceInnerClass innerObject = new InstanceInnerClass();

 

innerObject.display();

 

}

 

 

 

public static void main(String[] args) {

 

OuterClass outerObject = new OuterClass();

 

outerObject.show();

 

}

 

}

局部内部类(Local Inner Class)

局部内部类是在方法内部定义的类,它们只能访问定义它们的方法的final变量。

java复制代码

 

public class OuterClass {

 

public void someMethod() {

 

final int x = 10;

 

 

 

// 局部内部类

 

class LocalInnerClass {

 

void display() {

 

System.out.println("This is a local inner class.");

 

System.out.println("x = " + x);

 

}

 

}

 

 

 

// 创建局部内部类的实例

 

LocalInnerClass innerObject = new LocalInnerClass();

 

innerObject.display();

 

}

 

 

 

public static void main(String[] args) {

 

OuterClass outerObject = new OuterClass();

 

outerObject.someMethod();

 

}

 

}

匿名内部类(Anonymous Inner Class)

匿名内部类是没有名字的内部类,它们通常用于实现接口或扩展类,并且只使用一次。

java复制代码

 

public class OuterClass {

 

interface MyInterface {

 

void doSomething();

 

}

 

 

 

public void useInterface() {

 

// 创建匿名内部类实例

 

MyInterface myObj = new MyInterface() {

 

@Override 

 

public void doSomething() {

 

System.out.println("Doing something anonymously.");

 

}

 

};

 

 

 

// 调用接口方法

 

myObj.doSomething();

 

}

 

 

 

public static void main(String[] args) {

 

OuterClass outerObject = new OuterClass();

 

outerObject.useInterface();

 

}

 

}

这些示例涵盖了Java中类和对象的基本概念,包括封装、继承、多态、抽象、接口和内部类。通过理解这些概念,你可以更好地组织你的代码,并编写出更可维护和可扩展的程序。

 

目录
相关文章
|
存储 数据采集 数据挖掘
质量追溯系统方案
质量追溯系统方案
539 1
|
存储 JavaScript API
vue中使用Pinia和Vuex详解
我们使用Vue2的时候,Vuex作为一个状态管理工具在组件中使用方便了很多。Vue3推出后,虽然相对于Vue2很多东西都变了,但是核心的东西还是没有变的,比如说状态管理、路由等等。实际上,pinia就是Vuex的升级版,官网也说过,为了尊重原作者,所以取名pinia,而没有取名Vuex,所以大家可以直接将pinia比作为Vue3的Vuex。
370 0
|
Linux 编译器
目录文件篇
目录文件篇
128 1
|
移动开发 缓存 前端开发
2022年前端面试集锦
2022年前端面试集锦
107 0
|
消息中间件 Unix Linux
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(上)
【Linux 系统】进程间通信(匿名管道 & 命名管道)-- 详解(上)
|
数据可视化 数据挖掘 数据处理
航空航天系统工程是应用系统工程原理和方法,对航空航天系统进行规划、设计、制造、试验和管理的技术。
航空航天系统工程是应用系统工程原理和方法,对航空航天系统进行规划、设计、制造、试验和管理的技术。
|
Java 程序员 C++
Java中CAS详解
Java中CAS详解
277 0
|
机器学习/深度学习 人工智能 自然语言处理
Python 与 TensorFlow2 生成式 AI(四)(2)
Python 与 TensorFlow2 生成式 AI(四)
124 2
|
安全 Java
AtomicInteger 的使用
AtomicInteger 的使用
117 1
|
Java 数据处理
IO实例一
IO实例一
108 5