【新手学java】关于引用自定义包中的类的问题

苦苦的潜行者 2011-06-29 03:32:16
CSDN今下午又登陆不上!!!!!!

三个文件School.java / Student.java / Admit.java
源码

//School.java
//设置录取分数线
package jully.school;
import java.util.Scanner;
public class School
{
public static float scoreLine;
public static void main(String args[])
{
System.out.println("请设置录取分数线!");
Scanner sc=new Scanner(System.in);
scoreLine=sc.nextFloat();
System.out.println("当前录取分数线为"+scoreLine);
}
}


//Student.java
//记录考生的姓名 考号 综合成绩 体育成绩 等等
package jully.school;
import java.util.Scanner;
public class Student
{
public static String name;
public static int id;
public static float intgretResult;
public static float sports;
public static void main(String args[])
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生姓名!");
name=sc.next();
System.out.println("请输入该学生学号!");
id=sc.nextInt();
System.out.println("请输入该学生的综合成绩!");
intgretResult=sc.nextFloat();
System.out.println("请输入该学生的体育成绩!");
sports=sc.nextFloat();
}
}



//Admit.java
//录取类
//package jully.school;
import jully.school.School;
import jully.school.Student;

public class Admit
{
public static void main(String args[])
{
School sch=new School();
final float score=sch.scoreLine;
Student stu1=new Student();
Student stu2=new Student();
Student stu3=new Student();
Student stu4=new Student();
Student stu5=new Student();
if(stu1.intgretResult>=score || (stu1.sports>=96 && stu1.intgretResult>300))
System.out.println("姓名 "+stu1.name+" ID "+stu1.id+" 被录取!");
if(stu2.intgretResult>=score || (stu2.sports>=96 && stu2.intgretResult>300))
System.out.println("姓名 "+stu2.name+" ID "+stu2.id+" 被录取!");
if(stu3.intgretResult>=score || (stu3.sports>=96 && stu3.intgretResult>300))
System.out.println("姓名 "+stu3.name+" ID "+stu3.id+" 被录取!");
if(stu4.intgretResult>=score || (stu4.sports>=96 && stu4.intgretResult>300))
System.out.println("姓名 "+stu4.name+" ID "+stu4.id+" 被录取!");
if(stu5.intgretResult>=score || (stu5.sports>=96 && stu5.intgretResult>300))
System.out.println("姓名 "+stu5.name+" ID "+stu5.id+" 被录取!");
}

}


我的文件放在E:\wzl\myjava下
编译是这样写的
javac -d . School.java
javac -d . Student.java
javac Admit.java

运行java Admit直接就出来以下结果,连要School类和Student类中main()也不进

姓名 null ID 0 被录取!
姓名 null ID 0 被录取!
姓名 null ID 0 被录取!
姓名 null ID 0 被录取!
姓名 null ID 0 被录取!

白学了一周java,一个null代表了我的心情.

请高手指点,谢谢.
...全文
459 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenchenyangll 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 xiaolinyouni 的回复:]

引用 11楼 dandan0912 的回复:
就是带参数的构造方法
public Student(String name,int id,float intgretResult,float sports){
this.name=name;
this.id = id;
this.intgretResult = intgretResult;
this.sports = sports;
}……
[/Quote]

你这个代码要搞清楚职责

Student作为一个类,他的职责是描述一个“学生”,name id 这些都是“学生”的属性

而 用Scanner获取输入,并不在“学生”的职责范围内

通俗的说,先用Scanner获取输入,然后通过获取到的name id 来构造一个Student

但是看了你的题目的2,这简直就是自相矛盾的

又要在类中自己定义方法获取输入,又要构造函数

我想不出怎么做= = Java不能返回多值,而如果获取之后马上储存又显得构造函数是多余
苦苦的潜行者 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 11楼 dandan0912 的回复:]
就是带参数的构造方法
public Student(String name,int id,float intgretResult,float sports){
this.name=name;
this.id = id;
this.intgretResult = intgretResult;
this.sports = sports;
}……
[/Quote]

不行啊....

你看我的代码
	public Student(String name,int id,float intgretResult,float sports)
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生姓名!");
name=sc.next();
System.out.println("请输入该学生学号!");
id=sc.nextInt();
System.out.println("请输入该学生的综合成绩!");
intgretResult=sc.nextFloat();
System.out.println("请输入该学生的体育成绩!");
sports=sc.nextFloat();

this.name=name;
this.id=id;
this.intgretResult=intgretResult;
this.sports=sports;
}


运行到public Student(String name,int id,float intgretResult,float sports)
提示错误Exception in thread "main" java.lang.NoSuchMethodError:jully.school.Student:method <init><>V not found at Admit.main.....
苦苦的潜行者 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 dandan0912 的回复:]
就是带参数的构造方法
public Student(String name,int id,float intgretResult,float sports){
this.name=name;
this.id = id;
this.intgretResult = intgretResult;
this.sports = sports;
}
[/Quote]


我说我看过的东西都不会用吧
this和super早就看了,但是不会用..

大爱 爱..
谢谢啦
dandan0912 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 xiaolinyouni 的回复:]
现在还有一点不明白,
要求学生类的构造方法带4 个参数,分别接收学生的姓名、考号、综合成绩和体
育成绩。是什么意思...
好比说我现在的程序是这样了,怎么按照他的要求更改呢
[/Quote]

就是带参数的构造方法
public Student(String name,int id,float intgretResult,float sports){
this.name=name;
this.id = id;
this.intgretResult = intgretResult;
this.sports = sports;
}
苦苦的潜行者 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chenchenyangll 的回复:]
3 我猜LZ应该是一直跟着一本书在学,类还没有看到吗?[/Quote]

看到了,已经看到了GUI,但是哗啦哗啦光跟着教程 码代码了,其实什么意思都不知道,现在我就一道练习一道练习的自己做,然后再找错误.
苦苦的潜行者 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 chenchenyangll 的回复:]
又是你啊 呵呵

注意:

1 main函数不是一个类的入口,而是整个程序的入口!

2 看你程序的意图,你可以将Student和School中main函数里面写的那一堆,放在他们各自的构造函数中

public Student() {
// Student.java中 main函数 里面的一堆。。。
}

public School() {
// Scho……
[/Quote]


汗,又是你啊,而且..
又是你给我解决了问题...
你干脆做我网职教师吧.
求关注...以后有什么问题干脆直接问你好了....

现在还有一点不明白,
要求学生类的构造方法带4 个参数,分别接收学生的姓名、考号、综合成绩和体
育成绩。
是什么意思...
好比说我现在的程序是这样了,怎么按照他的要求更改呢
package jully.school;
import java.util.Scanner;
public class Student
{
public static String name;
public static int id;
public static float intgretResult;
public static float sports;
public Student()
{
Scanner sc=new Scanner(System.in);
System.out.println("请输入学生姓名!");
name=sc.next();
System.out.println("请输入该学生学号!");
id=sc.nextInt();
System.out.println("请输入该学生的综合成绩!");
intgretResult=sc.nextFloat();
System.out.println("请输入该学生的体育成绩!");
sports=sc.nextFloat();
}
}
joanagle 2011-06-29
  • 打赏
  • 举报
回复
没看明白楼主的意思
chenchenyangll 2011-06-29
  • 打赏
  • 举报
回复
又是你啊 呵呵

注意:

1 main函数不是一个类的入口,而是整个程序的入口!

2 看你程序的意图,你可以将Student和School中main函数里面写的那一堆,放在他们各自的构造函数中

public Student() {
// Student.java中 main函数 里面的一堆。。。
}

public School() {
// School.java中 main函数 里面的一堆。。。
}

3 我猜LZ应该是一直跟着一本书在学,类还没有看到吗?
苦苦的潜行者 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wuxianglong 的回复:]
楼主运行的是Admit.java这个类,运行时只会进Admit类中的main方法,肯定不会执行School和Student中的main方法的。。。。。
话说你为什么要把School和Student中所有的成员变量声明成静态的啊?
还有,IDE是指集成开发环境,java中比较常用的IDE有eclipse。。。看楼主也不像是刚学编程的人,为什么会不知道IDE啊?
[/Quote]

真是刚学习,没多久,,我知道eclipse..(但是我觉得这个工具太给力了,还是习惯cmd)
原来只能进Admit中的main啊
至于成员变量声明静态,我直接给出题目要求

二、实训内容
1. 编写一个学校类,其中包括成员变量scoreLine(录取分数线)和对该变量进行设
置和获取的方法。学校类仅包括静态成员变量和方法。
2. 编写一个学生类,她的成员变量有考生的name(姓名)、id(考号)、intgretResult(综
合成绩)、sports(体育成绩)。它还有获取学生的综合成绩和体育成绩的方法。要
求学生类的构造方法带4 个参数,分别接收学生的姓名、考号、综合成绩和体
育成绩。
3. 编写一个录取类,它的一个方法用于判断学生是否符合录取条件。其中录取条
件为:综合成绩在录取分数线之上,或体育成绩在96 分以上并且综合成绩大于
300 分。该类中的main()方法建立若干个学生对象,对输出符合录取条件的学
生,输出其信息及“被录取”。
4. 将以上程序放入自己的包中。
降龙 2011-06-29
  • 打赏
  • 举报
回复
楼主运行的是Admit.java这个类,运行时只会进Admit类中的main方法,肯定不会执行School和Student中的main方法的。。。。。
话说你为什么要把School和Student中所有的成员变量声明成静态的啊?
还有,IDE是指集成开发环境,java中比较常用的IDE有eclipse。。。看楼主也不像是刚学编程的人,为什么会不知道IDE啊?
苦苦的潜行者 2011-06-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wula0010 的回复:]
学java,用命令行方式很累的,也很不好学。
看看这个:

命令行下编译运行java包文件:
//A.java
package org.pj.pkg;
public class A{

}

//B.java
package org.pj.pkg;
public class B{
public void running(){
A a = ……
[/Quote]


没看懂你在干什么,
不过我表示jdk+cmd我还是很喜欢的(因为我学c的时候就是TC2.0+cmd,习惯了),而且给出错误也很清晰..
我已经编译正确了,现在就是运行之后,结果不正确,应该是我代码的问题.
wula0010 2011-06-29
  • 打赏
  • 举报
回复
学java,用命令行方式很累的,也很不好学。
看看这个:

命令行下编译运行java包文件:
//A.java
package org.pj.pkg;
public class A{

}

//B.java
package org.pj.pkg;
public class B{
public void running(){
A a = new A();
System.out.println("OK !");
}
public static void main(String[] args){
B b =new B();
b.running();
}
}

我在F盘下新建一个new文件夹,将A.java 和 B.java 两个文件都放在里面
在cmd方式下,先设置jdk\bin的路径,然后设在classpath的路径,这个要包括jdk里lib下的jar。
然后:
C:\Documents and Settings\pj>javac -d F:\new -cp F:\new f:\new\B.java
编译成功。

下面就是执行B.class文件了,也有很大的蹊跷.与上面的情况一样,我通过设置classpath环境变量各种方法,只有下面的这种方法能构正确执行

C:\Documents and Settings\pj>java -cp F:\new org.pj.pkg.B
OK !

这里需要主意的几个关键点:
1. 在使用javac命令编译互访性包文件的时候(比如上面的B访问A),需要用参数 -cp 指明类的寻找路径为包所在的路径,第三个参数应该是类的完整路径.
2. 在使用java命令执行这种包文件的时候,也需要用参数 -cp 指明类的寻找路径为包所在的路径,后面的参数中应该以 . 来间隔包类各层次文件夹之间的关系.

在这里使用set classpath 的方式似乎不能解决这个问题,而在参数里加上-cp的选项才可以
苦苦的潜行者 2011-06-29
  • 打赏
  • 举报
回复
什么是IDE,我表示我一直用jdk+cmd...
zn85600301 2011-06-29
  • 打赏
  • 举报
回复
敢不敢拷到 IDE里面去执行 你意思你这样能DEBUG
本书为中南大精品教材立项项目,分为上下两篇共21章,涵盖了面向对象技术中Java开发环境配置、程序设计基础、面向对象原理以及UML的知识。本书使用的开发环境是JDK 1.6+Eclipse 3.3+Rational Rose 2003,逐步引领读者从基础到各个知识点进行习。全书内容由浅入深,并辅以大量的实例说明,书本阶段性地提供了一些实验指导。 本书提供了所有实例的源代码以及开发过程中用到的软件下载地址,供读者习参考使用。 本书为校教量身定做,供高校面向对象技术相关课程使用,对于缺乏项目实战经验的程序员来说可用于快速积累项目开发经验。 本书是中南大精品教材建设中的一本特色教材,为高校计算机相关专业提供面向对象技术和UML的讲解。本书采用Java语言进行描述,针对Java技术标准编程进行详细的讲解,以简单通俗易懂的案例,逐步引领读者从基础到各个知识点进行习。本书涵盖了JavaSE开发环境配置、程序设计基础、面向对象相关技术、常用API、UML基础知识。在章节中穿插了上机习题,并提供了答案,用于对该章内容进行阶段性总结演练。 作者长期从事教工作,积累了丰富的经验,其“实战教法”取得了很好的效果。本书适合教。书中章节安排适当,将习题融于讲解的过程中,教师可以根据情况选用,也可以进行适当增减。 本书的知识体系结构如下所示,遵循了循序渐进的原则,逐步引领读者从基础到各个知识点进行习。 上篇面向对象技术 第1章Java入门 第2章程序设计基础: 变量及其运算 第3章程序设计基础: 流程控制和数组 第4章实验指导1 第5章、对象和成员 第6章封装 第7章继承和多态 第8章实验指导2 第9章异常处理 第10章Java常用API 第11章Java IO操作 第12章多线程开发 第13章反射技术 第14章实验指导3 下篇UML 第15章UML入门 第16章用例图 第17章图和对象图 第18章实验指导4 第19章顺序图、协作图、状态图和活动图 第20章包图、构件图和部署图 第21章实验指导5 本书提供了全书所有实例的源代码,供读者习参考使用,所有程序均经过了作者精心的调试。 由于时间仓促和作者水平有限,书中的错误和不妥之处敬请读者批评指正。 有关本书的意见反馈和咨询,读者可在清华大出版社相关版块中与作者进行交流。 郭克华 2013年11月 目录 上篇面向对象技术 第1章Java入门 1.1认识Java 1.1.1认识编程语言 1.1.2Java的来历 1.1.3Java为什么流行 1.1.4Java的三个版本 1.1.5编程前的准备工作 1.2安装JDK 1.2.1获取JDK 1.2.2安装JDK步骤 1.2.3安装目录介绍 1.2.4环境变量设置 1.3开发第一个Java程序 1.3.1如何编写源代码 1.3.2如何将源代码编译成.class文件 1.3.3如何执行.class文件 1.3.4新手常见错误 1.4用Eclipse开发Java程序 1.4.1Eclipse的概念 1.4.2安装Eclipse 1.4.3如何建立项目 1.4.4如何开发Java程序 1.4.5如何维护项目 1.5小结 第2章程序设计基础:变量及其运算 2.1认识变量 2.1.1变量的定义 2.1.2变量有哪些型 2.2如何使用变量 2.2.1如何使用整型变量 2.2.2如何使用浮点型变量 2.2.3如何使用字符型变量 2.2.4如何使用布尔型变量 2.2.5基本数据型之间的型转换 2.2.6基本数据型和字符串之间的转换 2.2.7变量的作用范围 2.3注释的书写 2.4Java中的运算 2.4.1算术运算 2.4.2赋值运算 2.4.3关系运算 2.4.4逻辑运算 2.4.5运算符的优先级 2.5小结 第3章程序设计基础:流程控制和数组 3.1判断结构 3.1.1为什么需要判断结构 3.1.2if结构 3.1.3switch结构 3.2认识循环结构 3.2.1为什么需要循环结构 3.2.2while循环 3.2.3dowhile循环 3.2.4for循环 3.2.5循环嵌套 3.2.6break和continue 3.3数组 3.3.1为什么需要数组 3.3.2如何定义数组 3.3.3如何使用数组 3.3.4数组的引用性质 3.3.5数组的应用 3.3.6多维数组 3.4小结 第4章实验指导1 4.1关于变量和数据型的实践 4.2流程控制和数组的综合实践 第5章、对象和成员 5.1认识和对象 5.1.1为什么需要 5.1.2如何定义 5.1.3如何使用实例化对象 5.1.4如何访问对象中的成员变量 5.1.5对象的引用性质 5.2认识成员函数 5.2.1为什么需要函数 5.2.2如何定义和使用成员函数 5.2.3函数参数的传递 5.2.4认识函数重载 5.3认识构造函数 5.3.1为什么需要构造函数 5.3.2如何定义和使用构造函数 5.4静态变量和静态函数 5.4.1为什么需要静态变量 5.4.2静态变量的常见应用 5.4.3认识静态函数 5.4.4静态代码块 5.5小结 第6章封装 6.1使用封装 6.1.1为什么需要封装 6.1.2如何实现封装 6.2使用包 6.2.1为什么需要包 6.2.2如何将放在包中 6.2.3如何访问包中 6.3使用访问控制修饰符 6.3.1什么是访问控制修饰符 6.3.2的访问控制修饰符 6.3.3成员的访问控制修饰符 6.4使用 6.5小结 第7章继承和多态 7.1使用继承 7.1.1为什么需要继承 7.1.2如何实现继承 7.1.3继承的底层本质 7.2成员的覆盖 7.2.1什么是成员覆盖 7.2.2成员覆盖有何作用 7.3使用多态性 7.3.1什么是多态 7.3.2如何使用多态性 7.3.3父子对象的型转换 7.4抽象和接口 7.4.1为什么需要抽象 7.4.2为什么需要接口 7.5其他内容 7.5.1final关键字 7.5.2Object 7.6一些工具的使用 7.6.1将字节码打包发布 7.6.2文档的使用 7.7小结 第8章实验指导2 8.1单例模式的设计 8.1.1需求简介 8.1.2不用单例模式的效果 8.1.3最原始的单例模式 8.1.4首次改进 8.1.5再次改进 8.1.6思考题 8.2利用继承和多态扩充程序功能 8.2.1需求简介 8.2.2实现方法 8.2.3出现的问题 8.2.4改进 8.2.5测试 第9章异常处理 9.1认识异常 9.1.1生活中的异常 9.1.2软件中的异常 9.1.3为什么要处理异常 9.1.4异常机理 9.1.5常见异常 9.2异常的就地捕获 9.2.1为什么要就地捕获 9.2.2如何就地捕获异常 9.2.3如何捕获多种异常 9.2.4用finally保证安全性 9.3异常的向前抛出 9.3.1为什么要向前抛出 9.3.2如何向前抛出 9.4自定义异常 9.4.1为什么需要自定义异常 9.4.2如何自定义异常 9.5小结 第10章Java常用API 10.1数值运算 10.1.1用Math实现数值运算 10.1.2实现随机数 10.2用String进行字符串处理 10.3用StringBuffer进行字符串处理 10.4基本数据型的包装 10.4.1认识包装 10.4.2通过包装进行数据转换 10.5认识Java集合 10.5.1为什么需要集合 10.5.2Java中的集合 10.6使用一维集合 10.6.1认识一维集合 10.6.2使用List集合 10.6.3使用Set集合 10.6.4使用Collections对集合进行处理 10.6.5使用泛型简化集合操作 10.7Java中的二维集合 10.7.1使用Map集合 10.7.2使用Hashtable和Properties 10.8小结 第11章Java IO操作 11.1认识IO操作 11.2用File操作文件 11.2.1认识File 11.2.2使用File操作文件 11.2.3使用File操作目录 11.3字节流的输入输出 11.3.1认识字节流 11.3.2如何读写文件 11.3.3如何读写对象 11.4字符流的输入输出 11.4.1认识字符流 11.4.2如何读写文件 11.4.3如何进行键盘输入 11.5和IO操作相关的其他 11.5.1用RandomAccessFile进行文件读写 11.5.2使用Properties 11.6小结 第12章多线程开发 12.1认识多线程 12.1.1为什么需要多线程 12.1.2继承Thread开发多线程 12.1.3实现Runnable接口开发多线程 12.1.4两种方法有何区别 12.2控制线程运行 12.2.1为什么要控制线程运行 12.2.2传统方法的安全问题 12.2.3如何控制线程的运行 12.3线程同步安全 12.3.1什么是线程同步 12.3.2一个有问题的案例 12.3.3如何解决 12.3.4小心线程死锁 12.4认识定时器 12.4.1为什么需要定时器 12.4.2如何使用定时器 12.5小结 第13章反射技术 13.1为什么要习反射 13.1.1引入配置文件 13.1.2配置文件遇到的问题 13.2认识Class 13.2.1什么是Class 13.2.2如何获取一个对应的Class对象 13.2.3如何获取中的成员信息 13.3通过反射机制访问对象 13.3.1如何实例化对象 13.3.2如何给成员变量赋值 13.3.3如何调用成员函数 13.4何时使用反射 13.5动态异常处理框架 13.5.1框架功能简介 13.5.2重要技术 13.5.3框架代码编写 13.5.4使用该框架 13.6小结 第14章实验指导3 14.1字符频率统计软件 14.1.1软件功能简介 14.1.2重要技术 14.1.3项目结构 14.1.4代码编写 14.1.5思考题 14.2文本翻译软件 14.2.1软件功能简介 14.2.2重要技术 14.2.3项目结构 14.2.4代码编写 14.2.5思考题 14.3用享元模式优化程序性能 14.3.1为什么需要享元模式 14.3.2重要技术 14.3.3代码编写 14.3.4思考题 下篇UML 第15章UML入门 15.1认识UML 15.1.1为什么需要UML 15.1.2UML的来历 15.2用Rational Rose进行UML建模 15.2.1什么是Rational Rose 15.2.2安装Rational Rose 15.2.3如何使用Rational Rose 15.2.4UML图的种 15.3小结 第16章用例图 16.1认识用例图 16.1.1为什么需要用例图 16.1.2什么是用例图 16.2详解用例图 16.2.1系统边界 16.2.2参与者 16.2.3用例 16.2.4箭头 16.2.5注释 16.2.6用Rational Rose画用例图 16.2.7用例规约 16.3一个案例 16.3.1案例描述 16.3.2画出用例图 16.3.3写出用例描述 16.4小结 第17章图和对象图 17.1认识图 17.1.1为什么需要图 17.1.2什么是图 17.2详解图 17.2.1 17.2.2箭头 17.2.3注释 17.2.4用Rational Rose画图 17.3对象图 17.4小结 第18章实验指导4 18.1用例图练习 18.1.1软件功能简介 18.1.2识别系统中的参与者和用例 18.1.3画出用例图 18.1.4用例描述 18.2图练习 18.2.1练习1: 根据代码画出图 18.2.2练习2: 根据需求构建图 18.3思考题 第19章顺序图、协作图、状态图和活动图 19.1顺序图 19.1.1什么是顺序图 19.1.2详解顺序图 19.1.3用Rational Rose画顺序图 19.2协作图 19.2.1什么是协作图 19.2.2详解协作图 19.2.3用Rational Rose画协作图 19.3状态图 19.3.1什么是状态图 19.3.2详解状态图 19.3.3用Rational Rose画状态图 19.4活动图 19.4.1什么是活动图 19.4.2详解活动图 19.4.3用Rational Rose画活动图 19.5小结 第20章包图、构件图和部署图 20.1包图 20.1.1什么是包图 20.1.2详解包图 20.1.3用Rational Rose画包图 20.2构件图 20.2.1什么是构件图 20.2.2详解构件图 20.2.3用Rational Rose画构件图 20.3部署图 20.3.1什么是部署图 20.3.2详解部署图 20.3.3用Rational Rose画部署图 20.4小结 第21章实验指导5 21.1顺序图、协作图练习 21.1.1功能简介 21.1.2创建顺序图 21.1.3创建协作图 21.2状态图、活动图练习 21.2.1功能简介 21.2.2创建状态图 21.2.3创建活动图 21.3包图、构件图和部署图练习

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧