
Java高手请进
我在ServerRoom。java中申明了publicclassServerRoom{}但是为什么publicclassServerRoomimplementsActio...
我在ServerRoom。java中申明了public class ServerRoom {}但是为什么public class ServerRoom implements ActionListener {……}仍然报错说ServerRoom是公共的,要在ServerRoom。java文件中申明???
该如何自定义类,这个class Server {Server s; }又是什么意思?为什么s.start()报错说找不到符号 方法start 而s.stop()却报错说找不到符号 变量s?
public void actionPerformed(ActionEvent e) {
String temp = e.getActionCommand();
if (temp.equals("启动")) { //单击“启动”Button事件响应
try {
InetAddress ia = InetAddress.getLocalHost();// 获取本地信息
jta.setText("服务器启动....\n"); //在文本框显示
jta.append("本地服务器地址" + ia.getHostAddress() + "\n");//getHostAddress()获取本机ip
Server s = new Server();// 创建端口,等待连接
s.start();
Thread.sleep(1000);
} catch (Exception e1) { //异常处理
e1.printStackTrace();
}
} else if (temp.equals("停止")) { //单击“停止”Button事件响应
try {
jta.append("服务器将在2秒内关闭...\n");
s.stop();
} catch (Exception e1) {
e1.printStackTrace();
以上是部分代码,各位能否说的具体点,就是把解决的代码给附上?
先谢谢各位了! 展开
该如何自定义类,这个class Server {Server s; }又是什么意思?为什么s.start()报错说找不到符号 方法start 而s.stop()却报错说找不到符号 变量s?
public void actionPerformed(ActionEvent e) {
String temp = e.getActionCommand();
if (temp.equals("启动")) { //单击“启动”Button事件响应
try {
InetAddress ia = InetAddress.getLocalHost();// 获取本地信息
jta.setText("服务器启动....\n"); //在文本框显示
jta.append("本地服务器地址" + ia.getHostAddress() + "\n");//getHostAddress()获取本机ip
Server s = new Server();// 创建端口,等待连接
s.start();
Thread.sleep(1000);
} catch (Exception e1) { //异常处理
e1.printStackTrace();
}
} else if (temp.equals("停止")) { //单击“停止”Button事件响应
try {
jta.append("服务器将在2秒内关闭...\n");
s.stop();
} catch (Exception e1) {
e1.printStackTrace();
以上是部分代码,各位能否说的具体点,就是把解决的代码给附上?
先谢谢各位了! 展开
5个回答
展开全部
总结了一下你的问题,大致有三个:
1.java如何定义一个类?
2.class Server {Server s; }是什么意思?
3.start()方法找不到,s变量找不到?
我的回答:
1. java中有两种大的类型,一是基本类型,二是自定义类型;基本类型就不说了,自定义类型:java的自定义类型用.java文件来编写,用class关键字来定义一个类,用public,private,default(默认不写,java没有default关键字)来修饰它的访问权限,一个类用public class修饰,标示该类是这个.java文件的公共类,一个.java源文件只能有一个类用public来修饰,并且用它来修饰的类必须与.java文件名保持一致,这一条大概就是你出现第一个问题:必须申明为公共的原因;你可以尝试把ServerRoom 类用public来修饰,然后把该文件的文件名改成ServerRoom;(注意要把其它修饰class的public去掉)
2.class Server {Server s; }表示Server有一个属性是自身类型的一个对象,这个比较好理解,这种写法一般用于单利模式,让本类只提供一个对象,至于为什么这么用,可以再深入研究一下开发模式
3.start()方法找不到,是因为你的类没有申明这么一个方法,如果你是要启动一个线程,需要继承Thread类或者实现Runnabel接口;Thread类会有一个start()方法来启动线程的;如果你纯粹只需要写一个start()方法来实现某个功能,在你的类用定义一个start()方法就行了;s变量找不到,问题出现在对变量的作用域的理解,按作用域来分,可以将变量分为成员变量和局部变量,你这个情况是局部变量,局部变量的作用域在大括号的范围内,出了大括号外,该变量对其它领域不可见,你需要将Server s 定义在try之上;然后在try包含的大括号类实例化s,即s = new Server();
1.java如何定义一个类?
2.class Server {Server s; }是什么意思?
3.start()方法找不到,s变量找不到?
我的回答:
1. java中有两种大的类型,一是基本类型,二是自定义类型;基本类型就不说了,自定义类型:java的自定义类型用.java文件来编写,用class关键字来定义一个类,用public,private,default(默认不写,java没有default关键字)来修饰它的访问权限,一个类用public class修饰,标示该类是这个.java文件的公共类,一个.java源文件只能有一个类用public来修饰,并且用它来修饰的类必须与.java文件名保持一致,这一条大概就是你出现第一个问题:必须申明为公共的原因;你可以尝试把ServerRoom 类用public来修饰,然后把该文件的文件名改成ServerRoom;(注意要把其它修饰class的public去掉)
2.class Server {Server s; }表示Server有一个属性是自身类型的一个对象,这个比较好理解,这种写法一般用于单利模式,让本类只提供一个对象,至于为什么这么用,可以再深入研究一下开发模式
3.start()方法找不到,是因为你的类没有申明这么一个方法,如果你是要启动一个线程,需要继承Thread类或者实现Runnabel接口;Thread类会有一个start()方法来启动线程的;如果你纯粹只需要写一个start()方法来实现某个功能,在你的类用定义一个start()方法就行了;s变量找不到,问题出现在对变量的作用域的理解,按作用域来分,可以将变量分为成员变量和局部变量,你这个情况是局部变量,局部变量的作用域在大括号的范围内,出了大括号外,该变量对其它领域不可见,你需要将Server s 定义在try之上;然后在try包含的大括号类实例化s,即s = new Server();
展开全部
没有start()这个方法。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你看一下Server的实现类里面实现到有start()方法没有或者是Server类里面是否定义了start()方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java 的 public class 要求文件名与类名一样。
Server 没有 start 方法,是不是要继承Thread类?
Server 没有 start 方法,是不是要继承Thread类?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
为了方便你修改产生随即数的个数,我用了final来定义一个常量N,然后给他付初值等于5。如果你想改成6或7或其他的,只要在定义处修改就是了,就不用到每一个循环语句中去修改。
import static java.lang.Math.random;
public class Demo
{
public static void main(String args[])
{
final int N = 5;
int a[]=new int[N];
int i,j,m;
//产生随机数
System.out.print("产生的随机数为:");
for(i=0;i<N;i++)
{
a[i]=(int)(random()*10);
System.out.print(" "+a[i]);
}
//逆序输出
System.out.println();
System.out.print("逆序输出随机数:");
for(i=4;i>=0;i--)
{
System.out.print(" "+a[i]);
}
System.out.println();
//降序排序
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(a[i]>a[j])
{
m=a[i];
a[i]=a[j];
a[j]=m;
}
}
}
System.out.print("降序排序:");
for(i=0;i<N;i++)
{
System.out.print(" "+a[i]);
}
System.out.println();
}
}
import static java.lang.Math.random;
public class Demo
{
public static void main(String args[])
{
final int N = 5;
int a[]=new int[N];
int i,j,m;
//产生随机数
System.out.print("产生的随机数为:");
for(i=0;i<N;i++)
{
a[i]=(int)(random()*10);
System.out.print(" "+a[i]);
}
//逆序输出
System.out.println();
System.out.print("逆序输出随机数:");
for(i=4;i>=0;i--)
{
System.out.print(" "+a[i]);
}
System.out.println();
//降序排序
for(i=0;i<N;i++)
{
for(j=i+1;j<N;j++)
{
if(a[i]>a[j])
{
m=a[i];
a[i]=a[j];
a[j]=m;
}
}
}
System.out.print("降序排序:");
for(i=0;i<N;i++)
{
System.out.print(" "+a[i]);
}
System.out.println();
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询