您的位置:首页 > 编程语言 > Java开发

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

2017-09-26 21:05 387 查看
初始化:指给数据对象或变量赋初值。但是不要忘记定义一个变量时,会自动进行初始化的动作,给变量赋一个初始值。

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静态方法只能被对象调用不能被类直接调用。因此,静态方法在类被调用时就初始化分配内存空间了,而非静态方法只有在被类的对象调用时才会被初始化。

当方法和对象无关时,可以定义为静态方法,供所有对象使用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: