代码的运行顺序总结


今天的java学习中,我总结了一些简单的java程序运行时代码调用步骤的问题,如下:

(一)基本的Java类的运行顺序:

public class Test {
    private String name = "Java私塾";
    private int age = 2;
    public Test(){
        age = 1000;//期望能到1000年,呵呵
    }
    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.name+"的年龄是"+t.age+"年");
    }
}

运行的基本顺序是:
(1):先运行到第7行,这是程序的入口
(2):然后运行到第8行,这里要new一个Test,就要调用Test的构造方法
(3):就运行到第4行,注意:可能很多人觉得接下来就应该运行第5行了,错!初始化一个类,必须先初始化它的属性
(4):因此运行到第2行,然后是第3行
(5):属性初始化完过后,才回到构造方法,执行里面的代码,也就是第5行
(6):然后是第6行,表示new一个Test实例完成
(7):然后回到main方法中执行第9行
(8):然后是第10行

运行的结果是:Java私塾的年龄是1000年

(二)初始化子类必先初始化父类

public class Test extends Parent{
	private String name = "Java私塾";
	private int age = 2;
	public Test(){
		age = 1000;//期望能到1000年,呵呵
	}
	public static void main(String[] args) {
		Test t = new Test();
		System.out.println(t.name+"的年龄是"+t.age+"年");
	}
}
class Parent{
	private int num = 1;
	public Parent(){
		System.out.println("现在初始化父类");
	}
	public void test(){
		System.out.println("这是父类的test方法");
	}
}


上述类的基本运行顺序是:
(1):先运行到第7行,这是程序的入口
(2):然后运行到第8行,这里要new一个Test,就要调用Test的构造方法
(3):就运行到第4行,注意:初始化子类必先初始化父类
(4):要先初始化父类,所以运行到第14行
(5):然后是第13行,初始化一个类,必须先初始化它的属性
(6):然后是第15行
(7):然后是第16行,表示父类初始化完成
(8):然后是回到子类,开始初始化属性,因此运行到第2行,然后是第3行
(9):子类属性初始化完过后,才回到子类的构造方法,执行里面的代码,也就是第5行
(10):然后是第6行,表示new一个Test实例完成
(11):然后回到main方法中执行第9行
(12):然后是第10行

运行结果是:
现在初始化父类
Java私塾的年龄是1000年

以上是今天学习中遇到问题上网查找资料和自己的总结。明天继续。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 如果你在代码中使用了GTest框架进行单元测试,这不会影响你的代码的原有运行顺序。GTest框架是一种单元测试框架,它不会直接影响代码运行顺序。GTest框架主要用于在测试代码运行一组测试用例,并验证它们的结果是否正确。如果在测试过程中发现错误,则可以使用GTest框架生成详细的错误报告。 ### 回答2: GTest是Google Test的缩写,它是一个用于C++的单元测试框架。GTest本身不会影响原代码运行顺序,因为它只用于编写和执行测试用例。 在测试过程中,GTest会将多个测试用例进行并行执行,测试用例之间的执行顺序是不确定的。但是,在每个测试用例内部的测试步骤会按照代码编写的顺序依次执行。 GTest提供了丰富的断言和测试宏,以便开发人员编写详尽的测试用例来验证代码的正确性。测试用例一般会分为多个测试步骤,每个步骤中都会使用断言来判断期望的结果是否与实际结果一致。 例如,如果要测试一个函数的返回值是否正确,可以使用GTest提供的断言来判断实际返回值与期望返回值是否相等。如果断言失败,GTest会记录该失败,并继续执行后续的测试步骤。 总之,GTest对原代码运行顺序没有直接影响,它只是通过执行测试用例来验证代码的正确性。同时,GTest提供了丰富的断言和测试宏,方便编写详尽的测试用例来确保代码的质量。 ### 回答3: Gtest(Google Test)是一个用于C++的测试框架,用于编写单元测试。在进行单元测试时,Gtest会检查代码的正确性,并通过断言来验证函数的输出和预期结果是否一致。Gtest本身并不会影响原代码运行顺序。 Gtest的测试函数是独立运行的,与原代码的执行顺序无关。在执行测试函数时,Gtest会根据测试用例的定义,调用与之对应的函数进行测试。测试函数可以随时调用被测试代码的函数,以验证其输出是否符合预期。但是,Gtest并不会改变被测试代码的原本运行顺序。 一般情况下,Gtest测试代码和被测试代码是分别编写的。被测试代码通常是在主函数或其他程序入口处执行的,而Gtest测试代码是在运行测试时才执行的。通过Gtest的断言和期望结果进行比较,可以验证被测试代码的正确性。这种分离的设计使得测试代码的存在不会对原代码运行顺序产生影响。 总结来说,Gtest并不会直接影响原代码运行顺序。被测试代码和测试代码是独立的,可以分别执行而不会相互干扰。通过使用Gtest进行单元测试,可以保证被测试代码的正确性,并提高代码的可靠性和稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值