为什么使用private/public/ static final 修饰属性或方法

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);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值