类和对象三

简介: 类和对象三

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中类和对象的基本概念,包括封装、继承、多态、抽象、接口和内部类。通过理解这些概念,你可以更好地组织你的代码,并编写出更可维护和可扩展的程序。

 

目录
相关文章
|
6月前
|
存储 编译器 C语言
C++:类和对象(上)
C++:类和对象(上)
83 0
|
Java 编译器 C++
【C++】类和对象(四)下
4.匿名对象: 实验代码:在这里插入图片描述
42 0
|
5月前
|
存储 编译器 C++
C++类和对象2
C++类和对象
|
5月前
|
C++
C++类和对象3
C++类和对象
|
5月前
|
存储 编译器 C语言
【C++】:类和对象(上)
【C++】:类和对象(上)
33 0
|
6月前
|
编译器 C++
【c++】类和对象3
【c++】类和对象3
34 1
|
6月前
|
存储 编译器 C语言
C++-类和对象(2)
C++-类和对象(2)
40 0
|
6月前
|
存储 安全 编译器
|
11月前
|
存储 安全 Java
类和对象(二)
类和对象(二)
47 1
|
6月前
|
存储 编译器 C语言
【C++】:类和对象(1)
【C++】:类和对象(1)
58 0