java中类的创建及初始化过程无外乎两种情况,其一为单类的创建及初始化,其二具有继承关系的父子类创建及初始化过程。
首先说简单的,单类的创建及初始化过程。在java中我们都知道绝大部分对象的创建时通过new 这个关键字来完成,当我们在自己的
代码中写上
new ClassName();//创建 ClassName类的一个实例
时,解释器当截取new这个关键字时,就会为ClassName量身定做一个内存空间,这个时候也就是为该类中的所有成员变量分配内存空间之时,
并对其进行最原始的初始化,所有引用类型将其制成null 基本数据类型为0;之后解释器会继续解释执行到 ClassName();这句话,也就是该类的
构造器,调用指定的类的构造方法(根据用户的需求初始化对象)。然而这里面有一种成员变量并不完全在此过程中被初始化,此成员变量为
静态成员变量,它是在当类静态属性或方法第一次被调用或者该类第一次被创建对象时被初始化。
接下来是继承关系下父子类的创建和初始化过程。中国有句古话:“没有父亲,哪来的儿子”。java中继承关系下的类创建正式应证这句话。
当我们试图去创建一个子类时,java解释器发现该类继承了其他类,所以就会先去创建其父类,切记这个时候并没有为子类分配任何的内存空间,
而是直接越过自己的创建过程去创建父类,如果检查到父类也继承了其他类,java解释器就会依此类推继续创建父类的父类。直到最后一个根父类
被分配内存后才会创建子类。而构造方法的调用则是从子类开始的,但是在子类的构造方法中必须去调用父类的构造方法,经常性的我们没有看到
在子类的构造方法中显示的调用父类的构造方法,那是因为解释器隐式的调用了父类默认的无参构造方法,然而当我们通过重载机制将父类的默认
构造方法覆盖时,那么在子类中就必须显示的调用父类的构造方法
相关文章
- 关于JAVA中变量的初始化及类属性的默认值问题
- 4.编写Java应用程序。首先,定义一个时钟类——Clock,它包括三个int型 成员变量分别表示时、分、秒,一个构造方法用于对三个成员变量(时、分、秒) 进行初始化,还有一个成员方法show()用于显示时钟对象的时间。其次,再定义 一个主类——TestClass,在主类的main方法中创建多个时钟类的对象,使用这 些对象调用方法show()来显示时钟的时间。
- 【汇总】java中数组的声明、初始化及遍历
- Java中类变量和实例变量的初始化
- 深入理解Java对象的创建过程:类的初始化与实例化
- 浅谈Java类中的变量初始化顺序
- FreeNOS中C++源码部分相关类构造函数以及方法函数的初始化过程(六)
- Winform主菜单两种实现方式-1.)从工具箱中双击MenuStrip控件,窗体的顶部就会放置一个MenuStrip控件,或者在工具箱中单击MenuStrip控件,拖至窗体中也可以. 2.)在MenuStrip的“Type Here”输入主菜单和菜单名字,热键用(&X)表示. 用快捷键选择主菜单,可以用Alt + 预定义的按键来实现,子菜单的选择只需要按定义的热键即可. 3.)双击File*菜单下面的子菜单,创建子菜单Open、Save、Exit的单击事件代码: private void OpenOToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog { //初始化打开对话框的路径 InitialDirectory = @"D:\", Title = "Open File", //定义可显示的文件类型; Filter = "txt file(*.txt)|*.txt|All file(*.*)|*.*", //定义默认显示的文件类型为txt FilterIndex = 1, //对话框关闭后将复位初始化路径 RestoreDirectory = true }; if (ofd.ShowDialog == DialogResult.OK) { //根据打开对话框选择的文件名,加载文本内容到富文本框中. richtxtContent.Text = File.ReadAllText(ofd.FileName); } } private void SaveSToolStripMenuItem_Click(object sender, EventArgs e) { SaveFileDialog sfd = new SaveFileDialog { //初始化保存对话框的路径 InitialDirectory = @"D:\", Title = "Save File", //定义可显示的文件类型; Filter = "txt file(*.txt)|*.txt|All file(*.*)|*.*", //定义默认显示的文件类型为txt FilterIndex = 1, //对话框关闭后将复位初始化路径 RestoreDirectory = true }; if(sfd.ShowDialog == DialogResult.OK) { //保存文件 File.WriteAllText(sfd.FileName, richtxtContent.Text); //清空富文本框内容 richtxtContent.Clear; } } private void exitEToolStripMenuItem_Click(object sender, EventArgs e) { Application.Exit; } 4.)执行下程序,加载指定的txt文件到富文本框中,如下: 5.)在富文本框中更新加载进来的txt文件内容. 6.)Alt + F热键打开文件的下拉菜单,单击S保存富文本框中的内容到指定的文件.打开txt验证菜单单击事件保存文件成功. 二.实现winform主菜单的方法2:MenuStrip类和toolStripMenuItem类实例化对象,在主窗体加载事件中实现如下代码:
- 编写Java程序,模拟简单的计算器。 定义名为Number的类,其中有两个整型数据成员n1和n2,应声明为私有。编写构造方法,赋予n1和n2初始值,再为该类定义加(addition)、减(subtration)、乘(multiplication)、除(division)等公有成员方法,分别对两个成员变量执行加、减、乘、除的运算。 在main方法中创建Number类的对象,调用各个方法,并显示计算结
- python 中类的初始化过程 - 会飞の鱼