java练习一
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java练习题
第一章 java技术入门
1.练习环境变量的设置,如果出现问题,试分析其原因并更正。
2.编写HelloWorld程序,并编译执行。
3.在屏幕上打印出一下图形。
************************************************
**************Java程序设计**********************
*************************************************
4.编辑、编译、运行以下程序,说出程序的功能。改变变量n的初值,观察运行结果。
public class Sum10_for
{
public static void main(String[] args)
{
int i=1,n=10,s=0;
System.out.print("Sum("+n+")=");
for(i=1;i { s+=i; System.out.print(i+"+"); } System.out.println(i+"="+(s+i)); } } 第二章面向对象程序设计 1.创建一个带缺省构造方法的类,在构造方法中打印一条信息。为这个类创建一个对象 2.设计一个银行账户类,成员变量包括账号、储户姓名、开户时间、身份证号码、存款余额等账户信息,成员方法包括存款、取款等操作。 //3.定义一个点对象。 4.编写并测试一个代表地址的Address类,地址信息由国家、省份、城市、街道、邮编组成,并可以返回完整的地址信息。 5.定义并测试一个代表员工的Employee类。员工属性包括编号、姓名、基本薪水,还包括获取这些属性的方法。 6.创建一个Dog类,有名字、颜色、年龄等属性,定义构造方法来初始化类的这些属性,定义方法输出Dog信息,编写应用程序使用Dog类。 第四章运算符、表达式和流程控制 1.测试++运算符。问:当a=1时,如下表达式:(++a)+(++a)+(++a);(a++)+(a++)+(a++);(++a)+(a++)+(++a)+(a++)的值分别是 多少。 2.写一个打印从1到100值的程序 3.编写一个程序,求三个数中的最大值。 4.求1~1000之间可以同时被3、5、7整除的数字。 5.利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 程序分析:(a>b)?a:b这是条件运算符的基本例子。 6.利用递归方法求5!。 第五章数组 1.定义一个由整数组成的数组,要求求出其中的奇数个数和偶数个数。 2.现在有如下的一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5}; 要求将不为0的值存入一个新数组。 3.定义一个整型数组,求出数组元素的和、数组的最大值和最小值,并输出。 4.设级数Sn定义为:S0=0,S1=1,Sn=Sn-1+2*Sn-2(n>=2),将前10个Sn数放入数组中。 5.打印出二维数组中元素的最大值,及其行、列位置。 第六章面向对象编程进阶 1.设计一个表示用户的User类,类中的变量有用户名、口令等,定义类的三个构造方法(无参、为用户名赋值、为用户名和口令赋值),并设计获取和设置口令的方法和返回类信息的方法。 2.创建一个名为Dog的类,具有重载的bark()方法。此方法应根据不同的基本数据类型进行重载,并根据被调用的版本,打印出不同类型的狗的叫声。编写main()来调用所有不同版本的方法。 3.编写具有两个方法的类,在第一个方法内调用第二个方法两次:第一次调用不使用this,第二次调用时使用this。 4.编写具有两个重载构造方法的类,并在第一个构造方法中调用第二个构造方法。 5.创建一个带有public,private,protected和包访问权限的成员变量以及成员方法的类。创建该类的一个对象,看看在你试图调用所有类成员时,会得到什么类型的编译信息。注意在同一目录中的所有类都是缺省包范围。 6.(1)创建两个带有缺省构造器的类,A和B。从A中继承一个名为C的新类,并在C内创建一个B类的成员。不要给C编写构造器。创建一个C类的对象并观察其结果。 (2)对上述程序进行修改,使A和B含有带参数的构造器,以取代缺省的构造器。为C写一个构造器,并在其中执行所有初始化。 7.证明基类构造器(a)总是被调用(b)在导出类构造器之前被调用 8.创建一个仅有一个非缺省构造器的基类,并创建一个带有缺省构造器和非缺省构造器的导出类。在导出类的构造器中调用基类的构造器。 9.(1)创建一个Root类,令其含有名为Component1、Component2、Component3的类各一个实例(这些也由你写)。从Root中派生一个类Stem,也含有上述各“组成部分”。所有的类都应带有打印出类的相关信息的缺省构造器。 (2)修改上述程序,使每个类都仅有非缺省的构造器。 10.创建一个类,它应带有一个被重载了三次的方法。创建一个子类,并添加一 个该方法的新的重载定义,展示着四个方法在子类中都可以使用。 11.建立一个人类(Person)和学生类(Student),功能要求如下: (1)Person中包含4个保护型的数据成员name、addr、sex、age,表示姓名、 地址、性别和年龄。用一个4参构造方法、一个两参构造方法、一个无参构造方法、一个输出方法显示4种属性。 (2)Studeng类继承Person类,并增加输出成员math、english存放数学和 英语成绩。用一个6参构造方法、一个两参构造方法、一个无参构造方法和重写输出方法用于显示6种属性。 11.在包中编写一个类,你的类应具备一个protected方法。在包外部,试着调 用该protected方法并解释此结果。然后,从你的类中派生一个导出类,并从该导出类的一个方法内部调用该protected方法。 12.(1)创建一个名为Amphibian的类。由此派生出一个被称为Frog的类。在 基类中设置适当的方法。在main()中,编写一个Frog并向上转型至Amphibian,然后说明所有方法都可工作。 (2)修改上述程序,使Frog重载基类中方法的定义,并重新调用,观察现象。13声明一个图书类,其数据成员为书名、编号(利用静态变量实现自动编号)、书价,并拥有静态数据成员册数,记录图书的总册数,在构造方法中利用此静态变量为对象的编号赋值,在主方法中定义对象数组,并求出总册数。 14.创建一个含有static final数据成员和final数据成员的类,说明二者间的区别。 15.创建一个带有final数据成员的类。由此派生出一个类并重载此数据成员。 16.创建一个包含两个方法的基类。在第一个方法中可以调用第二个方法。然后 产生一个继承自该基类的导出类,且重载基类的第二个方法。为该导出类创建一个对象,向上转型到基类型并调用第一个方法,解释发生的情况。 第七章高级类特性 1.(1)创建一个Rodent(啮齿动物):Mouse(老鼠),Gerbil(鼹鼠),Hamster (大颊鼠)这样的继承层次结构。在基类中,提供对所有的Rodent都通用的方法,在基类中,根据特定的Rodent类型重载这些方法,以便执行不同的行为。(2)修改上述程序,使Rodent成为一个抽象类。只要有可能,就将Rodent 的方法声明为抽象方法。 2.创建一个基类,包含抽象方法print(),并在导出类中将其重载。重载的版本中会打印基类中定义的某个整型变量的值。在定义该变量时,请赋予非零值。在基类的构造器中,可以调用这个方法。现在,在main()方法中,创建一个导出类对象,然后调用它的print()方法。解释发生的情形。 3.创建一个不包含任何方法的抽象类,从它那里导出一个子类,并添加一个方法。在测试类中创建一个静态方法,可以接受一个指向基类的引用,将其向下转型到导出类,然后再调用该静态方法。在main()方法中,证实它的可行性。 4.定义类Shape,用来表示一般二维图形。Shape具有抽象方法area和perimeter,分别用来计算形状的面积和周长。试定义一些二维形状类(如矩形、