Java语言复习提纲

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

2014年JAVA复习提纲Java语言的特点,类、接口、包构造方法、重载、重写、继承、异常关键字private、public、protected、final的作用Applet应用程序结构1.什么是类和对象?类是相同对象的集合的描述,描述了一类对象的共同属性和操作。对象时类的实例,对应着现实世界的一个实体。2.简述OOP的封装性、抽象性、继承性和多态性。封装性是把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。抽象性是类作为一个抽象的数据类型,允许用户从底层实现细节中抽象出来,提供给用户的是在公共接口上的上层操作。继承性是在已有类的基础上派生出新的类,新的类能够吸收已有类的属性和行为,并扩展新的能力。多态性是指在表示特定功能时,有多种不同的形态或实现方法。3.简述Java中异常处理的机制。答:首先Java的异常是面向对象的。一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。Java的异常处理是通过5个关键词来实现的:try,catch,throw,throws和finally。1.异常处理:在Java语言的错误处理结构由try,catch,finally三个块组成。其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在try块后面,用来激发被捕获的异常;finally块包含清除程序没有释放的资源,句柄等。不管try块中的代码如何退出,都将执行finally块。2.抛出异常:Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者。Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。4.在Java语言中,如何引发异常?对异常处理的两条途径是什么?JAVA语言中程序执行了非法或无效的动作或者通过执行throw语句程序均能引发异常。处理异常的两条途径:a)捕获和处理异常:采用try-catch-finally方式显示声明将异常交给合适的异常处理器进行处理。b)抛出异常:采用throws在其后写上已存在的异常类或者其超类的名称,显式声明不对其进行处理。5.简述Java访问修饰符的可访问性public被同一类中的成员、同一包中其他类、不同包中的类、不同包的子类都能访问private只能被被同一类中的成员访问protected能被同一类中的成员、同一包中其他类、不同包中的类访问,不能被不同包的子类访问默认成员能被同一类中的成员、同一包中其他类访问、不能被不同包中的类、不同包的子类访问6.请简述重载和重写的区别?答:方法的重写Overriding和重载Overloading是Java多态性的不同表现。重写Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写(Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded的方法是可以改变返回值的类型。7.类成员与实例成员在概念上有何区别?1)类成员在类加载时完成初始化,并保持到该类被清除为止。此期间类及其实例共享着同样一份数据。实例成员在创建实例时才会被初始化,只保持到该实例被清除,且每个实例独享自己的实例成员。2)类成员可以通过类名或者引用对象进行调用,而实例成员只能通过引用对象进行调用。8.线程存在几种状态?分别为那几种状态。线程总共有五种状态,非别为新建状态、可运行状态、运行状态、阻塞状态和死亡状态9.java是否支持多继承及java中采取什么机制来代替多重继承?Java不支持多继承,即一个类只能有一个父类。单继承性使得java简单,易于管理程序为了克服单继承的缺点,java使用了接口,一个类可以实现多个接口。9.启动一个线程是用run()还是start()?启动一个线程是调用start()方法,使线程所代表的虚拟处理机处于可运行状态,这意味着他能由JVM调度并执行。这并不意味着线程就会即时运行。run()方法能产生必须退出的标志来停止一个线程10.构造方法的作用是什么?什么时候执行?定义时与普通方法的不同是什么?构造方法用于为类新建的对象分配内存空间和进行变量的初始化。构造方法在用new创建对象时执行。定义时必须与其所在类名相同,构造方法没有返回类型。程序阅读题:1.publicclassTest{intx=8;publicstaticvoidmain(String[]args){Testt=newTest();t.x++;change(t);System.out.println(t.x=+t.x);}staticvoidchange(Testm){m.x+=3;}}程序的结果是:t.x=12。2.publicclassMyClass{inta[]={6,9,2,4,8};voidout(){for(intj=0;ja.length;j++)System.out.print(a[j]+);}publicstaticvoidmain(String[]args){MyClassmy=newMyClass();my.out();}}程序的运行结果是:69248。3.publicclassTest{staticintx1=5;intx2=8;publicstaticvoidmain(String[]args){Testobj1=newTest();Testobj2=newTest();obj1.x1=obj1.x1+2;obj1.x2=obj1.x2+4;obj2.x1=obj2.x1+1;obj2.x2=obj2.x2+6;x1=x1+3;System.out.print(obj1.x1=+obj1.x1);System.out.println(obj1.x2=+obj1.x2);System.out.print(obj2.x2=+obj2.x2);System.out.println(Test.x1=+Test.x1);}}程序运的结果是:obj1.x1=11obj1.x2=12obj2.x2=14Test.x1=11。4.publicclassTest{staticintj=12;publicstaticvoidmain(String[]args){inti=5;Testp=newTest();p.method(i);System.out.println(i+and+j);}publicvoidmethod(intx){x=x*2;j=j*2;}}程序的结果是:5and24。5.publicclassPerson{Stringname;intage;publicPerson(Stringname,intage){this.name=name;this.age=age;}publicstaticvoidmain(String[]args){Personc=newPerson(王强,32);System.out.println(c.name+“:”c.age“岁!);}}程序的运行结果是:王强:32岁!。6.publicclassTest{staticvoidpass(Stringx){x=x+Programming;System.out.println(x);}publicstaticvoidmain(String[]args){Strings1=ObjectOriented;pass(s1);System.out.println(s1);}}程序的输出结果是:ObjectOrientedProgrammingObjectOriented程序设计题:1.定义一个代表“形状”的抽象类Shape,其中包括求不同形状图形面积的抽象方法。继承该抽象类定义三角形、矩形、圆。分别创建一个三角形、矩形、圆存入一个数组中,访问数组元素将各类图形的面积输出。abstractclassShape{//定义抽象类abstractpublicdoublearea();//抽象方法}classTriangleextendsShape{//定义三角型privatedoublea,b,c;publicTriangle(doublea,doubleb,doublec){this.a=a;this.b=b;this.c=c;}publicdoublearea(){doublep=(a+b+c)/2;returnMath.sqrt(p*(p-a)*(p-b)*(p-c));}}classRectangleextendsShape{//定义矩形privatedoublewidth,height;publicRectangle(doublej,doublek){width=j;height=k;}publicdoublearea(){returnwidth*height;}}classCircleextendsShape{//定义圆privatedoubler;publicCircle(doubler){this.r=r;}publicdoublearea(){return3.14*r*r;}}publicclassTest{publicstaticvoidmain(Stringargs[]){Shapes[]=newShape[3];s[0]=newTriangle(3,4,5);s[1]=newRectangle(10,20);s[2]=newCircle(10);for(intk=0;ks.length;k++)System.out.println(s[k].area());}}2.比较三个数,将其按从小到大排列。publicclassSort{publicstaticvoidmain(String[]args){inti,j,k;i=(int)(Math.random()*100);j=(int)(Math.random()*100);k=(int)(Math.random()*100);if(ij){intm=i;i=j;j=m;}if(jk){intm=j;j=k;k=m;}if(ik){intm=i;i=k;k=m;}System.out.println(i+,+j+,+k);}}3.输出打印100到200之间所有的素数。publicclassPrimeNumber{publicstaticvoidmain(String[]args){//intcount=0;for(inti=100;i200;i+=1){booleanisPrime=true;for(intdivisor=2;divisor=i/2;divisor++){if(i%divisor==0){isPrime=false;break;}}if(isPrime){//count++;System.out.print(i+,);}}}}4.编程输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数,其各位数字的立方和等于其本身。例如:153是个“水仙花数”,因为153=13+53+33。publicclasschb1{publicstaticvoidmain(Stringargs[]){inta,b,c,k;for(k=100;k1000;k++){a=k/100;b=k/10%10;c=k%10;if(k==a*a*a+b*b*b+c*c*c){System.out.println(k);}}}}5.编写程序,求出斐波那契序列的前20项。publicclassFib{publicstaticvoidmain(String[]args){int[]list=new

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功