static
静态关键字-static
1.static-修饰成员变量
-通过类名直接访问static修饰的属性 类名.属性
-属性将不在属于对象了,而用于描述类
-static 修饰的成员变量存储早方法区中,且独一份
2.static-修饰成员方法
-类名.方法
-静态方法中不能访问非静态成员
3.static 块—加载静态资源
结构:static{}
4.非静态代码块
{}
5.类加载机制
静态代码块 > 代码块 > 构造方法
!!!当有static修饰的内容或代码块,会在类加载期间执行这段代码
final
final关键字 —最终类
1.final关键字修饰类
-不能被继承!–意义:防止滥用继承
2.final关键字修饰成员变量
-不能被改变
-成员变量的初始化
-可以分开赋值,通过构造方法
3.final关键字修饰方法
-final修饰的方法不能被重写
4.final关键字修饰常量
-static和final共同修饰的量为常量
-声明方式:声明时初始化
-命名方式是全大写,不同单词之间用下划线分隔开
-用在工厂类中
-常量编译时常量会直接替换为常量值
窗体的创建
MyThirdJFrame类
import javax.swing.*;
/**
* 窗体创建的第三种方式
* 考虑继承
*/
public class MyThirdJFrame extends JFrame{
public MyThirdJFrame() {
this.setTitle("My Third JFrame");
this.setBounds(Factory.jFrameX,Factory.jFrameY,Factory.jfWidth,Factory.jfHeight);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new MyThirdJFrame();
}
}
Factory类
import java.awt.*;
public class Factory {
public static int width = Toolkit.getDefaultToolkit().getScreenSize().width;
public static int height = Toolkit.getDefaultToolkit().getScreenSize().height;
public static int jfWidth = 800;
public static int jfHeight =600;
public static int jFrameX = width / 2 - jfWidth / 2;
public static int jFrameY = height / 2 - jfHeight / 2;
}