普通程序员和顶级程序员5个思维模式上的区分!


丑话先说在前面:这些都仅仅是顶尖程序员的一些根本的思想方法,不能代表你学了这个就能成为顶尖的程序员。假如你想要更具体的了解在Google,Facebook,Twitter这些公司的顶尖程序员是怎么工作的,就多看看他们的博客吧

下面开始正题:顶级程序员优于普通程序员的5个基础思维模式

跟着顶尖程序员才能学到顶尖的思路

突入大量的时间去研究新的代码

能随意解决各种开发过程中遇到的问题,精通调试各种代码

珍惜时间,不要花时间去做机器可以代替你去做的事情。

优化自己的迭代速度,注意所有琐碎的细节并逐步改善他们

用系统性的思考方式,写出真正有影响力的代码

这些疑问都不是很简单就能答复的,但是在写代码的时候,你最起码要理解你的代码,要知道你的代码最后能不能得到最佳的结果。好的编程习惯一定要从点滴上面养成 流程:我打算从好多个点为大家仔细解析一下这个Java程序的开发思路和实现过程

1.Awt/Swing 包制作的聊天界面(全部用Java代码实现)

一个java窗体的大致流程:窗体(Frame)――容器(Container)――(设置容器布局)――面板 (Panel)――(设置面板布局)――控件

2.有了上面知识的铺垫,我们可以再写一个简单的登录界面了。(如果需要更多的企业求职加分项目和案例的源码及思路分享!包括答疑解惑!)

登陆界面Java代码

import java.awt.*;

import javax.swing.*;

class wyMain extends JFrame {

JTextField tsend; //在外部声明文本框,用来写留言

JComboBox clist; //声明下拉列表框,用来罗列在线用户

JTextArea ta; //声明大型文本区,用来显示聊天记录

wyMain(String title)

{

super(title); //访问父类

JFrame 的构造函数,为窗体实现标题

this.setSize(400,300); //窗体为 400 宽,300 高

this.setLocation(150,250);

Container con=this.getContentPane();

con.setLayout(new BorderLayout()); //设置窗体布局为 BorderLayout

JPanel pp=new JPanel();

JPanel p1=new JPanel();

JPanel p2=new JPanel();

ta=new JTextArea(); //实例化大型文本区

ta.disable(); //设置只读属性

pp.setLayout(new GridLayout(2,1)); //把 pp 设成[2,1]格式的网格布局

pp.add(p1); //在(1,1)单元格放 p1

pp.add(p2); //在(2,1)单元格放 p2

con.add(p,BorderLayout.NORTH); // Container 把 pp 放在窗体北边 con.add(ta,BorderLayout.CENTER);

//Container 把文本区放在中间部位,让它能拥有足够的空间

JLabel l1=new JLabel(“留言:”);

JLabel l2=new JLabel(“To:”);

tsend=new JTextField(30); //实例化文本框

clist=new JComboBox(); //实例化下拉列表框

JButton bSend=new JButton(“Send”);

p1.add(l1);

p1.add(tsend);

p2.add(l2);

p2.add(clist);

p2.add(bSend);

clist.addItem(“所有人”); //下拉列表框添加一项内容

}

}

我们现在有了一个叫做“主界面”的 java类,我们给这个类加上主函数再运 行:

public static void main(String args[]){

wyMain wm=new wyMain(“聊天窗口”);

wm.show();

}

3.添加事件

我们的聊天程序现在已经有了界面了,但是我们必须想法子让界面上的控件能 够实现它的具体功能,

不然的话界面再漂亮也是毫无意义的。于是我们需要为 窗体定义一些事件。

事件1

事件2

设立事件监听器:拿上面的例子来说,人的皮肤就是负责监听事件传来消息的监听器 。在java 中,事件监听器就是一个接口。 我们如果想让窗体对一种事件做出响应,我们就必须为窗体植上“皮 肤”—— 设立监听器。

为了登录功能能够实现,我们现在在 wyClient 中设立按钮事件的监听 器。(Java代码)

监听器弄好之后,聊天的界面基本就完成了

I/O 操作(聊天记录)

我们在上个章节实现了程序的界面,包括像布局、事件、控件、容器等不 可或缺的基本因素。这时我们会发现一个问题:不论如何在界面中发送信息, 关闭程序后再打开,所有的消息都会清空掉。因为这时我们的程序根本就是重 新创建的,原来的变量控件都已经不存在了。 这时我们需要再写一段代码,把输入过的留言都写到一个文件中。在java中操作文件需要用到输入流和输出流。我们需要在程序中导入java.io.*工具 包。包中放的是一组流类。

这里我们只简单讲解一下字节输入流(FileInputStream )和字节输出流 (FileOutputStream)。

字符输入流(FileInputStream)

FileInputStream 类可以实例化,用于从磁盘文件读取数据。我们可以 以下面几种方式实例化该类:

(1)将文件名作为构造函数的参数,如: FileInputStream fs = new FileInputStream(“c:/temp.txt”);

(2)将File 类的对象作为构造函数的参数,如: File f = new File(“c:/temp.txt”); FileInputStream fs = new FileInputStream(f);

File 类是一个用来描述文件的文件名或者所在路径的java 类。

字符输出流(FileOutputStream)

我们把上面的代码的功能加强一下,变成能够拥有写入功能的代码。就叫字符输出流(FileOutputStream)

用java.net包编程(用户身份验证和通讯)

现在我们的聊天程序有事件响应,可以登录,可以留言,留言还可以被长 期保存起来。不过美中不足的是:

一、目前为止我们的用户名和密码验证一直是在客户端进行的。如果我们 的程序是 BS 结构的,那么我们的验证就不能放在客户端上进行,那样的话“BS 结构”会变得只是一句空话。

二、使用一个 CS 结构的聊天程序并不是在聊天,而是在自言自语,我们 需要通过途径与网络中别的用户取得联系。

要实现 BS 结构的理念,我们就得编写一个能实现服务器功能的程序。

java.net 包为网络化编程提供了功能强大的工具—— 一些基于套接字的客 户端/服务器端的类。(套接字是一种进程间的数据交换机制,这些进程既可以在同一机器上,也可 以通过网络连接的不同机器上。换句话说,套接字起到通信端点的作用。单个套 接字是一个端点,而一对套接字就构成了双向通信的通道,使即使不在同一台机 器上的程序也可以通过网路进行数据交换,直到其中一个端点关闭连接。 套接字与主机地址和端口地址相关联。主机地址是客户端或服务器程序所在 的主机的 IP 地址。端口地址是机器使用的通信端口。)的客 户端/服务器端的类。

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/290292.html

(0)
上一篇 2022年10月1日
下一篇 2022年10月1日

相关推荐

发表回复

登录后才能评论