![JAVA程序设计实验教程](https://wfqqreader-1252317822.image.myqcloud.com/cover/702/25170702/b_25170702.jpg)
三、实验内容
(一)类的声明与使用
1.使用Eclipse创建名为“task3_1”的Java项目
在该项目中创建一个名为“Rectangle”的Java类,该类实现图3-1所示UML类图的功能(Rectangle类代码自行实现)。在“task3_1”项目中再创建一个名为“Task3_1”的Java主类,在该类的main方法中使用Rectangle类,参考代码如图3-2所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0040_0001.jpg?sign=1739350897-w90GEfZB655Dkwm1NXvzf1JO1colkYVT-0-f5743cc1c89f8eebfb72ca3ec86e2146)
图3-1 Rectangle UML类图功能界面
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0040_0002.jpg?sign=1739350897-WZiZ7kkGYWO7rluhp4NFjgp0XFEYolIb-0-ef244a9d5c9a3ff562da5528179c9624)
图3-2 main方法中使用Rectangle类参考代码
2.使用Eclipse创建名为“task3_2”的Java项目
在该项目中创建一个名为“Sector”的Java类,该类实现图3-3所示UML类图的功能。在“task3_2”项目中再创建一个名为“Task3_2”的Java主类,在该类的main方法中使用Sector类,参考代码如图3-4所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0040_0003.jpg?sign=1739350897-xPUkkQb9JKcqaB4Lf4y6oLi0mLizZL4X-0-961caa9889ba60f978948dbaa07b52c7)
图3-3 Sector UML类图功能界面
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0041_0001.jpg?sign=1739350897-yyrLeBjz69tvfLcDOJpywQJTVIMcz1uQ-0-22f454c687fc6a1d2e383e50db0460ca)
图3-4 main方法中使用Sector类参考代码
(二)方法的重载
使用Eclipse创建名为“task3_3”的Java项目,在该项目中创建一个名为“Maths”的Java类,先定义一个max方法,用于实现求两个整数中的最大值。再定义一个max重载方法,它实现求三个整数中的最大值。在“task3_3”项目中再创建一个名为“Task3_3”的Java主类,在该类的main方法中使用Maths类,参考代码如图3-5所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0041_0002.jpg?sign=1739350897-YfDbbDc3jn8gGWAH1e6MdWWTFtoZFPBn-0-2e6a9ad81a42e046fbaa21fbc32a7dab)
图3-5 main方法中使用Maths类参考代码
(三)类的构造方法
使用Eclipse创建名为“task3_4”的Java项目,在该项目中创建一个名为“Rectangle”的Java类,再实现图3-6所示UML类图。其中包含两个构造方法:一个是无参数的构造方法,将成员变量width和height都设置为1;另一个是带参数w和h的构造方法,将成员变量width和height分别设置为参数w和h。在“task3_4”项目中再创建一个名为“Task3_4”的Java主类,在该类的main方法中使用Rectangle类的两个构造方法,参考代码如图3-7所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0042_0001.jpg?sign=1739350897-MsA0IFI2FtIINsWGDNqsx47DQM2iEcKe-0-a44518e9c00ee6809395d3c67e5dc553)
图3-6 Rectangle UML类图(含两个构造方法)
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0042_0002.jpg?sign=1739350897-57Ls1VtH47Icn80NOTtCMS9hhiGnat3u-0-1f7b5078142b049a68d07aba62385c7e)
图3-7 main方法中使用Rectangle类的两个构造方法的参考代码
(四)对象的引用和实体
1.实验内容1:阅读程序,理解对象的引用和实体,写出程序运行输出结果
已知Rectangle类(定义在文件Rectangle.java中)的代码如图3-8所示,主类Task3_5的main方法(定义在文件Task3_5.java中)的代码如图3-9所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0042_0003.jpg?sign=1739350897-Tz47zL9QX60Y5iFo91Ebcvmu24nE0Zel-0-f0a1a0e6f44d4b1f24424a985d192be4)
图3-8 Rectangle.java文件代码
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0042_0004.jpg?sign=1739350897-xkTm1lqPq51Vm8DcKAV3xExzW7AdTGjI-0-54d96bf3f4b2d42b7a49202d5d80ba35)
图3-9 Task3_5.java文件代码
2.实验内容2:在Eclipse中编写上述代码,验证阅读程序所得到结果
使用Eclipse创建名为“task3_5”的Java项目,在该项目中创建一个名为“Rectangle”的Java类,代码如图3-8所示。在“task3_5”项目中再创建一个名为“Task3_5”的Java主类,该类的main方法代码如图3-9所示。
(五)参数传递
1.实验内容1:阅读程序,理解参数的传递规则,写出其运行输出结果
已知Battery类、Radio类和MyMath类(这三个类都定义在文件Battery.java中)的代码如图3-10所示,主类Task3_6的main方法(定义在文件Task3_6.java中)的代码如图3-11所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0043_0001.jpg?sign=1739350897-nHrbFT3gCTo75SHNeIgquLrrGcgN8l5R-0-12cbef9cb222dfaa1472e4c005e25c29)
图3-10 Battery.java文件代码
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0043_0002.jpg?sign=1739350897-BhjlLRGL0xCK2hGkRZaJ3Ar5RYo1QMiq-0-d2749e21cb98e44408686564ed13d081)
图3-11 Task3_6.java文件代码
2.实验内容2:在Eclipse中编写上述代码,验证阅读程序所得到结果
使用Eclipse创建名为“task3_6”的Java项目,在该项目中创建三个名称分别为“Battery”“Radio”和“MyMath”的Java类,代码如图3-10所示(这三个类都定义在文件Battery.java中)。在“task3_6”项目中再创建一个名为“Task3_6”的Java主类,该类的main方法代码如图3-11所示。
3.实验内容3:编写一个传值调用的程序文件task3_7.java
(1)程序功能:首先给整型变量x和y赋一个初值10,然后使用传值调用方式调用方法ff1对x和y做乘方及输出x和y的乘方值,最后再输出x和y的乘方值。
(2)程序源代码如下。
class task3_7 { public static void main(String[]args){ int x=10, y=10; ff1(x, y); System.out.println("x="+x+", y="+y); } static void ff1(int passX, int passY){ passX=passX∗passX; passY=passY∗passY; System.out.println("passX="+passX+", passY="+passY); } }
(3)编译task3_7.java。
(4)分析其运行结果。
4.实验内容4:编写一个调用对象方法的程序文件task3_8.java
(1)程序功能:通过调用对象的方法在方法调用后修改成员变量的值。
(2)task3_8.java程序源代码如下。
class task3_8 { public static void main(String[]args){ Power p=new Power();
p.ff2(10,10); System.out.println("方法调用后x="+p.x+", y="+p.y); } } class Power{ int x=10, y=10; void ff2(int passX, int passY){ System.out.println("初始时x="+x+", y="+y); x=passX∗passX; y=passY∗passY; System.out.println("方法调用中x="+x+", y="+y); } }
(3)编译task3_8.java。
以上实验例子仅仅是为了说明Java编程中参数传递时要注意的问题,在实际编程中是不可取的,因为完全可以采用其他更好的方法来实现参数的传递。例如,前面还使用过传递对象的方式。
【请思考】
方法的参数传递有哪些方式?区别是什么?
(六)对象的组合
1.实验内容1:掌握在Eclipse中实验对象的组合方法,理解和掌握对象的关联关系和依赖关系
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0045_0001.jpg?sign=1739350897-iHzq2RlmLqqS0MG97rIoBig1ONAqJNVa-0-42c410a878e1b48d9e004ae6fd7f2033)
图3-12 task3_9 UML类图
使用Eclipse创建名为“task3_9”的Java项目,在该项目中创建一个名称为“Circle”的Java类(表示圆),其成员变量和方法如图3-12右侧所示。在“task3_9”项目中再创建一个名称为“Cylinder”的Java类(表示圆柱体),其成员变量和方法如图3-12左侧所示,其中,成员变量bottom为Circle类的对象。在“task3_9”项目中再创建一个名为“Task3_9”的Java主类,该类的main方法代码如图3-13所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0046_0001.jpg?sign=1739350897-AaduWoIPiRnZuR9zUI1p4lr7EKCzhCJn-0-fb3c6cdd940371c4cbaa2933d49e651b)
图3-13 Task3_9中的Java代码
2.实验内容2:判断下面两个UML类图中类与类之间的关系
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0046_0002.jpg?sign=1739350897-MGwL7cay8uDxbOzvFooQZWrHRuhpAwmm-0-2302ba5a545290085a42402c15b5482e)
图3-14 判断类与类的关系
【问题1】在图3-14的UML类图中,Cylinder类与Circle类是什么关系?
回答:( )类(关联或依赖)( )类。
【问题2】在图3-14的UML类图中,Radio类与Battery类是什么关系?
回答:( )类(关联或依赖)( )类。
(七)实例成员与类成员
1.实验内容1:阅读程序,理解实例成员和类成员之间的区别,写出程序运行输出结果
已知Account类(定义在文件Account.java中)的代码如图3-15所示,主类Task3_10的main方法(定义在文件Task3_10.java中)的代码如图3-16所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0047_0001.jpg?sign=1739350897-DAM9ccfJkgz2eXg13hM3BVCyeIA4fYDW-0-e96d189faa42210de1ef1980f479128b)
图3-15 Account.java文件代码
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0047_0002.jpg?sign=1739350897-M6ZCSaY9Chj54w7jfUEZRfvg5PmO2GSH-0-f92d553d80ea81ea4338c50b4a4af821)
图3-16 Task3_10.java文件代码
2.实验内容2:在Eclipse中编写上述代码,验证阅读程序所得到结果
使用Eclipse创建名为“task3_10”的Java项目,在该项目中创建“Account”的Java类,代码如图3-15所示(定义在文件Account.java中)。在“task3_10”项目中再创建一个名为“Task3_10”的Java主类,该类的main方法代码如图3-16所示。
(八)实例方法与类方法
1.实验内容1:阅读程序,理解实例方法和类方法之间的区别,写出程序运行输出结果
已知Account类(定义在文件Account.java中)的代码如图3-17所示,主类Task3_11的main方法(定义在文件Task3_11.java中)的代码如图3-18所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0048_0001.jpg?sign=1739350897-8R3Wj8kSKHuRneavIoSMuqYZtuYTBQLC-0-dfa7c17a0f4a9bfa75a97d46655213ba)
图3-17 Account.java文件代码
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0048_0002.jpg?sign=1739350897-DyLgBikvnxkGz15ZI1ERVqiMWDqsz031-0-58712985ec3e2841a25795fc1de1689e)
图3-18 Task3_11.java文件代码
2.实验内容2:回答下面9个判断题
(1)用关键字static只能修饰成员变量,不能修饰成员方法。( )
(2)静态(类)方法和静态(类)成员只能通过类名进行访问。( )
(3)实例方法和实例成员变量可以通过类名进行访问。( )
(4)静态(类)方法只能访问静态(类)成员变量和其他静态(类)方法。( )
(5)实例方法可以访问静态(类)方法和静态(类)成员。( )
(6)同一类的不同对象的实例成员变量相互独立。( )
(7)同一类的不同对象共享其类成员变量。( )
(8)必须创建该类的一个对象后,才可以访问该类的静态成员变量。( )
(9)在静态(类)方法中可以使用关键字this。( )
3.实验内容3:在Eclipse中编写上述代码,验证阅读程序所得到结果
使用Eclipse创建名为“task3_11”的Java项目,在该项目中创建“Account”的Java类,代码如图3-17所示(定义在文件Account.java中)。在“task3_11”项目中再创建一个名为“Task3_11”的Java主类,该类的main方法代码如图3-18所示。
(九)在JDK中使用包
1.实验内容1:理解包的含义,掌握在JDK中使用包的方法
(1)步骤1:采用记事本编辑Circle类,代码如图3-19所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0049_0001.jpg?sign=1739350897-Nth0smRmK5eRvAp3kxxmIiahxvkCXIq9-0-31f665caa31c4ff4e6e43c01a064900e)
图3-19 Circle类代码
(2)步骤2:保存指定包名的类。首先在D盘的根目录中新建文件夹“D:\task3_12”,并在D:\task3_12文件夹下创建“aaa”文件夹,再在“aaa”文件夹下创建“bbb”文件夹,再将上面编辑的Circle类保存到文件“D:\task4_10\aaa\bbb\Circle.java”。
注意:指定包名的类的存放路径必须与包名相一致,即如果某个类指定的包名为xxx.yyy.zzz,则该类必须保存在“<应用程序根目录>\xxx\yyy\zzz”文件夹中。
(3)步骤3:编译指定了包名的Circle类。打开MS-DOS环境,通过cd命令把当前目录切换到“D:\task3_12”,再通过如图3-20所示命令对文件D:\task3_12\aaa\bbb\Circle.java进行编译。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0049_0002.jpg?sign=1739350897-Ypv729pB4U4vvbUnZkBfX3U6b9GdRjQW-0-efe84c18b859c98fcf9a169c51a15d6c)
图3-20 编译指定了包名的Circle类命令
(4)步骤4:采用记事本编辑Task3_12类,采用第1种方法使用aaa.bbb包中的Circle类,代码如图3-21所示。将Task3_12类保存到文件“D:\task3_12\Task3_12.java”。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0050_0001.jpg?sign=1739350897-8sMRPILA2bnPQT2kgXdAoFEgqWyZnZNt-0-13b2a6116008e7ffb7f0103f9bf8217c)
图3-21 记事本编辑Task3_12类
(5)步骤5:编译Task3_12类。打开MS-DOS环境,通过cd命令把当前目录切换到“D:\task3_12”,再通过如图3-22所示命令对文件D:\task3_12\Task3_12.java进行编译。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0050_0002.jpg?sign=1739350897-TX9aOaaw1sRqEoCyomUqBRVTtpJpwsaR-0-64f91571d149f41cad9e47f4339b612c)
图3-22 编译Task3_12类命令
(6)步骤6:采用记事本编辑Task 4_10A类,采用第2种方法使用aaa.bbb包中的Circle类,代码如图3-23所示。将Task 3_12A类保存到文件“D:\task3_12\Task 3_12A.java”。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0050_0003.jpg?sign=1739350897-JGQ3vsHBjvwAjg4nhVKobcZpcvz1ZeVJ-0-e1b3862f8cec80660e6867c168599fbf)
图3-23 记事本编辑Task3_12A类
(7)步骤7:编译Task 3_12A类。打开MS-DOS环境,通过cd命令把当前目录切换到“D:\task3_12”,再通过如图3-24所示命令对文件D:\task3_12\Task 3_12A.java进行编译。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0050_0004.jpg?sign=1739350897-WNtez68iOsCPb6GcOyUEpgXZXMEYFFJC-0-b25ebb808478b5aaf9f1804e0c092a28)
图3-24 编译Task3_12A类命令
(8)步骤8:执行Task3_12.class和Task3_12A.class。打开MS-DOS环境,通过cd命令把当前目录切换到“D:\task3_12”,再通过如图3-25和图3-26所示命令分别执行Task3_12.class和Task3_12A.class。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0051_0001.jpg?sign=1739350897-rn0IVgwRYh0axDBMrcwBx5NpfYyrYlBg-0-9d7fbf8d1e92a0815f98637449b99de0)
图3-25 Task3_12.class命令
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0051_0002.jpg?sign=1739350897-XOFwhvPDB5uMyTaGTEBBX7JMuWk2GNw1-0-2cdcb015c24170824f6efe273cd0f737)
图3-26 Task3_12A.class命令
(十)在Eclipse中使用包
1.实验内容1:在Eclipse中使用包
使用Eclipse创建Java项目“task3_13”,在该项目中创建一个名为“MyCircle”的Java类,在“New Java Class”对话框中指定MyCircle类的包名,效果如图3-27所示。MyCircle类的代码如图3-28所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0051_0003.jpg?sign=1739350897-gxMk3XYTVlRw2cbLL13lJlzePhBHV95W-0-9e9c0cd44f9d6af7464a613562308183)
图3-27 在“New Java Class”对话框中指定MyCircle类包名的界面
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0052_0001.jpg?sign=1739350897-eyAh4agQokM7Mw8dXamdmo3grfty4OWp-0-de49bcb4080b34dccad8f962084f618c)
图3-28 MyCircle类代码
在项目task3_13中创建一个名为“Task3_13”的Java类,在“New Java Class”对话框中不指定Task3_13类的包名,效果如图3-29所示。Task3_13.java文件中的代码如图3-30所示(包含了MyCircle类和Task3_13类的代码)。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0052_0002.jpg?sign=1739350897-CrEcWukG4YYlte9NVkF92YR4taiXyiXd-0-a0f35556a50684e4283968f22041d1bc)
图3-29 “New Java Class”对话框中不指定Task3_13类包名的界面
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0053_0001.jpg?sign=1739350897-P5gHo3xvLQiiQSq9Odk6PYuexBjgcMWl-0-2eb92a6576ee01a68ebef68c5b7c61a5)
图3-30 Task3_13.java文件代码
(十一)类成员的访问权限
1.实验内容1:通过实验理解类成员的各种访问权限
使用Eclipse创建Java项目“task3 _ 14”,在该项目中创建一个名为“AccessControl”的Java类,在“New Java Class”对话框中指定AccessControl类的包名为“task3_14.package1”,效果如图3-31所示。AccessControl类的代码如图3-32所示。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0053_0002.jpg?sign=1739350897-FRzg4Oe50iROyrwiqmEKF2wDU7dtrU0r-0-b6d60400548fa788135411ebdceb95f7)
图3-31 指定包名为task3_14.package1对话框
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0054_0001.jpg?sign=1739350897-5n9WoCIIkOocz8iLtEQwRhxDAbEZvLTg-0-06e4a75d382a1ffb979ffdced93dfa5d)
图3-32 AccessControl类代码
在项目task3_14中创建一个名为“Task 3_14”的Java类,在“New Java Class”对话框中指定Task 3_14类的包名为“task3_14”,效果如图3-33所示。Task 3_14.java文件中的代码如图3-34所示(包含了Task 3_14类和另一个AccessControl类的代码)。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0054_0002.jpg?sign=1739350897-bATgIsCRF7jCEMvJMKDv8ZVU9LqgN1wr-0-fd9a13519c7b271c7472b81ee6d59a5a)
图3-33 在“New Java Class”对话框中指定Task3_14类的包名界面
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0055_0001.jpg?sign=1739350897-PYzs315p1pIAupxxkLYxIhOu0tra9yiG-0-eb054cbfe991d3aebfa82ffc0388c6c1)
图3-34 Task3_14.java文件代码
回答Task3_14类中main方法中的9个问题,答案直接写在图3-34实验作业提交界面中。
(十二)类的访问权限
实验内容:通过实验理解类的访问权限
使用Eclipse创建Java项目“task3_15”,在该项目中创建一个名为“PublicClass”的Java类,在“New Java Class”对话框中指定AccessControl类的包名为“task3_15. package1”,效果如图3-35所示。PublicClass类的代码如图3-36所示(还包括名为FriendClass的友好类)。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0056_0001.jpg?sign=1739350897-c5KagCNizcuLLP3CsQRFMaLvvSrFkpTa-0-6998cbb116bc39b06372b21b89a73447)
图3-35 指定AccessControl类的包名为task3_15.package1的界面
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0056_0002.jpg?sign=1739350897-cOvkGkif7T568AjRvBlPztLRfRSYRQ3I-0-f83e36c9e2aafb80746ae9fe59f70043)
图3-36 Task3_15.package1文件代码
在项目task3_15中创建一个名为“Task3_15”的Java类,在“New Java Class”对话框中指定Task3_15类的包名为“task3_15”,效果如图3-37所示。Task3_15.java文件中的代码如图3-38所示(还包括名为FriendClass2的友好类)。
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0057_0001.jpg?sign=1739350897-Yd2pFDFxwgdhsNOko8CQJCOA3epBk8rS-0-7675c16ee406325bfd5e8983d1109724)
图3-37 在“New Java Class”对话框中指定Task3_15类的包名界面
![](https://epubservercos.yuewen.com/EE5560/13544222603181306/epubprivate/OEBPS/Images/figure_0057_0002.jpg?sign=1739350897-3SqIc8xKmRrGQ9qbs4K2AzgZRO9zihCs-0-a1296f9bd84dc20ebcf85f1aea29db95)
图3-38 Task3_15.java文件代码
回答Task3_15类中main方法中的3个问题,答案直接写在图3-38实验作业提交界面中。
(十三)使用修饰符
有时需要公开一些变量和方法,有时需要禁止其他对象使用一些变量和方法,这时可以使用修饰符来实现这个目的。常用的修饰符有public, private, protected, package, static, final, transient, volatile等。
1.程序功能
通过两个类StaticDemo、Task3_16说明静态变量/方法与实例变量/方法的区别。
2.编写类文件Task3_16.java
程序源代码如下。
class StaticDemo { static int x; int y; public static int getX(){ return x; } public static void setX(int newX){ x = newX; } publ ic int getY(){ return y; } public void setY(int newY){ y = newY; } } public classTask3_16{ public static void main(String[]args){ System.out.println("静态变量x="+StaticDemo.getX()); System.out.println("实例变量y="+StaticDemo.getY()); //非法,编译时将出错 StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo(); a.setX(1); a.setY(2); b.setX(3); b.setY(4); System.out.println("静态变量a.x="+a.getX()); System.out.println("实例变量a.y="+a.getY());
System.out.println("静态变量b.x="+b.getX()); System.out.println("实例变量b.y="+b.getY()); } }
3.编译并运行
对上面的源程序进行编译,排错并运行。