java百战1573答案3

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

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

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

资源描述

1.第五章面向对象2.简述面向对象和面向过程的区别和联系?面向对象以功能来划分问题,面向过程以步骤划分问题。面向对象可以有更好的可移植性和拓展性类是对对象特征的抽象与归纳,对象是类的实例化,如汽车和BMW。66对象和类的关系是?136.面向对象以功能来划分问题,面向过程以步骤划分问题。面向对象可以有更好的可移植性和拓展性138.栈,1.线程私有,不能实现线程之间共享!2.局部变量存于栈中3.系统自动分配,内存连续,速度快139.堆,1.new出来的对象,2.空间不连续,分配灵活,速度慢方法区(堆)1.被所有线程共享2.用来存放永远不变或唯一内容(类代码信息,静态变量,字符串常量)140.局部变量在方法或语句块中声明,成员变量在类中方法外声明,从属于对象。静态变量类中方法外声明时用static,从属于类142.必须手动143.数字0,booleanfalse,char\u0000,引用类型null;145.不对,构造方法不用于构造类的对象146.必须一致147.没有返回值148.对象实例化时,被调用149.不能150.自己未定义时会默认添加,自己定义了构造器,系统不添加151.this.type=type类创建对象,类是构造对象的模板和蓝图,创建类的实例!栈的特点是?存放什么内容?栈的特点是数据共享,存放的是数据引用,对象引用,局部变量的值。所有基本数据类型都在栈中。堆得特点是?存放什么内容?堆存放的是具体的对象值,堆可灵活分配内存空间。存放的是new出来的对象。【上机】画出如下程序的内存结构(课堂上的代码):3.局部变量、成员变量、静态变量分别怎么声明?局部变量不能初始化,成员变量和静态变量可以进行初始化。不对,构造方法不用于构造类的对象4.局部变量使用之前,必须要手动初始化吗?必须手动进行初始化!5.如果不手动指定成员变量的值,系统将会自动初始化。那么初始化的规则是?Int为0,double是0.0,String是nullBoolean是false,byte是0.0,short是0,6.成员变量从属于谁?静态变量又叫什么以及从属于谁?局部变量从属于谁?成员变量从属于对象,静态变量又叫类变量,从属于类,局部变量从属于方法或语句块。7.构造方法的作用是两个:一个构造类的对象,另一个作用是初始化对象的属性。这种说法对不?对8.构造方法的名称必须保持跟类名一致吗?必须保持一致。9.构造方法有没有返回值?详细用文字描述返回值问题。构造方法没有返回值,返回值是对象调用这个方法后,返回一个特定类型的值,给主程序,然后继续进行!10.构造方法如何被调用?构造方法通过参数的类型进行调用,如果没有提供构造方法,那系统会自动提供一个无参数的构造器。11.构造方法中能不能有return语句?构造方法中不能有return语句,12.系统一定会给我们添加无参数的构造方法吗?请详细解释。不一定,当我们自己提供了个简单的构造方法后,系统就不会再提供。13.【上机】设计一个类代表二维空间的一个点publicclassPoints{intx,y;publicPoints(intx,inty){super();this.x=x;this.y=y;}14.【上机】设计一个类代表二维空间的一个圆。要求两个成员变量。一个是圆心,一个是半径提供计算面积的方法。publicclassCircles{intradius;Pointpoints;publicCircles(intradius,Pointpoints){super();this.radius=radius;this.points=points;}doubleares(){doubles=3.14*radius*radius;returns;}publicstaticvoidmain(String[]args){Pointp=newPoint(1,1);//TODOAuto-generatedmethodstubCirclesc=newCircles(8,p);System.out.println(c.ares());}}15.【上机】为上述Cricle类添加一个方法,计算一个点(Point对象)是否在圆(Cricle对象)内,并写程序验证publicclassCircles{intradius;Pointpoints;privateintx;privateinty;publicCircles(intradius,Pointpoints){super();this.radius=radius;this.points=points;}publicCircles(intx,inty,intradius){this.x=x;this.y=y;this.radius=radius;}doubleares(){doubles=3.14*radius*radius;returns;}booleanCirclePoint(Pointp){doubled=(x-p.x)*(x-p.x)+(y-p.y)*(y-p.y);if(dradius*radius){System.out.println(点在圆内!);}else{System.out.println(点不在圆内!);}returnfalse;}publicstaticvoidmain(String[]args){Pointp=newPoint(9,1);//TODOAuto-generatedmethodstubCirclesc=newCircles(8,p);System.out.println(c.ares());System.out.println(c.CirclePoint(p));}}16.构造方法能不能重载?可以17.this在普通方法中,指的是哪个对象?在构造方法中,指的是?This在普通方法中指的是自身,在构造方法中指的是当前类;18.static变量在内存中放置在哪个区?static变量和方法为什么被称为类变量和类方法?可以被该类所有对象共享吗?以下是thinkinginjava里面的关于static的描述:2.6.3static关键字通常,我们创建类时会指出那个类的对象的外观与行为。除非用new创建那个类的一个对象,否则实际上并未得到任何东西。(注意,这里其实就是说的引用和真正的对象创建问题)只有执行了new后,才会正式生成数据存储空间,并可使用相应的方法。但在两种特殊的情形下,上述方法并不堪用。一种情形是只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,即使没有创建对象,也需要一个能调用的方法。为满足这两方面的要求,可使用static(静态)关键字。一旦将什么东西设为static,数据或方法就不会同那个类的任何对象实例联系到一起。所以尽管从未创建那个类的一个对象,仍能调用一个static方法,或访问一些static数据。而在这之前,对于非static数据和方法,我们必须创建一个对象,并用那个对象访问数据或方法。这是由于非static数据和方法必须知道它们操作的具体对象。当然,在正式使用前,由于static方法不需要创建任何对象,所以它们不可简单地调用其他那些成员,同时不引用一个已命名的对象,从而直接访问非static成员或方法(因为非static成员和方法必须同一个特定的对象关联到一起)。有些面向对象的语言使用了类数据和类方法这两个术语。它们意味着数据和方法只是为作为一个整体的类而存在的,并不是为那个类的任何特定对象。有时,您会在其他一些Java书刊里发现这样的称呼。为了将数据成员或方法设为static,只需在定义前置和这个关键字即可。例如,下述代码能生成一个static数据成员,并对其初始化:classStaticTest{Staticinti=47;}现在,尽管我们制作了两个StaticTest对象,但它们仍然只占据StaticTest.i的一个存储空间。这两个对象都共享同样的i。请考察下述代码:StaticTestst1=newStaticTest();StaticTestst2=newStaticTest();此时,无论st1.i还是st2.i都有同样的值47,因为它们引用的是同样的内存区域。有两个办法可引用一个static变量。正如上面展示的那样,可通过一个对象命名它,如st2.i。亦可直接用它的类名引用,而这在非静态成员里是行不通的(最好用这个办法引用static变量,因为它强调了那个变量的静态本质)。StaticTest.i++;其中,++运算符会使变量增值。此时,无论st1.i还是st2.i的值都是48。类似的逻辑也适用于静态方法。既可象对其他任何方法那样通过一个对象引用静态方法,亦可用特殊的语法格式类名.方法()加以引用。静态方法的定义是类似的:classStaticFun{staticvoidincr(){StaticTest.i++;}}从中可看出,StaticFun的方法incr()使静态数据i增值。通过对象,可用典型的方法调用incr():StaticFunsf=newStaticFun();sf.incr();或者,由于incr()是一种静态方法,所以可通过它的类直接调用:StaticFun.incr();尽管是静态的,但只要应用于一个数据成员,就会明确改变数据的创建方式(一个类一个成员,以及每个对象一个非静态成员)。若应用于一个方法,就没有那么戏剧化了。对方法来说,static一项重要的用途就是帮助我们在不必创建对象的前提下调用那个方法。正如以后会看到的那样,这一点是至关重要的——特别是在定义程序运行入口方法main()的时候。和其他任何方法一样,static方法也能创建自己类型的命名对象。所以经常把static方法作为一个领头羊使用,用它生成一系列自己类型的实例。19.静态初始化块和main方法哪个先被执行?静态初始化块在类加载的时候就执行,main方法的执行在静态初始化块的后面才执行。20.一个构造方法调用另一个构造方法怎么调用?this(),这样的调用方式必须位于第一句吗?嗯必须位于第一句;用this必须位于第一句。21.package的两个作用是什么?Package是包用来区别类,同名类。不同的包下不能共享数据和变量对象。22.增加package以后,我们在DOS下编译怎么做?Javac把包路径也一块加上即可23.import是用于导入包还是导入类?import是用来导入包的。24.importJava.util.*;会不会降低程序运行速度?为什么?会使得程序速度变慢。25.importstatic静态导入的作用是导入类还是导入类的静态属性和静态方法?Importstatic静态导入的是静态方法26.如果同时导入:Java.util.Date;Java.sql.Date;在程序中怎么区分它们?可以在创建对象的时候加入前缀27.【上机】完成this、static、package、import的测试代码28.Javadoc注释怎么写?三种方式/***////**/29.Java项目的API文档如何生成?请将步骤写出。步骤;Eclipse中project中GenerateJavadoc完成30.面向对象中的封装,追求的是“高内聚,低耦合”。解释一下,内聚什么?什么叫耦合?就是类与类之间尽量减少联系,不要相互影响太多,31.封装的几个关键字:private,default,protected,public的含义。私有的默认的受保护的公有的32.一般属性是否要设置为private?是33.如果属性设置为private,如何让外部访问该属性?通过接口34.提供getter、setter方法的操作,Eclipse中如何实现?Source中找generategettergandsetter35.对于b

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

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

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

×
保存成功