java百战1573答案解析_第1页
java百战1573答案解析_第2页
java百战1573答案解析_第3页
java百战1573答案解析_第4页
java百战1573答案解析_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在重写方法时,需要遵循以下的规则:(一)父类方法的参数列表必须完全与被子类重写的方法的参数列表相同,否则不能称其为重写而是重载。.(二)父类的返回类型必须与被子类重写的方法返回类型相同,否则不能称其为重写而是重载。.(三)Java中规定,被子类重写的方法不能拥有比父类方法 更加严格的访问权限。访问权限大小关系为:编写过Java程序的人就知道,父类中的方法并不是在任何 情况下都可以重写的,当父类中方法的访问权限修饰符为 private时,该方法只能被自己的类访问,不能被外部的类 访问,在子类是不能被重写的。如果定义父类的方法为 public ,在子类定义为private ,程序运行时就会报错。例

2、如:class Personpublic void print()(/public访问权限System.out.println(”父类 Person 的 print 方法!);Class Stedent extends Personprivate void print()(/重写方法降低了访问权限,错误System.out.println(” 子类 Student 的 print 方法!);(四)由于父类的访问权限修饰符的限制一定要大于被子类 重写方法的访问权限修饰符,而 private权限最小。所以如 果某一个方法在父类中的访问权限是 private,那么就不能 在子类中对其进行重写。如果重

3、新定义,也只是定义了一个 新的方法,不会达到重写的效果。(五)在继承过程中如果父类当中的方法抛出异常,那么在 子类中重写父类的该方法时,也要抛出异常,而且抛出的异 常不能多于父类中抛出的异常(可以等于父类中抛出的异常)。换句话说,重写方法一定不能抛出新的检查异常,或者比被重写方法声明更加宽泛的检查型异常。例如,父类的一 个方法申明了一个检查异常lOException ,在重写这个方法时就不能抛出Exception ,只能抛出IOException的子类异常,可以抛出非检查异常。同样的道理,如果子类中创建了一个成员变量,而该变量和 父类中的一个变量名称相同,称作变量重写或属性覆盖。但 是此概念一

4、般很少有人去研究它,因为意义不大。三、方法重载(Overloading)(一)如何定义重载。方法的重写和重载只有一个字不同, 很多初学者认为这两者十分相似,其实不然。方法重载是让 类以统一的方式处理不同类型数据的一种手段。调用方法时 通过传递给它们的不同个数和类型的参数来决定具体使用 哪个方法,这就是多态性。所谓方法重载是指在一个类中,多个方法的方法名相同,但 是参数列表不同。参数列表不同指的是参数个数、参数类型 或者参数的顺序不同。方法的重载在实际应用中也会经常用 到。不仅是一般的方法,构造方法也可以重载。下面通过一 个实例来分析。重载的定义和使用方法。Class Person String

5、 name;int age;void print()System.out.println(”姓名:” +name+ 年龄:” +age);void print(String a , int b)System.out.println(”姓名:+a+年龄:+b);void print(String a,int b , intC)System.out.println(”姓名:+a+年龄:+b+ID 号:+c);void print(String a,int b , doubleC)System.out.println(”姓名:+a+年龄:+b+ID 号:+c);public class OverLo

6、adExampleOL publicstaticvoidmain(String args) Personpl=newPerson();p1.nanle=李明;p1.age=22;p1.print();p1.print( 王小早,19);p1.print( 金波,18,100325);p1.print( 婉宁,25,110903);print的方法,这就是方法的重载。执行程序,运行结果如下:姓名:李明年龄:22姓名:王小早年龄:19姓名:金波年龄:18ID 号:10 00325姓名:婉宁年龄:25ID 号:110903在方法重载时,方法之间需要存在一定的联系,因为这样可 以提高程序的可读性,一般

7、只重载功能相似的方法重载规 则。重载是指我们可以定义一些名称相同的方法,通过定义 不同的参数来区分这些方法,然后再调用时,Java虚拟机就会根据不同的参数列表来选择合适的方法执行。也就是说,当一个重载方法被调用时,Java用参数的类型和.(或)个数来决定实际调用的重载方法。因此,每个重载方法的参数的类型 或个数必须是不同。虽然每个重载方法可以有不同的返回类 型,但返回类型并不足以区分所使用的是哪个方法。当Java调用一个重载方法是,参数与调用参数匹配的方法被执行。在 使用重载要注意以下的几点:1. 在使用重载时只能通过不同的参数列表,必须具有不同的 参数列表。例如,不同的参数类型,不同的参数个

8、数,不同 的参数顺序。当然,同一方法内的几个参数类型必须不一样, 例如可以是 fun(int , float),但是不能为 fun(int,int)2. 不能通过访问权限、返回类型、抛出的异常进行重载。3方法的异常类型和数目不会对重载造成影响。.4. 可以有不同的返回类型,只要参数列表不同就可以了。5. 可以有不同的访问修饰符。6. 可以抛出不同的异常。四、方法重写与方法重载的区别通过上面例子的分析,我们可以将方法重写和重载的区别总 结成这样一个表格,如下:区 别 占 八、重载重写(覆写)英文OverloadingOveriding疋义方法名称相同,参数的类型或个数不同方法名称、参数类型、返回

9、值类型全部相同对权限没有要求被重写的方法不能拥有更严格的权限范围发生在一个类中发生在继承类中五、结束语在面向对象程序设计的思想中,类的继承和多态性主要就是 体现在子类重写父类的方法。而构造方法的重载作为方法重 载的一个典型特例,可以通过重载构造方法来表达对象的多 种初始化行为。灵活的运用方法重写与方法重载,不仅能减 少编码的工作量,也能大大提高程序的可维护性及可扩展 性。用好重写和重载可以设计一个结构清晰而简洁的类,可以说重写和重载在编 写代码过程中的作用非同一般。94、两同三不同指的是?返回值不同构成重载吗?形参名称不同构成重载吗?方法名相同,类名相同,参数个数不同,参数顺序不同,参数类型不

10、同,返回值不同,形参名称不同可以构成重载70、递归算法中,递归头和递归体分别指什么?自身调用自身的算法;1. 递归算法的优点是什么 ?缺点是什么 ?2. 【上机】使用递归算法完成阶乘算法求解 5 的阶乘;package equals;public class Num public static int gets( int n) / TODO Auto-generated method stubif (n = 1) return 1;else return n*gets(n-1);public static void main(String args ) System. out .println

11、( gets (5) ); 注意:递归算法一般有个判断条件进行结束递归循环;3. 【上机】 根据随机生成的的月份, 打出该月份的天数 .(不考虑闰年、闰月)package equals;public class Months public static void main(String args ) int y = (int ) (Math. random ()*12)+1;System. out .println( y);int x = 0,31,28,31,30,31,30,31,31,30,31,30,31;System. out .println( xy);4. 【上机】用 while

12、 和 for 循环分别计算 100 以内奇数和偶 数的和,并输出。package equals;public class Sum int n ;/ 4.【上机】用 while 和 for 循环分别计算 100 以内奇 数和偶数的和,并输出。利用递归算法 求解 100 以内的偶数 和 与奇数和;public static int gets( int n)if(n =1)return 1;else return n+ gets (n -2);public static void main(String args ) System. out .println( gets (99);用 for 循环遍

13、历的方法;package equals;public class Sum1 / 4.【上机】用 while 和 for 循环分别计算 100 以内奇 数和偶数的和,并输出。public static void main(String args ) int sum1 =0, sum2 =0;/ TODO Auto-generated method stubfor (int i = 0; i = 100; i+) if (i%2 = 0) sum1 += i;else sum2 += i;System. out .println( sum1 + +sum2 );5. 【上机】 用 while 和

14、for 循环输出 1-1000 之间能被 5 整 除,且每行输出 3 个。package equals;public class Sum1 public static void main(String args ) int c = 0;for (int j = 1; j 1000; j+ ) while (j%5 = 0 )System. out .print( j+ , );j+;c+;if(c = 3)c=0;System. out .println( n );6. 【上机】打印出九九乘法表package equals; public class MengFa public static

15、void main(String args ) for (int i = 1; i 10; i+) for (int j = 1; j 10; j+) System. out .print( i+ * +j+= +i*j+ ); if(i = j)System. out .println();7. 【上机】编程求:刀1+ 2+ + E100package equals;public class JieCheng public static void main(String args ) int n ;int sum =0;for (int j = 1; j = 100;j+) for (int

16、 i = 1; i = j; i+) sum += i;System. out .println( sum );8. 【上机】生成0-100随机数,直到生成88为止,停止循环!9. 【上机】把100150之间不能被3整除的数输出10.10. 【上机】打印出实心10*10正方形、空心10*10正方11. 【上机】打印出实习 10*10 菱形, 空心 10*10 菱形12. 【上机】将如上所有上机相关算法的作业,封装成方 法,便于重用。第四章 数组13. 数组的类型可以为任意类型吗 ?可以14. 数组中的元素的类型必须是相同的吗 ? 数组中的元素 是有序的吗?类型必须相同,元素是有顺序的;15.

17、数组的长度可变不 ? 数组的长度使用哪个属性 ? 长度不可以变化, length index16. 数组元素下标 (或索引 ) 的范围是 ?Index 0-length-117. 数组也是引用类型吗? 数组也是对象,这句话对吗 ?数组是引用类型,是对象式也一样。这句话对吗 ?20.【上机】数组的三种初始化方式是什么?并测试练习相关代码int Array = 1,2,3,4;int a = new int 4;int Array1 = new int 4;21. 数组的静态初始化代码,下面代码有没有不合理的地方:后面逗号多余22. Dogdogs2 =23.new Dog(大黄,1),24.ne

18、w Dog(小强,2),25.;26. 完成如下代码:char s;s = new char26;for ( int i=0; i26; i+ ) si = (char) ( A+ i);System.out.println(si);/ System.out.println( “ s”+ i +“ = ”+ si);27. 下面的数组定义哪些是正确的?EA:inta叩=new int3,3;B:inta33=new in t;C:inta叩=new int33;D:inta=new int33;E:int叩a =new int33;28. 请在下面语句中找出一个正确的A. int arr123

19、;B. int a2 = new int2;C. int arr2=new int 4;D. int arr34= new int 34;29. 【上机】定义一个长度为10的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“ Yes”不包含就打印出“ No ”import java.util.Scanner;public class Array public static void main(String args) Scanner sc = new Scanner(System. in);String s = sc

20、.next();String array =Ivping ,lvgang ,wangdi ,lili ,wangxianchao ,dada,guniang ,yixin ;for ( int i = 0; i arrayength ; i+) if (s.equals( array i) System. out .println( yes);30. 冒泡排序的基本思路冒泡排序思路:比较相邻的每一对元素的大小,并且将大的放到右边!最终重复比较相邻的元素,直到没有需要比较的元素!31. 使用冒泡排序完成数组元素的排序32. 可变参数的作用及其用法可变参数的作用就是在不明显有几个参数的情况下!接收

21、几个参数!33. 如何给main方法传递实参34. 【上机】用二重循环求出二维数组b所有元素的和:package equals;/二维数组求和 public class SumArray public static void main(String args) int a1 =11,21,22,31,32,33;for (int i = 0; i alength ; i+) for (int j = 0; j a1i.length ; j+) sum += al i j;System. out .println( a1 i);System. out .println( sum );Eclipse可以开发Java,可以开发c+吗?可以的!35. Eclipse中的debug模式有什么好处?36. 可以查询每一步怎么运行的! !37.37. Ec

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论