1.三个修饰符:private/public、static、final 修饰
private: 表示属性或方法是私有的和public、protect对应
public: 表示公共的,其他类或者该类的子类也允许访问被public修饰的属性或方法
protected: 表示受保护的,不允许其他类访问被protected修饰的属性或方法
但是 ,它允许子类访问被protected修饰的属性或方法(不允许其他类,允许子类访问)
private: 表示私有的,不允许本类之外的类访问,它的子类也不允许访问被private修饰的属性或方法(本类之内访问,子类也不可以访问)
static:表示静态的,是属于某个类的,不属于某个对象的,是对象公有的
final: 最终的,不允许修改,一旦赋值后被final修饰的东西就不再允许修改了
final修饰引用变量时,该引用不能改变其引用地址了
final修饰方法时,被修饰的方法不能够被重写
final修饰的方法比非final方法要快,因为在编译的时候就被静态绑定了,不需要在运行时进行动态绑定
final修饰的类称为final类。通常使用final修饰的类功能是完整的,因为不允许继承(String、Integer等)。
final修饰变量时,该变量在类加载时就会被初始化,会因为对象的创建而创建加载
static修饰变量时,该变量将只被初始化一次,此后不再重新初始化。可见,final和static是不同的,一个类中若有着final和static修饰的两个属性,在创建对象时,static修饰的属性只被初始化一次,而final修饰的属性会随着对象的创建而被创建初始化。
public class ChatFrame implements MessageHandler {
private JFrame frame;//窗口
private JTextArea recvMsg;//JTextArea:文本域组件--接受的文本域
private JTextArea enterMsg;//返回的文本域
private JList userList; //JList:列表控件
private JButton addUserBtn;//按钮组件——添加按钮
private JButton sendBtn;// 发送按钮
private JButton saveBtn;//保存按钮
private DefaultListModel userListModel; //默认的列表模型
private String name;//定义一个名称变量
private int port;//端口
private Messenger messenger;//消息处理
private static final String ECHO_STRiNG = "echo";
public ChatFrame(){
buildGUI();
init();
}
2.因为static修饰的方法,是属于类范畴的,所以,在其他类中调用该类中的静态方法时,可以直接使用 类. 方法()进行调用
这里在其他类中调用ChatUtils类中的静态方法:
//创建对话框中所需的组件,并使用布局管理器将它添加到窗口中
private void buildGUI(){
frame = new JFrame();//创建窗口的实例
frame.setSize(600,300);//设置窗口的大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭操作进程
ChatUtils.locateFrameCenter(frame);//类.方法()进行直接调用
recvMsg = new JTextArea();
recvMsg.setRows(1);
recvMsg.setColumns(10);
JScrollPane scrollRecv = new JScrollPane(recvMsg);
recvMsg.setEditable(false);
3.locateFrameCenter()方法
//将窗口置于屏幕的中间
public static void locateFrameCenter(JFrame frame){
int framewidth = frame.getWidth();//窗口的宽
int frameHeight = frame.getHeight();//窗口的高
Toolkit toolkit = Toolkit.getDefaultToolkit();//返回默认工具包类
Dimension screen = toolkit.getScreenSize();//得到屏幕大小
int screenWidth = screen.width;//屏幕的宽
int screenHeight = screen.height;//屏幕的高
frame.setLocation((screenWidth - framewidth) / 2,(screenHeight - frameHeight) / 2);//得到窗口的坐标
}
4.私有的方法,只能在本类中调用,不能够被子类调用
//创建对话框中所需的组件,并使用布局管理器将它添加到窗口中
private void buildGUI(){
frame = new JFrame();//创建窗口的实例
frame.setSize(600,300);//设置窗口的大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置默认关闭操作进程
ChatUtils.locateFrameCenter(frame);//将窗口置于屏幕的中间
recvMsg = new JTextArea();
recvMsg.setRows(1);
recvMsg.setColumns(10);
JScrollPane scrollRecv = new JScrollPane(recvMsg);
recvMsg.setEditable(false);