首先,我想说,这个类其实什么都没干,就是定义了一些变量和这样变量相应的set。get方法,当然还有这个类的构造函数。以下是解释:
package comtestbean; //说明你的类所在的包
// default package
import javasqlTimestamp; //导入所需要的类。
/
Mess entity @author MyEclipse Persistence Tools //注释。不用管
/
public class Mess implements javaioSerializable {//定义类,实现了javaioSerializable 接口
// 以下5句定义了5个私有变量
private Integer messageId;
private String roomName;
private String sendName;
private String context;
private Timestamp messDate;
// Constructors
/ default constructor /
//以下是构造函数,就是所有Mess()函数,函数有几个,但参数不一样,这个是函数的重载。
public Mess() { }
/ minimal constructor /
public Mess(Timestamp messdate) {thismessDate = messdate; }
/ full constructor /
public Mess(String roomName, String sendName, String context, Timestamp messdate) {
thisroomName = roomName;
thissendName = sendName;
thiscontext = context;
thismessDate = messdate;
}
// Property accessors
//以下是上面定义的变量的set和get方法,java给类里的变量赋值和得到类里的变量值都是用get,set方法的。
public Integer getMessageId() {
return thismessageId;
}
public void setMessageId(Integer messageId) { thismessageId = messageId; }
public String getRoomName() { return thisroomName;
}
public void setRoomName(String roomName) {
thisroomName = roomName;
}
public String getSendName() { return thissendName; }
public void setSendName(String sendName) {thissendName = sendName; }
public String getContext() {return thiscontext;}
public void setContext(String context) {thiscontext = context;}
public Timestamp getMessDate() {
return messDate;
}
public void setMessDate(Timestamp messDate) {thismessDate = messDate; }
然后就没了。。。真的里面什么内容都没有,就是构造函数重载了,需要看看,下面的set,get方法直接无视,eclipse都可以自动生成。
实现java聊天室的方法其实很简单,你可以直接用第三方IM SDK来进行开发,像即构科技的IM SDK就不错,即构的IM产品不仅支持基础的单聊/群聊功能,还支持消息高并发量的房间聊天,单房间人数支持到百万以上。总的来说可以为开发者提供全平台互动、海量并发、超低延时、消息必达的通信服务,助力打造大型直播、语聊房、客服系统等场景。
1、课程收获与不足
自己的收获
经过一个学期的JAVA课程学习,现在虽说算不上什么专业的JAVA程序员,但我还是很有收获。了解了这门语言,探索了这门语言,认知了这门语言。我从一个什么都不懂的菜鸟,到现在能够自己编一个简单的程序并使其跑起来,在本学期末还与小组成员成功编译运行了一个JAVA游戏,感觉十分有成就感呢!回首之前的学习历程,要想真正有所学,有所得,必须持之以恒,踏踏实实的跟着娄老师的“方针政策”走,不要有排斥心理。刚开始学习JAVA的时候的确不习惯,觉得很累,每周的java学习与博客总结都会占用周末业余时间。不过心态一定要好,反正要做,还不如把它做好,不要敷衍自己。万事开头难,习惯成自然!哈哈哈,虽然已经学了一学期JAVA了,但其实还有好多好多东西是需要自己去探索的。学习JAVA应该是循环渐进,按部就班,脚踏实地的。对了,JAVA课程是我第一次接触翻转课堂,翻转课堂讲究的是自己主动学习,主动探索,然后把问题反馈给老师,老师在课堂上解答。不过由于c语言学的不是很好,所以刚开始看到JAVA的时候,看着源代码,都不知道是什么意思,看书的时候一看到源代码就头疼,因为根本看不懂,那段时间挺挫败的。不过幸好每周都要考试!所以这也是驱动我学习的一个主要原因,想要拿高分,就得花时间看,把不懂的想尽办法弄懂。于是最开始最艰难的那段时间,我大部分课下时间都花在JAVA上,不懂的问高其和周正一,再加上翻书,网上查阅资料。三周下来,效果也挺明显的,并且我觉得JAVA这门语言虽然很高级但并不复杂,很多功能都是可以直接调用的,不需要自己亲手去编。世上无难事,只怕有心人。对于任何新生事物,我们首先不要排斥,如果可以,带着兴趣去探索,必定其乐无穷!受益匪浅!这学期也是我第一次接触到博客园。我感觉博客园真的是一个集思广益的地方,大家可以把自己的学习心得体会都通过博客的形式发表出来,然后其他人就可以去阅读、去参考别人成功的方法,有什么问题也可以建立一个小组,然后博主会和大家互动,共同探讨,解决问题。一学期的博客园生涯让我逐渐喜欢上了这里。记住,学JAVA,一定要做到课前预习与课后复习,书上的概念要理解透彻,代码一定要过手;多和同学沟通,互相学习,取长补短。娄老师说过,知识是学不完的,重要的是要找到一种适合自己的高效的学习方法,这将受益终生。
2、自己需要改进的地方
我觉得应该多看别人的博客,多与别人进行交流,但是本学期学习压力较大,这方面做得不够好,所以这是我的一大遗憾!其次,对JAVA的不同库的掌握需要增进,一旦对JAVA各种库的引用融会贯通,对较大程序的编写就能事半功倍,效率远超C语言,这也是JAVA最吸引我的一个地方。还有就是学JAVA千万不要浮躁,不要赶进度。说到浮躁,这也是一个很值得我深思的问题,我觉得我刚开始还没完全接受JAVA的时候,就比较浮躁。做事停留在表面,敷衍。经过后来逐渐调整,才慢慢改变。真正学习的时候,浮躁会使你失去很多。
如果有结对,写一下你提供的帮助或接受了什么帮助,并对老师提供参考意见
在实验三和实验五阶段都有结对的部分。通过结对,我深刻地明白了团队合作的重要性。团队精神能推动团队运作和发展。在团队精神的作用下,团队成员产生了互相关心、互相帮助的交互行为,显示出关心团队的责任感,并努力自觉地维护团队的集体荣誉。我觉得结对编程这一环节很好,不仅让大家能够明确分工,合作的编写出程序,而且能培养大家的默契,让我们能够在实际 *** 作过程中更好的编写代码。要想成功编写程序,这一过程是很复杂的,而团队方式可以使其简单许多,遇到问题的时候可以大家一起想,集思广益,而且团队 *** 作在很大程度上还可以实现优势的互补(比如git代码,然后共享)。
3、给学弟学妹们的意见
如果重新学习这门课,怎么做才可以学得更好?
如果可以重新学习这门课的话,我想我会做的更好。首先我会找一本好的书本教材,然后辅助看教学视频。因为翻转课堂更强调的是自己主动学习,主动探索,主动发现问题。一本好的教材,可以让你更快更好的进入Java的世界,然后看视频是一种比较直观的辅助学习方式。建议先看课本,发现不懂的地方,再结合视频,这样效果更好,如果视频上没有讲到的,就通过其他方式解决。老师之前会发视频链接,那里面讲的内容(毕向东老师主讲)都很不错。书上概念与代码搞懂了后,自己一定要主动动手敲代码!因为看懂和学懂完全是两回事,一定要学好基本语法,弄清Java语言的特点。刚开始学习时,有些知识可能有些难懂,自己也不会敲代码。不过这没关系,这很正常。多看多问,多实践,慢慢的你就入门了。千万不要投机取巧!主动敲代码真的是学JAVA的精髓!JAVA和其他的编程语言一样,在学懂理论后,一定要实践。只有多动手编程,哪怕是简单的小程序,重复实现书上简单的例子,也是在积累和提高。
4、问卷调查
你觉得这门课老师应该继续做哪一件事情?
老师应该继续要求扇贝打卡与五笔打字练习,然后期末加分。这种方法很值得提倡,希望能够继续做下去。这不仅可以调动大家学习的积极性,而且还让我们的英语水平提高了很多,对于四六级以及以后在工作中打字速度等其他的方面都有很大的帮助。在博客园里发表博客也是很好的一种总结心得体会的方法,值得提倡。博客园是一个集思广益的地方,大家把自己的学习心得体会都通过博客的形式发表出来,然后大家可以交流意见,有什么不懂的也可以直接在问题小组里提出来,共同探讨,共同解决问题。这种感觉很棒。对了,每周一考我也觉得这必不可少,可以敦促学生的学习进度。
你觉得这门课老师应该停止做哪一件事情?
感觉每周的学习任务还是偏重了,几乎要占据半个周末的时间来搞JAVA。老师应根据每周学习内容的难易程度,合理调配学习任务量。
你觉得这门课老师应该开始做什么新的事情?
希望老师在课上多讲一点关于教材知识的内容(包括实验),让我们能够更高效更有针对性的去学习JAVA。因为教材的内容太多,盲目的去看就会浪费很多时间。如果因为赶进度,只是囫囵吞枣的看一遍教材的话,我们就不能很好的去理解java的相关知识。
/
基于UDP协议的聊天程序
2007918
/
//导入包
import javaawt;
import javaawtevent;
import javaawteventActionEvent;
import javaawteventActionListener;
import javaxswing;
import javanet;
public class Chat extends JFrame implements ActionListener
{
//广播地址或者对方的地址
public static final String sendIP = "172188255";
//发送端口9527
public static final int sendPort = 9527;
JPanel p = new JPanel();
List lst = new List(); //消息显示
JTextField txtIP = new JTextField(18); //填写IP地址
JTextField txtMSG = new JTextField(20); //填写发送消息
JLabel lblIP = new JLabel("IP地址:");
JLabel lblMSG = new JLabel("消息:");
JButton btnSend = new JButton("发送");
byte [] buf;
//定义DatagramSocket的对象必须进行异常处理
//发送和接收数据报包的套接字
DatagramSocket ds = null;
//=============构造函数=====================
public Chat()
{
CreateInterFace();
//注册消息框监听器
txtMSGaddActionListener(this);
btnSendaddActionListener(this);
try
{
//端口:9527
ds =new DatagramSocket(sendPort);
}
catch(Exception ex)
{
exprintStackTrace();
}
//============接受消息============
//匿名类
new Thread(new Runnable()
{
public void run()
{
byte buf[] = new byte[1024];
//表示接受数据报包
while(true)
{
try
{
DatagramPacket dp = new DatagramPacket(buf,1024,InetAddressgetByName(txtIPgetText()),sendPort);
dsreceive(dp);
lstadd("消息来自◆" + dpgetAddress()getHostAddress() + "◆"+"说:" + new String (buf,0,dpgetLength()) /+ dpgetPort()/,0);
}
catch(Exception e)
{
if(dsisClosed())
{
eprintStackTrace();
}
}
}
}
})start();
//关闭窗体事件
thisaddWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent w)
{
Systemoutprintln("test");
int n=JOptionPaneshowConfirmDialog(null,"是否要退出","退出",JOptionPaneYES_NO_OPTION);
if(n==JOptionPaneYES_OPTION)
{
dispose();
Systemexit(0);
dsclose();//关闭ds对象//关闭数据报套接字
}
}
});
}
//界面设计布局
public void CreateInterFace()
{
thisadd(lst,BorderLayoutCENTER);
thisadd(p,BorderLayoutSOUTH);
padd(lblIP);
padd(txtIP);
padd(lblMSG);
padd(txtMSG);
padd(btnSend);
txtIPsetText(sendIP);
//背景颜色
lstsetBackground(Coloryellow);
//JAVA默认风格
thissetUndecorated(true);
thisgetRootPane()setWindowDecorationStyle(JRootPaneFRAME);
thissetSize(600,500);
thissetTitle("〓聊天室〓");
thissetResizable(false);//不能改变窗体大小
thissetLocationRelativeTo(null);//窗体居中
thissetDefaultCloseOperation(JFrameDO_NOTHING_ON_CLOSE);
thissetVisible(true);
txtMSGrequestFocus();//消息框得到焦点
}
//===============================Main函数===============================
public static void main(String[]args)
{
new Chat();
}
//================================发送消息===============================
//消息框回车发送消息事件
public void actionPerformed(ActionEvent e)
{
//得到文本内容
buf = txtMSGgetText()getBytes();
//判断消息框是否为空
if (txtMSGgetText()length()==0)
{
JOptionPaneshowMessageDialog(null,"发送消息不能为空","提示",JOptionPaneWARNING_MESSAGE);
}
else{
try
{
InetAddress address = InetAddressgetByName(sendIP);
DatagramPacket dp = new DatagramPacket(buf,buflength,InetAddressgetByName(txtIPgetText()),sendPort);
dssend(dp);
}
catch(Exception ex)
{
exprintStackTrace();
}
}
txtMSGsetText("");//清空消息框
//点发送按钮发送消息事件
if(egetSource()==btnSend)
{
buf = txtMSGgetText()getBytes();
try
{
DatagramPacket dp = new DatagramPacket(buf,buflength,InetAddressgetByName(txtIPgetText()),sendPort);
}
catch(Exception ex)
{
exprintStackTrace();
}
txtMSGsetText("");//清空消息框
txtMSGrequestFocus();
}
}
}
要实现 Java 的一对一聊天室,可以使用 Socket 编程实现基于 TCP 协议的通信。
以下是一些大致的步骤:
创建服务器端程序:创建一个服务器端程序,等待客户端的连接请求。在连接请求到来时,服务器会创建一个新的线程来处理这个连接请求。
创建客户端程序:创建一个客户端程序,连接服务器端程序。在连接成功后,客户端可以发送消息给服务器,服务器会将这些消息转发给接收方。
实现消息传输:在客户端和服务器之间,通过输入流和输出流传输数据。客户端向服务器发送消息时,使用输出流将消息发送给服务器;服务器收到消息后,使用输入流读取消息内容。
实现一对一通信:当客户端和服务器建立连接后,可以通过指定接收方的用户名来实现一对一通信。客户端向服务器发送消息时,需要指定接收方的用户名,服务器将根据用户名查找对应的客户端,并将消息发送给指定的客户端。
实现界面交互:可以使用 JavaFX、Swing 等图形界面库,实现聊天窗口的显示和用户的输入。用户在聊天窗口中输入消息后,客户端将消息发送给服务器,服务器将消息转发给接收方。
需要注意的是,为了保证通信的可靠性和安全性,需要对数据进行加密和校验,同时也需要考虑并发访问的问题,防止多个线程同时访问导致数据错乱的情况发生。
以上就是关于麻烦对下面的java代码进行每段注释,关键有用的语句给点中文注释说明,这是个聊天室程序的一部分,详见下全部的内容,包括:麻烦对下面的java代码进行每段注释,关键有用的语句给点中文注释说明,这是个聊天室程序的一部分,详见下、java聊天室是怎么实现的、《java程序设计》课程总结怎么写(java程序设计总结体会)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)