Java学习笔记-构造器初始化

来源:互联网 发布:奥比岛刷奥币软件 编辑:程序博客网 时间:2024/06/06 00:33

初始化:指给数据对象或变量赋初值。但是不要忘记定义一个变量时,会自动进行初始化的动作,给变量赋一个初始值。

1.初始化的顺序:
在类内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,仍会在所有方法(包括构造方法)调用之前对所有的变量进行初始化。如果一个引用在构造方法前调一次,在构造方法中又调一次的话,第一次调用的对象将被丢弃,作为垃圾回收。
例如:

public class StuInfoGui {    public JFrame jFrame = new JFrame();    static String[] columns = {"学号","姓名","性别","院系","分数","籍贯","联系方式","邮件地址"};    public static int rowNum = -1;    public String[][] infoArr;    public JTable infoJTable ;    public JScrollPane jScrollPane;    public static final int OPT_TYPE_INSERT = 1;    public static final int OPT_TYPE_UPDATE = 2;    public StuInfoGui(){        jFrame = new JFrame();        jFrame.setLocation(100, 100);        jFrame.setSize(800, 400);        jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);    }    public void initJFrame(){        infoArr = ListChangetoArrary.listChangeToArr();        infoJTable = initShowInfo(infoArr);        jScrollPane = new JScrollPane(infoJTable);        jFrame.add(jScrollPane);        jFrame.add(initButtonJPanel(), BorderLayout.NORTH);        jFrame.setVisible(true);    }   } public static void main(String[] args) {     StuInfoGui stuInfoGui = new StuInfoGui();     stuInfoGui.initJFrame();  }}

StuInfoGui stuInfoGui = new StuInfoGui();
初始化stuIndoGui时,会先初始化一遍jFrame,再调用构造方法时再初始化一遍jFrame

2.静态变量和静态方法初始化:
静态变量:
上面代码中,public static int rowNum = -1; rowNum为静态变量。用static标识一个变量或者方法是静态的。
静态变量不管被初始化多少次都只占一份存储空间,即不管创建多少个对象,这些对象都共同访问同一个静态变量的存储空间。分配一次存储空间,供所有对象访问。静态变量的值可以被改变。
例如:
StuInfoGui stuInfoGui1= new StuInfoGui();
StuInfoGui stuInfoGui2= new StuInfoGui();
stuInfoGui1和stuInfoGui2所初始化的rowNum的存储空间是同一个。

静态方法:
静态方法与静态变量一样,都是类的内部实现,属于类定义的一部分。
静态方法可以被类名直接调用,非static静态方法只能被对象调用不能被类直接调用。因此,静态方法在类被调用时就初始化分配内存空间了,而非静态方法只有在被类的对象调用时才会被初始化。
当方法和对象无关时,可以定义为静态方法,供所有对象使用。

原创粉丝点击