21xrx.com
2024-12-23 03:57:47 Monday
登录
文章检索 我的文章 写文章
《Java内部类:实现面向对象编程的新思路》
2023-06-14 23:22:36 深夜i     --     --
Java内部类 成员内部类 面向对象编程

Java内部类是一种非常有用的编程技术,它可以让我们更好地实现面向对象编程的思想。内部类可以被看作是一种特殊的类,它可以被定义在另一个类的内部,访问外部类的成员变量和方法,并且可以直接访问外部类的私有属性。这篇文章将为您介绍Java内部类的基础知识,以及如何实现一个简单的Java内部类。

Java内部类的基础知识

Java内部类分为四种类型:成员内部类、局部内部类、匿名内部类和静态内部类。其中,成员内部类是最常用的一种类型。成员内部类和外部类是相关的,可以直接访问外部类的成员变量和方法。局部内部类和匿名内部类只能在定义它们的方法中使用,不能被其他方法访问。静态内部类和普通类一样,它们是独立的,不能访问外部类的非静态成员。

如何实现一个简单的Java内部类

现在,我们来实现一个利用Java内部类实现面向对象编程思想的代码案例。假设我们有一个图形类,它有两个子类:矩形和圆形。我们可以用内部类来定义一个形状类,然后让矩形和圆形继承形状类。下面是代码示例:


public abstract class Shape {

  public abstract void draw();

}

public class Rectangle {

  private int length;

  private int width;

  public Rectangle(int length, int width)

    this.length = length;

    this.width = width;

  

  class RectangleShape extends Shape {

    public void draw() {

      for (int i = 0; i < length; i++) {

        for (int j = 0; j < width; j++) {

          System.out.print("*");

        }

        System.out.println();

      }

    }

  }

  public void draw() {

    RectangleShape shape = new RectangleShape();

    shape.draw();

  }

}

public class Circle {

  private int radius;

  public Circle(int radius)

    this.radius = radius;

  

  class CircleShape extends Shape {

    public void draw() {

      for (int i = 0; i <= 2 * radius; i++) {

        for (int j = 0; j <= 2 * radius; j++) {

          int x = i - radius;

          int y = j - radius;

          if (x * x + y * y <= radius * radius) {

            System.out.print("*");

          } else {

            System.out.print(" ");

          }

        }

        System.out.println();

      }

    }

  }

  public void draw() {

    CircleShape shape = new CircleShape();

    shape.draw();

  }

}

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复