Java学习笔记-构造器初始化
2017-09-26 21:05
387 查看
初始化:指给数据对象或变量赋初值。但是不要忘记定义一个变量时,会自动进行初始化的动作,给变量赋一个初始值。
1.初始化的顺序:
在类内部,变量定义的先后顺序决定了初始化的顺序。即使变量定义散布于方法定义之间,仍会在所有方法(包括构造方法)调用之前对所有的变量进行初始化。如果一个引用在构造方法前调一次,在构造方法中又调一次的话,第一次调用的对象将被丢弃,作为垃圾回收。
例如:
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静态方法只能被对象调用不能被类直接调用。因此,静态方法在类被调用时就初始化分配内存空间了,而非静态方法只有在被类的对象调用时才会被初始化。
当方法和对象无关时,可以定义为静态方法,供所有对象使用。
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静态方法只能被对象调用不能被类直接调用。因此,静态方法在类被调用时就初始化分配内存空间了,而非静态方法只有在被类的对象调用时才会被初始化。
当方法和对象无关时,可以定义为静态方法,供所有对象使用。
相关文章推荐
- 对象初始化学习笔记PersonDemo2.java
- java学习笔记-类的初始化
- java学习笔记---构造器的多态和调用顺序
- Thinking In Java 学习笔记 - 初始化与清理
- java学习笔记12——构造器
- 深入Java虚拟机JVM类加载初始化学习笔记
- java学习笔记struts----action初始化时间和次数
- 【thinking in java】学习笔记 三 初始化及权限控制
- java学习笔记——java中对象的创建,初始化,引用的解析
- Java学习笔记——初始化与清理
- 《Thinking in Java》狗血的学习笔记-3初始化
- JAVA学习笔记(类初始化变量)
- java学习笔记(类引用未初始化)
- java学习笔记4:对象的初始化顺序(官方实例)
- Java学习笔记(成员变量初始化补充)
- java 从零开始,学习笔记之基础入门<类_方法_构造器>(三)
- Java学习笔记(1) 对象初始化顺序
- java学习笔记 类初始化 调用static变量是否会初始化
- 新手JAVA学习笔记2——解读构造器
- Java学习笔记5 - 成员初始化