九、Java类的基本运行顺序 作为程序员,应该对自己写的程序具备充分的掌控能力,应该清楚程序的基本运行过程,否则糊里糊涂的,不利于对程序的理解和控制,也不利于技术上的发展。 我们以下面的类来说明一个基本的Java类的运行顺序: 第1行publicclass Test { 第2行 private String name = "Java私塾"; 第3行 privateint age = 2; 第4行 public Test(){ 第5行 age = 1000;//期望能到1000年,呵呵 第6行 } 第7行 publicstaticvoid main(String[] args) { 第8行 Test t = new Test(); 第9行 System.out.println(t.name+"的年龄是"+t.age+"年"); 第10行 } 第11行 } 运行的基本顺序是: (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年 说明:这里只是说明一个基本的运行过程,没有考虑更多复杂的情况。 作业 1.当你试图编译和执行下面的程序时会发生什么? class Mystery{ String s; public static void main(String[] args){ Mystery m=new Mystery(); m.go(); } void Mystery(){ s="constructor"; } void go(){ System.out.println(s); } } 选择下面的正确答案: A 编译不通过 B 编译通过但运行时产生异常 C 代码运行但屏幕上看不到任何东西 D 代码运行,屏幕上看到 constructor E 代码运行,屏幕上看到 null 以下是编程题: 1.编写一个名为MyPoint类,其中含有int类型的x 和y 属性,并写出有参和无参的两个构造方法,以及getX和setX、getY 和setY 方法,再重写toString方法用来显示对象的x、y的值,如显示(1,2),然后进行调试。 2.将上面的MyPoint类对象x和y属性的值由命令行输入,根据命令行参数个数,若不带任何命令行参数,则显示(0,0);若传一个参数,则打印(此参数值,0);若传两个参数,则打印(第一个参数值,第二个参数值)。 3.设计一个银行帐户类(Account),具有户名(accountName)、帐号(accountNo)、余额(balance)等属性,以及存款(deposit)、取款(withdraw)等方法,并对此类进行测试。 4.设计个Circle类,其属性为圆心点(类型为前面设计的类MyPoint)和半径,并为此类编写以下三个方法: 一是计算圆面积的calArea()方法; 二是计算周长的calLength(); 三是boolean inCircle(MyPoint mp)方法,功能是测试作为参数的某个点是否在当前对象圆内(圆内,包括圆上返回true;在圆外,返回false)。 5.创建一个桌子Table类,该类中与桌子名称、重量、桌面宽度、长度和桌子高度属性, 以及以下几个方法。 1) area(): 计算桌面的面积。 2) display(): 在屏幕上输出所有成员变量的值。 3) changeWeight(int w): 改变桌子重量。 然后在main放中实现创建一个桌子对象,计算桌面的面积,改变桌子重量,并在屏幕上输出所有桌子属性的值。 上面任务完成后,再为table类添加几个构造方法,并在main方法中调用不同的构造方法,创建几张桌子。然后进行调试。 6.编写一个MyArray 类,其中添加一个属性为整型数组,再添加一个构造方法对数组赋初值,以及为该类添加数组求和方法,返回求和得到的值。最后写一个测试类利用MyArray类计算数组的求和值并输出。 Java私塾跟我学系列——JAVA篇 网址:http://www.javass.cn 电话:010-68434236 |