爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      图书管理系统——Java版

      首页 知识中心 软件开发 文章详情页

      图书管理系统——Java版

      2025-02-11 09:38:01 阅读次数:14

      图书,子类,方法,构造方法,父类,用户,菜单

      图书管理系统菜单

      图书管理系统——Java版

      图书管理系统——Java版

      上面是根据选择不同用户,从而弹出的不同菜单。 

      基本框架:

      先把大的框架搭建出来。这里我们要用到三个对象:书、书架、用户。

      书:

      一些基本属性:

      public class Book {
          private String name; // 书名
          private String author; // 作者
          private int price; // 价格
          private String type; // 类型
          private int count; // 数量
          private int lentCount; // 被借出的数量
      }

      用到private是为了防止所有人都可以拿到这些属性并且修改。

      构造方法:

      public Book(String name, String author, int price, String type, int count) {
              // 书一直在图书馆中,只有当新增或者删除才变动。而新增的书并不会一下子就被借出
              // 因此不需要初始化被借出的数量
               = name;
              this.author = author;
              this.price = price;
              this.type = type;
              this.count = count;
          }

      构造方法是为了在创建一个书的实例(新增)时初始化书的。 

      getter 、setter 方法:

      // 下面这些方法是用来修改书的状态的
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
               = name;
          }
      
          public String getAuthor() {
              return author;
          }
      
          public void setAuthor(String author) {
              this.author = author;
          }
      
          public int getPrice() {
              return price;
          }
      
          public void setPrice(int price) {
              this.price = price;
          }
      
          public String getType() {
              return type;
          }
      
          public void setType(String type) {
              this.type = type;
          }
      
          public int getCount() {
              return count;
          }
      
          public void setCount(int count) {
              this.count = count;
          }
      
          public int getLentCount() {
              return lentCount;
          }
      
          public void setLentCount(int lentCount) {
              this.lentCount = lentCount;
          }

      通过getter、setter方法来访问和修改书的属性。

      重写toString 方法:

      // 重写toString方法,以便于更好的打印
          @Override
          public String toString() {
              return "Book{" +
                      "name='" + name + '\'' +
                      ", author='" + author + '\'' +
                      ", price=" + price +
                      ", type='" + type + '\'' +
                      ", count=" + count +
                      ", lentCount=" + lentCount +
                      '}';
          }

      我们后面在查找和显示书时,要把书的全部信息给都给打印出来,因此得重写toString 方法。

      书架: 

      属性: 

      public class BookList {
          // 书架里面原本应该有书才对
          // 书架是用来存放和管理书籍的,可以用顺序表(数组)来写
          private Book[] books = new Book[10]; // 为了方便,只放了3本书
          private int usedSize; // 书架已经使用的长度
      }

      getter、setter 方法:

          public Book[] getBooks() {
              return books;
          }
      
          public void setBooks(Book[] books) {
              this.books = books;
          }
      
          public int getUsedSize() {
              return usedSize;
          }
      
          public void setUsedSize(int usedSize) {
              this.usedSize = usedSize;
          }

      构造方法:

          // 初始化3本书
          public void func() {
              this.books[0] = new Book("Head First Java",
                      "Kathy Sierra 、 Bert Bates",
                      79, "计算机", 100);
              this.books[1] = new Book("Java 核心技术 卷I",
                      "Cay S. Horstmann",
                      119, "计算机", 100);
              this.books[2] = new Book("大话数据结构",
                      "程杰", 59, "计算机", 100);
              this.usedSize = 3;
          }
      
          public BookList() {
              this.func();
          }

      构造方法用来初始化书架的,也就是创建书的实例放到书架上。

      用户: 

          public abstract class User{
          protected String name; // 因为这个name其子类也得使用
          public User(String name) {
               = name;
          }

      因为用户有两种,所以User肯定不能知道是哪一种。因此就用抽象类来写。

      普通用户:

      public class RegularUsers extends User{
          public RegularUsers(String name) {
              super(name);
          }
      }

      管理员用户: 

      public class Administrators extends User{
          public Administrators(String name) {
              super(name);
          }
      }

      对象创建完毕,接下来就要开始让对象之间进行交互了。

      前面我们看到了,不同的用户,根据选择的不同,会弹出不同功能菜单。这个有没有一种很熟悉的感觉,没错这就是我们在前面学习的多态。接下来就是要找多态的条件了:子类对象给到父类引用;子类重写父类当中的方法;通过父类引用调用被重写的方法。在上面的分析中,只有用户之间存在父子类关系。那么我们就可以在设计菜单时,根据选择的不同返回不同的用户对象。返回值就用父类接收,父类在调用功能菜单时,根据是哪一个子类,从而会调用不同的菜单。

      登录菜单:

          public static User login() {
              System.out.print("请输入您的姓名:");
              Scanner scanner = new Scanner(System.in);
              String name = scanner.nextLine();
      
              System.out.println("请选择您的身份:1. 管理员;2. 普通用户");
              int n = scanner.nextInt();
              // 根据选择的不同,弹出不同的界面 (这里我们就可以采用多态的方式来写)
      
              while (true) {
                  if (n == 1) {
                      System.out.println("登录成功!");
                      // 如果是管理员就返回管理员对象
                      return new Administrators(name);
                  }else if (n == 2) {
                      System.out.println("登录成功!");
                      // 如果是普通用户就返回普通用户对象
                      return new RegularUsers(name);
                  }else {
                      System.out.println("登录失败,请重新选择您的身份!");
                      n = scanner.nextInt();
                  }
              }
          }

      Main 方法: 

          public static void main(String[] args) {
              // 系统登录
              User user = login();
              // 创建一个书架
              BookList bookList = new BookList();
              while (true) {
                  // 登录之后,就可以根据前面的选择弹出不同身份的界面
                  int choice = user.menu();
      
                  // 根据返回的选择,进行不同对象的不同的操作
                  // 对象已经确定了,接下来,就是进行不同的操作。
                  // 因为不同的对象包含不同的操作,所以我们可以把这个操作分成一个数组放到不同的类中
                  user.work(choice, bookList); // 操作的对象是书架,因此传入书架
              }
          }

      根据我们在功能页面的选择,来返回不同的值。接着调用work方法来实现不同的功能。这里同样运用了多态的思想。那么父类和子类同样都要有work方法。 

      父类:

      public abstract class User{
          protected String name; // 因为这个name其子类也得使用
          public User(String name) {
               = name;
          }
          public abstract int menu();
          public abstract void work(int choice , BookList bookList);
      }
      

      子类:

      public class RegularUsers extends User{
          protected IWork[] iWorks;
          public RegularUsers(String name) {
              super(name);
              // 注意顺序,要和功能菜单一致
              this.iWorks = new IWork[]{new Exit(), new FindBook(), new BorrowBook(), new ReturnBook()};
          }
      
          @Override
          public int menu() {
              System.out.println("*** 普通用户菜单 ***");
              System.out.println("1. 查找图书");
              System.out.println("2. 借阅图书");
              System.out.println("3. 归还图书");
              System.out.println("0. 退出系统");
              System.out.println("******************");
              System.out.print("请选择您要进行的操作:");
              Scanner scanner = new Scanner(System.in);
              int choice = scanner.nextInt();
              return choice;
          }
          public void work(int choice, BookList bookList) {
              // 通过对应的参数执行对应的操作
              iWorks[choice].work(bookList);
          }
      }
      
      public class Administrators extends User{
          IWork[] iWorks;
          @Override
          public int menu() {
              System.out.println("**** 管理员菜单 ****");
              System.out.println("1. 查找图书");
              System.out.println("2. 新增图书");
              System.out.println("3. 删除图书");
              System.out.println("4. 显示图书");
              System.out.println("0. 退出系统");
              System.out.println("******************");
              System.out.print("请选择您要进行的操作:");
              Scanner scanner = new Scanner(System.in);
              int choice = scanner.nextInt();
              return choice;
          }
      
          public Administrators(String name) {
              super(name);
              // 注意顺序,要和功能菜单一致
              this.iWorks = new IWork[]{new Exit(), new FindBook(), new AddBooks(), new DelBook(), new ShowBook()};
          }
      
          @Override
          public void work(int choice, BookList bookList) {
              iWorks[choice].work(bookList);
          }
      }

      因为操作是根据选择来分配的,也是可以用数组来进行接收,并且执行的。 

      public interface IWork {
          void work(BookList bookList);
      }
      

       上面是一个IWork的接口,为了实现用数组接收,并且更好的管理各种功能。

      实现基本功能 

      下面就是实现各种基本的功能了。

      新增图书:

      public class AddBooks implements IWork {
      
          @Override
          public void work(BookList bookList) {
              System.out.println("正在新增图书...");
              // 其实就是在这个顺序表的数组中新增了一个元素
              // 首先,得判断这个数组是否已经满了
              // 使用的长度如果等于书架的长度了,就需要增加书架的长度了
              if (bookList.getBooks().length == bookList.getUsedSize()) {
                  System.out.println("书架已满,正在新增书架空间,请稍后...");
                  // 创建一个新的数组
                  Book[] newArray = Arrays.copyOf(bookList.getBooks(),2*bookList.getBooks().length);
                  bookList.setBooks(newArray);
                  System.out.println("书架空间新增成功!");
              }
              System.out.println("请输入要新增的书名:");
              Scanner scanner = new Scanner(System.in);
              String name = scanner.nextLine();
              System.out.println("请输入要新增的书的作者:");
              String author = scanner.nextLine();
              System.out.println("请输入要新增的书的价格:");
              int price = scanner.nextInt();
              scanner.nextLine();
              System.out.println("请输入要新增的书的类型:");
              String type = scanner.nextLine();
              System.out.println("请输入要新增的书的数量:");
              int count = scanner.nextInt();
      
              // 判断该书是否已经存在。若已存在,只需把书的数量加上即可
              for (int i = 0; i < bookList.getUsedSize(); i++) {
                  if (bookList.getBooks()[i].getName().equals(name)) {
                      System.out.println("该书已经存在了,因此增加数量即可");
                      bookList.getBooks()[i].setCount(count + bookList.getBooks()[i].getCount());
                      return;
                  }
              }
      
              // 相当于 Books[4] = new Book(name, author, price, type, count);
              bookList.getBooks()[bookList.getUsedSize()] = new Book(name, author, price, type, count);
              bookList.setUsedSize(bookList.getUsedSize()+1);
              System.out.println("新增成功!");
          }
      }
      

      注意:Java中没有直接让数组空间大的方法,只能是拷贝一份比原来空间更大的数组。

      借阅图书:

      public class BorrowBook implements IWork{
          @Override
          public void work(BookList bookList) {
              System.out.println("正在借阅图书...");
              System.out.println("请输入您要借阅的书名:");
              Scanner scanner = new Scanner(System.in);
              String name = scanner.nextLine();
              for (int i = 0; i < bookList.getUsedSize(); i++) {
                  if (bookList.getBooks()[i].getName().equals(name)) {
                      bookList.getBooks()[i].setLentCount(bookList.getBooks()[i].getLentCount()+1);
                      System.out.println("书籍已自动发放到您的账户中,请注意查收!");
                      return;
                  }
              }
              System.out.println("对不起!暂时没有您要找的书,书库会尽快更新哦~");
          }
      }
      

      借阅图书就是把书架上的书的属性修改一下即可。

      删除图书: 

      public class DelBook implements IWork{
          @Override
          public void work(BookList bookList) {
              System.out.println("正在删除图书...");
              System.out.println("请输入您要删除的书名:");
              Scanner scanner = new Scanner(System.in);
              String name = scanner.nextLine();
              // 注意这里查找与删除的范围
              for (int i = 0; i < bookList.getUsedSize(); i++) {
                  if (bookList.getBooks()[i].getName().equals(name)) {
                      for (int j = i; j < bookList.getUsedSize()-1 ; j++) {
                          bookList.getBooks()[j] = bookList.getBooks()[j+1];
                      }
                      bookList.setUsedSize(bookList.getUsedSize()-1);
                      System.out.println("删除成功!");
                      return;
                  }
              }
              System.out.println("对不起!没有您要删除的书");
          }
      }

      删除图书本质就是让有效的长度变小,并且让后面的元素覆盖前面的元素。

      退出系统: 

      public class Exit implements IWork{
          @Override
          public void work(BookList bookList) {
              System.out.println("正在退出图书管理系统...");
              System.exit(0);
          }
      }
      

      JavaAPI中提供了一个方法可以直接强制停止程序(正常停止),就是System.exit(0),参数一定要是0才行。这会立即终止当前Java虚拟机,其中的参数0表示正常退出状态。但请注意,除非确实需要立即终止整个JVM(比如在命令行应用中),否则通常建议让程序自然执行到结束而不是使用上面的方法,以允许JVM进行清理工作。

      查找图书: 

      public class FindBook implements IWork {
          @Override
          public void work(BookList bookList) {
              System.out.println("正在查找图书...");
              System.out.println("请输入您要查找的书名:");
              Scanner scanner = new Scanner(System.in);
              String name = scanner.nextLine();
              for (int i = 0; i < bookList.getUsedSize(); i++) {
                  if (bookList.getBooks()[i].getName().equals(name)) {
                      System.out.println("下面是您要查找的书籍的相关信息:");
                      System.out.println(bookList.getBooks()[i]);
                      return;
                  }
              }
              System.out.println("对不起!暂时没有您要找的书,书库会尽快更新哦~");
          }
      }
      

      查找图书就是遍历整个数组即可。

      归还图书: 

       

      public class ReturnBook implements IWork{
          @Override
          public void work(BookList bookList) {
              System.out.println("正在归还图书...");
              System.out.println("请输入您要归还的书名:");
              Scanner scanner = new Scanner(System.in);
              String name = scanner.nextLine();
              for (int i = 0; i < bookList.getUsedSize(); i++) {
                  if (bookList.getBooks()[i].getName().equals(name)) {
                      bookList.getBooks()[i].setLentCount(bookList.getUsedSize()-1);
                      System.out.println("归还成功!欢迎再次借书~");
                      return;
                  }
              }
              System.out.println("对不起!暂时没有您要归还的书~");
          }
      }
      

      显示图书:

      public class ShowBook implements IWork {
          @Override
          public void work(BookList bookList) {
              System.out.println("正在显示图书...");
              for (int i = 0; i < bookList.getUsedSize(); i++) {
                  System.out.println(bookList.getBooks()[i]);
              }
          }
      }

      这里的显示图书,是显示所有图书,如果要显示单本图书,就是用查找图书的方法。

      以上就是图书系统的基本功能啦!

      这个图书系统是基于顺序表来实现的,如果有不懂的话,可以去看看那篇顺序表的博客(文章最前面)。

      由于文件太多,不好全部把这些代码全部拷贝过来。

      注意:上面的代码直接拷贝到编译器会报错的,因为没有导包,基本框架和IWork都是单独在包中的,Main方法是在源文件中单独存在的,并没有放入包中。

      好啦!注意事项也讲完了,图书管理系统也基本实现啦!本期文章就到此结束啦!我们下一期再一起学习吧!

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.csdn.net/2301_80854132/article/details/139213715,作者:我要学编程(ಥ_ಥ),版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:C++基础篇(2)

      下一篇:数据结构之LinkedList与链表

      相关文章

      2025-05-19 09:04:30

      TNS-01189: 监听程序无法验证用户

      TNS-01189: 监听程序无法验证用户

      2025-05-19 09:04:30
      用户 , 监听 , 验证
      2025-05-19 09:04:30

      开源与闭源:AI模型发展的两条路径

      开源与闭源:AI模型发展的两条路径

      2025-05-19 09:04:30
      开源 , 模型 , 用户
      2025-05-14 10:33:16

      30天拿下Rust之字符串

      在Rust中,字符串是一种非常重要的数据类型,用于处理文本数据。Rust的字符串是以UTF-8编码的字节序列,主要有两种类型:&str和String。其中,&str是一个对字符数据的不可变引用,更像是对现有字符串数据的“视图”,而String则是一个独立、可变更的字符串实体。

      2025-05-14 10:33:16
      amp , Rust , str , String , 使用 , 字符串 , 方法
      2025-05-14 10:33:16

      30天拿下Rust之向量

      在Rust语言中,向量(Vector)是一种动态数组类型,可以存储相同类型的元素,并且可以在运行时改变大小。向量是Rust标准库中的一部分,位于std::vec模块中。

      2025-05-14 10:33:16
      Rust , 使用 , 元素 , 向量 , 方法 , 索引 , 迭代
      2025-05-14 10:03:05

      30天拿下Rust之HashMap

      HashMap,被称为哈希表或散列表,是一种可以存储键值对的数据结构。它使用哈希函数将键映射到存储位置,以便可以快速检索和更新元素。

      2025-05-14 10:03:05
      HashMap , 使用 , 哈希 , 引用 , 方法 , 遍历 , 键值
      2025-05-14 10:03:05

      Oracle数据库用户权限分析

      Oracle数据库用户权限分析

      2025-05-14 10:03:05
      Oracle , 分析 , 数据库 , 权限 , 用户
      2025-05-14 10:02:58

      java休眠到指定时间怎么写

      java休眠到指定时间怎么写

      2025-05-14 10:02:58
      java , sleep , Thread , util , 方法
      2025-05-14 10:02:58

      30天拿下Rust之结构体

      在Rust语言中,结构体是一种用户自定义的数据类型,它允许你将多个相关的值组合成一个单一的类型。结构体是一种复合数据类型,可以用来封装多个不同类型的字段,这些字段可以是基本数据类型、其他结构体、枚举类型等。通过使用结构体,你可以创建更复杂的数据结构,并定义它们的行为。

      2025-05-14 10:02:58
      Rust , 使用 , 字段 , 实例 , 方法 , 示例 , 结构
      2025-05-14 10:02:48

      typescript 将数组清空

      在TypeScript或JavaScript开发中,数组是用于存储和管理一组数据的基础数据结构。当需要清空一个数组时,有多种方法可以实现,而选择合适的方法不仅影响代码的可读性,还会对性能产生一定的影响。不同场景下,选择适合的清空数组的方法至关重要。

      2025-05-14 10:02:48
      length , pop , 引用 , 数组 , 方法
      2025-05-14 10:02:48

      SQL Server 账号管理1

      SQL Server 账号管理主要包含登录名、用户、架构、角色等管理。通过对账号的管理可以有效的提高数据库系统的安全性,规范运维及使用。

      2025-05-14 10:02:48
      Server , SQL , 对象 , 数据库 , 权限 , 用户
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5240805

      查看更多

      最新文章

      TNS-01189: 监听程序无法验证用户

      2025-05-19 09:04:30

      30天拿下Rust之向量

      2025-05-14 10:33:16

      java 判断map为null或者空

      2025-05-14 09:51:21

      JAVA 两个类同时实现同一个接口

      2025-05-14 09:51:15

      java怎么对线程池做监控

      2025-05-14 09:51:15

      java动态获取实体类的字段

      2025-05-13 09:53:23

      查看更多

      热门文章

      (10)Qt对象模型

      2023-02-13 07:55:59

      Java 程序设计 第6章 异常与断言 笔记

      2023-02-24 09:42:48

      C++ 核心 4.6 继承

      2023-02-24 10:08:59

      Java在子类中调用super()方法

      2023-02-07 10:34:04

      【JavaSE】 super关键字基本使用

      2023-07-26 08:09:07

      JavaOOP面试题(108道)

      2023-07-26 07:51:30

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      微信开发第7章 通过accesstoken获取用户黑名单列表

      Python编程实战营:四款实用小项目助你快速入门,从零开始打造你的个人项目集!

      基于SpringBoot+Vue+uniapp的电影信息推荐APP的详细设计和实现

      Java 通用配置(三)用户配置实现

      基于SpringBoot+Vue的考试管理系统的详细设计和实现

      java 代码规范if嵌套

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号