java百战1573答案Word文档下载推荐.docx

上传人:b****8 文档编号:21913083 上传时间:2023-02-01 格式:DOCX 页数:12 大小:23.10KB
下载 相关 举报
java百战1573答案Word文档下载推荐.docx_第1页
第1页 / 共12页
java百战1573答案Word文档下载推荐.docx_第2页
第2页 / 共12页
java百战1573答案Word文档下载推荐.docx_第3页
第3页 / 共12页
java百战1573答案Word文档下载推荐.docx_第4页
第4页 / 共12页
java百战1573答案Word文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

java百战1573答案Word文档下载推荐.docx

《java百战1573答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《java百战1573答案Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

java百战1573答案Word文档下载推荐.docx

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-generatedmethodstub

Circlesc=newCircles(8,p);

System.out.println(c.ares());

15.【上机】为上述Cricle类添加一个方法,计算一个点(Point对象)是否在圆(Cricle

对象)内,并写程序验证

privateintx;

privateinty;

publicCircles(intx,inty,intradius)

{

this.x=x;

this.y=y;

booleanCirclePoint(Pointp){

doubled=(x-p.x)*(x-p.x)+(y-p.y)*(y-p.y);

if(d<

radius*radius){

System.out.println("

点在圆内!

"

);

}else{

点不在圆内!

}

returnfalse;

Pointp=newPoint(9,1);

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中找generategettergandsetter

35.对于boolean类型的属性,提供的getter方法是:

getXXX或是isXXX?

publicbooleanisFlag(){

returnflag;

publicvoidsetFlag(booleanflag){

this.flag=flag;

36.Javabean就是只包含属性和相关getter、setter方法,不包含业务逻辑处理的类,

这种说法对吗?

37.继承的好处是什么?

提高代码的重复性

38.Java中有多继承吗?

C++中有多继承吗?

单继承相比多继承优势在什么地方?

39.【上机】模仿课堂上动物世界的例子,我们自己写个例子。

40.Java的继承使用哪个关键字实现?

extends

41.定义某个类时,如果没有使用extends,那么继承了哪个类?

Object

42.Java中,有没有多继承?

请说明,Java为什么取消了多继承?

没有多继承,先从Java8之前说起。

要区分“声明多继承”与“实现多继承”。

Java是不允许“实现多继承”,简称不允许“多继承”。

但是Java支持“声明多继承”——Java的接口的多继承——一个类可以实现多个接口(“继承”了多个接口上的方法声明),而一个接口可以继承多个接口(同样是“继承”了多个接口上的方法声明)。

接口只允许有方法声明而不允许有实现,因而不会出现像C++那样的实现多继承的决议问题;

抽象类可以有方法实现,但要遵循Java类的单继承限制,也避免了实现多继承的问题。

这是早期Java为了与C++区分开的一个决定。

43.重写(override)指的是什么?

方法重写指的是继承中的,子类重写父类。

44.假如父类有main方法,子类能不能继承?

子类能继承父类的main方法,但是要重写main方法。

子类调用父类的main方法,同时执行main方法,子类调用子类的main方法,只能执行子类的main方法,不能执行父类的main方法。

45.Object是所有类的根类吗?

是所有类的直接父类吗?

是根类,不是父类,

46.在哪里查看Object类的源代码?

在API里面

47.Object类中的toString方法能否被子类重写?

请做测试。

可以重写tostring方法

48.【上机】完成继承、Object相关的测试代码

49.super指的是什么?

指的是直接父类

50.构造方法中,第一个话总是super吗?

不是,没有父类的话就不用super

51.叙述一下,有继承结构时,构造方法的调用顺序?

先调用父类的构造方法,再调用子类构造方法

52.重写中,子类的返回值类型可不可以跟父类不完全一致?

说出你的理由。

返回值类型必须一样,返回值类型,方法名,参数列表必须全部一样

53.如何判断两个对象内容是否相同?

重写equals(()有什么要求?

equals方法,

54.举一个现实的例子,说明多态。

子类是父类的多种表现形式

55.多态的三个必要条件是什么?

继承,重写,父类引用指向子类对象

56.什么是向上转型?

什么是向下转型?

类的向上转型,和向下转型,

接口的向上转型,向下转型

57.多态的常用使用场合有哪些?

58.Java的方法绑定采用动态绑定还是静态绑定?

动态绑定

59.final修饰变量、方法、类分别表示什么含义?

final

 根据程序上下文环境,Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类、非抽象类成员方法和变量。

你可能出于两种理解而需要阻止改变:

设计或效率。

final类不能被继承,没有子类,final类中的方法默认是final的。

final方法不能被子类的方法覆盖,但可以被继承。

final成员变量表示常量,只能被赋值一次,赋值后值不再改变。

final不能用于修饰构造方法。

注意:

父类的private成员方法是不能被子类方法覆盖的,因此private类型的方法默认是final类型的。

1、final类

 final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。

在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会载被扩展,那么就设计为final类。

2、final方法

如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。

使用final方法的原因有二:

第一、把方法锁定,防止任何继承类修改它的意义和实现。

第二、高效。

编译器在遇到调用final方法时候会转入内嵌机制,大大提高执行效率。

例如:

public 

class 

Test1 

{

static 

void 

main(String[] 

args) 

// 

TODO 

自动生成方法存根

f1() 

System.out.println("

f1"

//无法被子类覆盖的方法

final 

f2() 

f2"

f3() 

f3"

private 

f4() 

f4"

Test2 

extends 

f1(){

Test1父类方法f1被覆盖!

t=new 

Test2();

t.f1();

t.f2();

//调用从父类继承过来的final方法

t.f3();

//调用从父类继承过来的方法

//t.f4();

//调用失败,无法从父类继承获得

3、final变量(常量)

 用final修饰的成员变量表示常量,值一旦给定就无法改变!

 final修饰的变量有三种:

静态变量、实例变量和局部变量,分别表示三种类型的常量。

 从下面的例子中可以看出,一旦给final变量初值后,值就不能再改变了。

 另外,final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。

但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。

package 

org.leizhimin;

Test3 

String 

S="

final实例变量S"

;

int 

A=100;

B=90;

C=80;

D=70;

E;

//final空白,必须在初始化对象的时候赋初值

Test3(int 

x){

E=x;

/**

@param 

args

Test3

(2);

//t.A=101;

//出错,final变量的值一旦给定就无法改变

//t.B=91;

//t.C=81;

//t.D=71;

System.out.println(t.A);

System.out.println(t.B);

System.out.println(t.C);

//不推荐用对象方式访问静态字段

System.out.println(t.D);

System.out.println(Test3.C);

System.out.println(Test3.D);

//System.out.println(Test3.E);

//出错,因为E为final空白,依据不同对象值有所不同.

System.out.println(t.E);

t1=new 

Test3(3);

System.out.println(t1.E);

//final空白变量E依据对象的不同而不同

test(){

System.out.println(new 

Test3

(1).A);

test2(){

a;

//final空白,在需要的时候才赋值

b=4;

//局部常量--final用于局部变量的情形

c;

//final空白,一直没有给赋值.

a=3;

//a=4;

出错,已经给赋过值了.

//b=2;

}}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1