
Java面向对象练习
适合Java面向对象初学者学习的实践练习题
明金同学
There is no place like 127.0.0.1
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java面向对象程序设计作业目录(作业笔记)
持续更新中.............我的大学笔记>>>第1章 面向对象 >>>1.1.5编写Java程序,创建Dota游戏中的防御塔类,通过两个坐属性显示防御塔所在的位置1.2.4编写Java程序,方法练习题__构建英雄类,定义一个int类型的变量output,表示英雄的血量1.3.4编写Java程序,通过给定可变参数方法,计算任意给定...原创 2020-05-08 15:42:28 · 11845 阅读 · 21 评论 -
编写Java程序,使用JTable表格组件展现人员信息列表
返回本章节返回作业目录需求说明:使用JTable组件显现人员信息列表实现思路:创建一个JTable对象。 创建一个JScrollPane对象(显示横向和纵向滚动条)。 将表格添加到滚动面板。 将滚动面板添加到JFrame的内容窗格中实现代码:import java.awt.BorderLayout;import javax.swing.JFrame;import javax.swing.JScrollPane;import javax.swing.JTable;原创 2020-06-17 16:23:45 · 223701 阅读 · 0 评论 -
编写Java程序,使用JDialog构造登录窗体
返回本章节返回作业目录需求说明:实现思路:定义用户信息实体类User。创建LoginDemoStart主类,初始化UI。从UI获取用户信息并保存到User实体。实现代码:原创 2020-06-17 16:31:14 · 4431 阅读 · 0 评论 -
编写Java程序,使用Swing事件处理机制实现用户登录和英雄信息显示
返回本章节返回作业目录需求说明:使用Swing事件处理机制实现用户登录和英雄信息显示实现思路:创建LoginView类,该类用于显示登录界面,为登录按钮添加ActionListener事件,监听鼠标的左键单击事件。该事件对应的处理方法中,接收用户输入的账号和密码,如果用户输入的账号和密码为空,使用JOptionPane对话框显示友好提示。当用户输入的账号或密码不正确,系统使用JOptionPane对话框给出友好提示信息,如果用户输入的账号密码正确,调用创建HeroListVi原创 2020-06-17 16:29:19 · 2223 阅读 · 0 评论 -
编写Java程序,使用菜单组件制作一个记事本编辑器
返回本章节返回作业目录需求说明:使用菜单组件制作一个记事本编辑器实现思路:创建记事本菜单工具栏JMenuBar。创建多个菜单条JMenu。创建多个菜单项JMenuItem。将菜单添加至对应的菜单条中。将菜单条添加至菜单工具栏中。将菜单工具栏加入窗体类JFrame中。 实现代码:...原创 2020-06-17 16:27:36 · 209554 阅读 · 0 评论 -
编写Java程序,使用Swing布局管理器和常用控件,实现仿QQ登录界面
返回本章节返回作业目录需求说明:使用Swing布局管理器和常用控件,实现仿QQ登录界面实现思路:创建登录界面的类QQLogin,该类继承父类JFrame,在该类中创建无参数的构造方法,在构造方法中,设置窗体大小为宽355、高265,窗体的布局格式为绝对定位,通过this.setResizable(false)方法设置窗体大小不能改变。创建初始化方法,在该方法中,创建图10.12中的相关组件,并在该方法中合理设置各组件之间的位置。在构造方法中调用该初始化方法。实现代码:..原创 2020-06-17 09:43:21 · 223453 阅读 · 11 评论 -
编写Java程序,使用Swing布局管理器与常用控件,实现用户登录界面
返回本章节返回作业目录需求说明:使用Swing布局管理器与常用控件,实现用户登录界面实现思路:创建用户登录界面的类LoginFrame,在该类中创建无参数的构造方法,在构造方法中,设置窗体大小为宽300、高180,设置窗体的布局格式为空布局(绝对定位,各组件可通过坐标将组件放置于窗体中的指定位置),通过this.setResizable(false)方法设置窗体大小不能改变。在LoginFrame类中,定义init()方法,在该方法中,通过坐标指定各组件在窗体中的位置。实现代原创 2020-06-16 19:07:36 · 2282 阅读 · 1 评论 -
编写Java程序,将JButton按钮按网格布局管理器格式放置
返回本章节返回作业目录需求说明:将JButton按钮按网格布局管理器格式放置实现思路:实现代码:public void init(){ setLayout(new GridLayout(4, 4)); setFont(new Font("Times New Roman", Font.BOLD, 24)); for (int i = 0; i < 4; i++) { for (int j = 0; j < 4; j++) { int k=i*4+j;原创 2020-06-16 18:59:51 · 4644 阅读 · 0 评论 -
编写Java程序,使用JFrame创建一个窗体
返回本章节返回作业目录需求说明:使用JFrame创建一个窗体实现思路:使用JFrame创建窗体的思路定义一个窗体对象f,窗体名称为“一个简单窗口” 设置窗体左上角与显示屏左上角的坐标//离显示屏上边缘300像素,离显示屏左边缘300像素f.setLocation(300,300); 设置窗体的大小设置窗体可见用户单击窗口的关闭按钮时程序执行的操作f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);实现代码:原创 2020-06-16 18:52:57 · 3933 阅读 · 0 评论 -
编写Java程序,遍历所有英雄信息(美和易思JDBC,PreparedStatement执行查询语句练习习题)
返回本章节返回作业目录需求说明:继续完善英雄信息系统。使用JDBC技术,通过PreparedStatement对象的executeQuery()方法获取表示所有英雄数据的ResultSet结果集。通过遍历表示英雄数据的ResultSet结果集,获得每个英雄具体的英雄编号、英雄名字、血量、攻击值、魔法值、英雄类型信息。实现思路:在HeroAccess类中,定义queryHero()方法,查询所有英雄信息,并返回英雄列表List<Hero>对象。在HeroAccess类中原创 2020-06-14 16:22:08 · 4510 阅读 · 0 评论 -
编写Java程序,在维护英雄数据的业务过程中复用数据库操作封装类
返回本章节返回作业目录需求说明:继续完善英雄信息系统,将HeroAccess类中数据库连接相关代码独立出来,并将其封闭成数据库操作工具类DbConnection,便于管理和代码复用。在HeroAccess类中通过调用工具类DbConnection,实现对英雄数据的新增、删除和更新。实现思路:参照9.3.1示例定义数据库操作封装类。在英雄数据操作类中,分别定义针对英雄数据的新增、删除和更新方法,并在这些方法中通过调用数据库操作封装类的方法,实现数据库操作封装类的复用。实现代码:原创 2020-06-14 16:18:41 · 4441 阅读 · 0 评论 -
编写Java程序,使用PreparedState实现对英雄数据的新增、删除和更新
返回本章节返回作业目录需求说明:使用PreparedState实现对英雄数据的新增、删除和更新英雄(t_hero)表结构 列名(含义) 数据类型 约束 id (序号) int 主键,自动增长 num(英雄编号) varchar(50) 非空 name(英雄姓名) varc原创 2020-06-14 16:17:08 · 4479 阅读 · 0 评论 -
编写Java程序,使用JDBC连接SQL Server数据库
返回本章节返回作业目录需求说明:使用JDBC连接SQL Server数据库SQL Server数据库位于192.168.2.101。所需连接的数据库为eshop_db,用户名为test,密码为123。实现思路:只需要将9.1.3示例中有关MySQL数据库驱动、URL和账户信息,更改为SQL Server的相关信息即可实现代码://驱动类的类名private static final String DRIVERNAME="com.microsoft.sqlserver原创 2020-06-14 16:14:52 · 223514 阅读 · 0 评论 -
编写Java程序,以树形结构显示国家-直辖市/省/州信息
返回本章节返回作业目录需求说明:以树形结构显示国家-直辖市/省/州信息 实现思路:创建显示树形结构的类Tree,在该类中定义Map类型的全局实例属性countryMap,该Map集合用于存放所有国家与其管辖的直辖市/省/州之间的映射关系。其中key为String类型,代表“国家”数据,value为List集合对象,该集合存放String类型的“直辖市/省/州”数据。生成countryMap对象Map<String,List<String>> c...原创 2020-06-14 12:26:42 · 223324 阅读 · 0 评论 -
编写Java程序,演练匿名内部类应用
返回本章节返回作业目录需求说明:定义一个抽象类 Bird,创建使用匿名内部类的操作类Action。实现思路:定义抽象类Bird。在其中定义一个String类型的name属性,一个返回类型是int的抽象方法fly(),以及getName()方法定义操作类Action,在其中定义一个op()方法,该方法的形参为Bird类型。在main()方法中,实例化一个Action对象,并调用该对象的op()方法。op()方法的实参是一个继承了Bird抽象类的匿名内部类对象,该内部类重写了Bird原创 2020-06-14 12:21:10 · 69809 阅读 · 0 评论 -
编写Java程序,演练静态内部类应用
返回本章节返回作业目录需求说明:创建一个Person类,在该类中定义一个Home静态内部类,并在这个Home类中定义一个显示Home相关信息的方法。 在Person类中设置一个Home类型属性对象。 在Person类中定义一个显示当前Person对象相关信息的方法,并在该方法中调用Home类型属性对象的显示Home相关信息的方法。实现思路:创建Person类,在其中定义String类型的name属性。 在Person类中定义一个静态内部类Home,在该Home类中定义String类型原创 2020-06-14 12:21:06 · 4454 阅读 · 0 评论 -
编写Java程序,定义一个类似于ArrayList集合类
返回本章节返回作业目录需求说明:设计一个类似于ArrayList的集合类ListArray。 ListArray类模拟实现动态数组,在该类定义一个方法用于实现元素的添加功能,以及用于获取ListArray动态数组中所有元素的总个数。 在ListArray类中定义一个用于迭代动态数组所有元素的方法。实现思路:定义迭代接口Foreach,在该接口中定义两个方法,分别是判断迭代器中是否还有下一个元素的方法,以及获取迭代器中下一个元素的next()方法。实现代码:public int原创 2020-06-11 23:51:51 · 2951 阅读 · 1 评论 -
编写Java程序,实现控制台版的省市联动
需求说明:系统显示用户所有直辖市的名称,用户在控制台输入直辖市的名称,即可在控制台中显示该直辖市所管辖的所有区的名称。实现思路:创建省市联动类ProvincialLinkage,在该类中定义4个List类型属性,用于保存直辖市所管辖的区的名称。 定义HashMap类型属性provinceCity,其键值保存直辖市的名称,而value值为直辖市所管辖的区的名称,该名称为List对象。 定义show()方法,用于实现省市联动的逻辑操作,系统显示的直辖市的名称为provinceCity的所有.原创 2020-06-11 23:40:04 · 5342 阅读 · 0 评论 -
编写Java程序,使用Set实现不重复添加用户
需求说明:在控制台输入用户信息,用户信息包括姓名、性别和年龄,将用户信息保存至User对象中。将User对象保存至HashSet集合中。规定如果两个User对象的姓名、性别和年龄相同,即为同一个User对象。实现思路:创建类User,在该类中定义String类型属性姓名(name)、性别(sex),int类型属性年龄age,并重写该类的hashCode()方法和equals()方法。创建类UserSys,在该类中定义HashSet类型实例属性set,该属性用于添加User..原创 2020-06-11 23:38:16 · 223584 阅读 · 1 评论 -
编写Java程序,利用List实现报数游戏的实现思路
需求说明:利用List实现报数游戏 在控制台输入一个大于3的正整数,该整数表示有多少人,如在控制台输入10,表示有10个人,10个人围成一个圆圈,从序号1开始为这些人依次编号。 第一个人从数字1开始报数,数到3的人则离开该圆圈,第4个人继续从1开始数,再次数到3的人同样离开,反复进行此操作,直到剩下最后一个人,在控制台输出剩下的最后一个人的编号。实现思路:创建Person类,在该类中定义String类型属性人员编号no,并创建该属性的getter和setter属性,重写toString()原创 2020-06-11 23:37:28 · 2173 阅读 · 20 评论 -
编写Java程序,利用List维护用户信息
需求说明:将新增的用户信息添加到List集合。 用户信息包括用户编号、姓名和性别。 按照姓名和性别查找用户信息。实现思路:创建类UserInfo,在该类中定义3个String类型的变量编号(no)、姓名(name)、性别(sex),并创建这3个属性对应的getter()和setter()方法。 创建类UserInfoSys,在该类中定义List类型的实例属性list,将ArrayList实例赋值于该属性。 在UserInfoSys类中定义addUserInfo()方法,用于处理添加用户原创 2020-06-10 00:03:31 · 210346 阅读 · 0 评论 -
Java集合与数组的联系和区别
数组特点存放一组相同的数据类型(基本类型和对象类型)的数据,从而实现对数据的管理。 优势:可以快速的通过下标对数组元素进行访问,效率高 劣势:容量实现定义好了,不能随着需求变化而扩容。集合特点集合中的元素是任意引用数据类型(数组类型合对象类型)。 集合长度可以修改,可以删除元素和添加元素。...原创 2020-06-09 20:49:11 · 4994 阅读 · 0 评论 -
编写Java程序,使用日期处理类实现日期的格式化输出
返回本章节返回作业目录需求说明:按“yyyy-MM-dd”格式输入一个字符串型日期,然后输出这个日期为本年中的第几周。实现思路:使用SimpleDateFormat格式化输入参数。Calendar下的静态属性WEEK_OF_YEAR返回本日期在本年份中的星期。实现代码://获得字符串时间如“2018-05-12”为当前年的第几周public static int getWeekOfYear(String date){ try { SimpleDateFor.原创 2020-06-09 20:40:00 · 223660 阅读 · 0 评论 -
编写Java程序,随机给定一个数字猜大小
返回本章节返回作业目录需求说明:由系统随机生成一个1~100之间的整数。通过控制台一直输入一个整数,比较该数与系统随机生成的那个数,如果大就输出“猜大了。”,继续输入;如果小就输出“猜小了。”,继续输入;如果相等就输出“恭喜,猜对了。”,退出输出。实现思路:通过Math类的random()方法组合产生一个1-100的随机数。同时用户也输入一个数字。在循环中反复比较产生的随机数和用户输入数字的大小,直至成功预测后退出循环。实现代码:Scanner scan =..原创 2020-06-09 20:37:29 · 2614 阅读 · 0 评论 -
编写Java程序,将一个int型数组拼接成字符串
返回本章节返回作业目录需求说明:将一个int数组中的元素拼接成int元素以逗号分隔字符串。实现思路:定义一个数组变量int[] arrs = {12,21,33,9,2}。定义一个方法arrayToString(int[]),该方法实参是arrs,返回值是String类型。在arrayToString(int[])方法内,实例化一个StringBuffer对象。遍历arrs数组中的每一个int元素,通过StringBuffer对象的append()方法将遍历出来的每一个in.原创 2020-06-09 20:36:49 · 3674 阅读 · 0 评论 -
编写Java程序,实现字符串统计和处理
返回本章节返回作业目录需求说明:在控制台输入纯字符的字符串,输出当前字符串的长度。 统计出该字符串中出现相同字母次数最多的字母(不考虑不同字母出现次数相同的情况)。 将出现最多次数的字母字母替换成“-”,并将该字符串按照“-”进行拆分成字符串数组,最后对该字符串数组进行遍历。实现思路:统计用户在控制台中输入的字符串中出现字母次数最多的算法实现代码:char[] ch = str.toCharArray(); Arrays.sort(ch); //对数组排序 ..原创 2020-06-09 20:36:34 · 223452 阅读 · 0 评论 -
编写Java程序,比较两个Dog对象是否为同一个对象
返回本章节返回作业目录需求说明:重写Dog类的equals(Object obj)方法。 如果equals(Object obj)中obj为Dog类型,则判断当前 对象的dogName与obj对象的dogName是否同名,如同名则返回true,否则返回false。实现思路:定义一个Dog类,并定义一个dogName属性,生成setDogName()方法。实例两个Dog对象,通过equals比较两个对象,输出boolean值。重写equals()方法,如果Dog对象的nam.原创 2020-06-09 20:36:19 · 224336 阅读 · 0 评论 -
编写Java程序,编写自定义异常类封装将棋子落在格子中已有棋子的异常
返回本章节返回作业目录需求说明:完善控制台版五子棋,判断用户所下棋子的位置,是否已经存在棋子,如果已经存在,则抛出用户自定义异常,提示用户该位置已经有棋子。实现思路:创建用户自定义异常类GoBangException,该类继承自Exception父类,在该类定义一个无参的构造器和一个String类型形参的构造器,在该构造器调用父类有参构造器,并将该构造器中的String类型参数,传递给父类构造器。在GoBang类中创建验证棋盘(x,y)处是否存在棋子的方法check(int x,in原创 2020-06-09 20:35:19 · 4778 阅读 · 2 评论 -
编写Java程序,模拟五子棋博弈过程中的异常声明和异常抛出
需求说明:模拟五子棋博弈过程中的异常声明和异常抛出,判断用户所下棋子的位置,是否超越了棋盘的边界。棋盘的横坐标的范围为0~9,纵坐标范围为0~14,如果用户所放棋子的坐标超出了坐标范围,捕获系统抛出的异常,给出友好的提示信息。实现思路:所放棋子的坐标超出了坐标范围异常处理的实现思路:创建五子棋类GoBang,在该类中创建二维数组board,代表五子棋棋盘,二维数组长度为[10][15]。 在GoBang类中创建init()方法,该方法用于为二维数组赋值,二维数组的每一个数组元素值为原创 2020-06-09 20:35:50 · 208058 阅读 · 16 评论 -
编写Java程序,模拟文件操作过程中的异常处理
返回本章节返回作业目录需求说明:从控制中输入计算机磁盘中后缀名为“.txt”的文件的完整物理路径。 如果该文件存在,则在控制台输出友好提示信息,告知用户该文件存在,如果文件不存在,程序运行时会抛出异常,将异常进行捕获。 无论程序是否出现异常,最终通过finally语句库释放输入流所占用的物理资源。实现思路:创建类Read,在该类中导入java.io.FileInputStream类,在Read类中定义静态方法readFile(),该方法有一个String类型的参数,该参数表示从原创 2020-06-05 14:17:04 · 4861 阅读 · 0 评论 -
加深理解Java异常概念并熟记5个最常见的运行时异常
加深理解Java异常概念并熟记5个最常见的运行时异常说明Error与Exception的联系和区别有哪些?列举最常见的5个运用时异常。1、Error和Exception的联系和区别:Error类和Exception类是Throwable类的两个直接子类。 Error类包括一些严重的程序不能处理的系统错误类,如内存溢出、虚拟机错误、栈溢出等。这类错误一般与硬件有关,与程序本身无关,通常由系统进行处理,程序本身无法捕获和处理。 Exception类异常是在程序中发生后可以进行..原创 2020-06-05 14:01:52 · 4944 阅读 · 0 评论 -
编写Java程序,使用面向接口编程模拟不同动物的吼叫声
需求说明:使用面向接口编程模拟不同动物的吼叫声实现思路:使用面向接口编程模拟不同动物吼叫声的实现思路:定义发声接口Voice,在其中定义抽象吼叫方法sing()。 分别定义动物类Dog和Tiger实现Voice接口,通过重写sing()实现各自的吼叫行为。 测试不同动物的吼叫行为。实现代码:...原创 2020-06-04 14:36:52 · 209798 阅读 · 10 评论 -
编写Java程序,通过接口摸拟麦当劳食物生产过程,接口设计
需求说明:通过接口摸拟麦当劳食物生产过程实现思路:通过接口摸拟麦当劳食物生产过程的实现思路:创建接口食物(Food),该接口需要被所有的食物类所实现。在该接口中定义getFood()方法。创建麦香鸡类(McChicken) ,该类实现Food接口,并重写Food接口的getFood()方法。创建薯条类(Chips),该类实现Food接口,并重写Food接口的getFood()方法。创建生产食品的工厂类(FoodFactory),在该类中定义静态方法createFood(.原创 2020-06-04 13:48:54 · 223423 阅读 · 6 评论 -
编写Java程序,创建一个数学工具类,将该类设计为final类,Final 修饰符的使用。
需求说明:创建一个数学工具类。 将该类设计为final类。 将该类的构造方法的访问权限定义为私有,以防止外界实例化该类。 在该类定义静态double类型常量π,其值为3.14159268。 定义静态方法addition(),用于计算一个int[]类型的数组元素之和。 定义静态方法circ(),用于计算圆形的周长。 定义静态方法sort(),用于对传入的int[]数组元素进行升序排序。 实现思路:创建一个数学工具类的实现思路: 创建M.原创 2020-06-04 11:27:25 · 222948 阅读 · 14 评论 -
编写Java程序,使用抽象类和抽象方法构建不同动物的扑食行为,抽象类设计
需求说明:不同的动物都有进食的行为,但是在进食前需要捕获到食物后才可以进食。 要求定义一个抽象的动物类,该类中有一个抽象的捕食方法,和一个非抽象的进食方法。在进食方法中调用捕食方法。 定义3个不同的动物类,分别是老虎、猴子和狼,这些类继承抽象的动物类。实现思路:定义抽象类动物Animal,在其中定义捕食抽象方法predation()和非抽象进食方法eat(),并在进食方法中调用捕食方法。 创建3个动物类,分别是老虎类Tigger、猴子类Monkey和狼类Wolf,定义动物抽象父类,在这.原创 2020-06-04 10:46:16 · 3555 阅读 · 0 评论 -
编写Java程序,实现对兵营类的封装,将兵营类中的所有属性设置为私有访问权限,方法设置为公有访问权限
返回本章节返回作业目录需求说明:实现对兵营类的封装 将兵营类中的所有属性设置为私有访问权限。 将兵营类中所有属性的赋值方法设置为公有访问权限。 要求兵营名称的长度在4~8位之间。 要求兵营士兵的人数在100~500之间。实现思路:封装兵营类的实现思路如下:将 Barracks 类中所有的属性均定义为私有访问权限。 将已经创建的士兵总数count属性定义为静态变量,在Barracks类中定义大小为3的兵营对象数组变量bksarray。 在 setName()方法中,对用.原创 2020-05-09 17:15:16 · 6052 阅读 · 7 评论 -
编写Java程序,以继承和多态思想模拟饲养员喂养不同动物的不同行为
返回本章节返回作业目录需求说明:以继承和多态思想模拟饲养员喂养不同动物的不同行为 动物园有饲养员和动物,其中动物有老虎、马、猴子、羊、狼等。 饲养员对不同的动物有不同的喂养行为。实现思路:以继承和多态思想模拟饲养员喂养不同动物的实现思路:创建各种动物的父类Animal,在该类中定义eat()方法,该方法中不进行任何的业务操作。 创建5个动物类子类,分别是马(Horse)、绵羊(Sheep)、老虎(Tigger)、猴子(Monkey)、狼(Wolf)。 创建饲养员类(Fee.原创 2020-05-11 16:58:52 · 10152 阅读 · 7 评论 -
编写Java程序,在子类老虎中重写父类动物的吃食方法
返回本章节返回作业目录需求说明:在子类老虎中重写父类动物的吃食方法实现思路:在子类老虎中重写父类动物的吃食方法的实现思路如下:创建各种动物的父类Animal类,在该类中定义eat()方法。 创建动物老虎(Tigger),继承Animal类,重写eat()方法。 新建Test类,main()方法中,实例化老虎类,调用eat()方法,并观察执行结果。 在Tigger类新定义action()方法,通过super关键字,调用父类本身的eat()行为。实现代码:...原创 2020-05-11 16:59:08 · 7296 阅读 · 4 评论 -
编写Java程序,创建一个父类交通工具类(Vehicles),以及两个子类,分别是轿车类(Car)和卡车类(Truck)。
返回本章节返回作业目录需求说明:创建一个父类交通工具类(Vehicles),以及两个子类,分别是轿车类(Car)和卡车类(Truck)。父类有属性品牌(brand)和颜色(color)。 在父类构造方法中对属性品牌和颜色赋值。 在父类中定义showInfo()用于显示交通工具的品牌和颜色信息。 小汽车和卡车继承交通工具,它们分别有属性座位和载重。通过在子类构造方法中调用父类构造方法,分别构建轿车和卡车对象。 通过子类继承父类的showInfo()显示轿车和卡车对象的品牌和颜色信息。原创 2020-05-11 16:57:21 · 21739 阅读 · 0 评论 -
编写Java程序,测试包的使用和成员的访问权限
返回本章节返回作业目录需求说明:测试包的使用和成员的访问权限:分别创建两个包,在这两个包下分别建立两个类。 其中某个类的某个方法需要引用用另一个包中某个类的某些成员属性。 被引用成员属性分别使用public、protected、默认访问符和private进行修饰,并观察执行结果实现思路:测试包的使用和成员的访问权限实现思路:创建com.java包,在该包内创建一个学生类(Student)类,该类中有两个public类型的属性,姓名(name)和年龄(age)。 在co.原创 2020-05-11 16:52:46 · 5529 阅读 · 1 评论