内部类练习
JAVA面向对象程序设计练习题目题目

public class B{ public static void main(String[] args){ } } (A)只有 B.class 文件 (B)只有 A1.class 和 A2.class 文件 (C)编译不成功 (D)A1.class、A2.class 和 B.class 文件 11.下列( )是合法的标识符? (A)12class (B)void (C)-5 (D)_blank 12.下列( )不是 Java 中的保留字? (A)if (B)sizeof (C)private (D)null 13.下列( )不是合法的标识符? (A)$million (B)$_million (C)2$_million (D)$2_million 14.下列选项中, ( )不属于 Java 语言的基本数据类型? (A)整数型 (B)数组 (C)浮点型 (D)字符型 15.下列关于基本数据类型的说法中,不正确的一项是( ) 。 (A)boolean 类型变量的值只能取真或假 (B)float 是带符号的 32 位浮点数 (C)double 是带符号的 64 位浮点数 (D)char 是 8 位 Unicode 字符 16.下列关于基本数据类型的取值范围的描述中,正确的一个是( ) 。 (A)byte 类型的取值范围是-128~128 (B)boolean 类型的取值范围是真或假 (C)char 类型的取值范围是 0~65536 ( D ) short 类 型 的 取 值 范 围 是 -32767 ~ 32767 17.下列关于 Java 语言简单数据类型的说法中,正确的一项是( ) 。 (A)以 0 开头的整数代表 8 进制整型常量 (B)以 0x 或 0X 开头的整数代表 8 进制整型常量 (C)boolean 类型的数据作为类成员变量的时候,相同默认的初始值为 true (D)double 类型的数据占计算机存储的 32 位 18.下列 Java 语句中,不正确的一项是( ) 。 (A)int e, a, b = 10; (B)char c, d = ‘a’; (C)float e = 0.0d; (D)double c = 0.0f; 19.在编写 Java 程序时,如果不为类的成员变量定义初始值,Java 会给出它们的默认值, 下列说法中不正确的一个是( ) 。 (A)byte 的默认值是 0 (B)boolean 的默认值是 false (C)char 类型的默认值是’\0’ (D)long 类型的默认值是 0.0L 20.下列语句中不正确的一个是( ) 。 (A)float f = 1.1f; (B)byte b = 128; (C)double d = 1.1/0.0; (D)char c = (char)1.1f; 21.下列表达式 1+2+ "aa"+3 的值是( ) 。 (A)"12aa3" (B)"3aa3 " (C)"12aa" (D)"aa3" 22.已知 y=2, z=3, n=4,则经过 n=n+ -y*z/n 运算后 n 的值为( ) 。 (A)3 (B)-1 (C)-12 (D)-3 33.已知 a=2, b=3,则表达式 a%b*4%b 的值为( ) 。 (A)2 (B)1 (C)-1 (D)-2
java匿名内部类练习

class InnerClassTest {
public static void main(String[] args) {
//Test.function():Test类中有一个静态的方法function。 //.method():function这个方法运算后的结果是一个对象。而且是一个Inter类型的对象。 //因为只有是Inter类型的对象,才可以调用method方法。
} }
System.out.println("method run"); } } */
static Inter function() {
return new Inter() {
public void method() {
System.out.println("method run"); } }; }
}
java匿 名 内 部 类 练 习
Байду номын сангаас
Test.function().method();
//
Inter in = Test.function();
//
in.method();
show(new Inter() {
public void method() {
System.out.println("method show run"); } });
}
public static void show(Inter in) {
in.method(); } }
class InnerTest {
public static void main(String[] args) {
new Object() {
public void function() {
Java内部测试题

题目(每题20分,附加题20分,满分100+20)一、用多重if语句实现:如果我的存款超过500万,我就买凯迪拉克;否则,如果我的存款超过100万,我就买帕萨特;否则,如果我的存款超过50万,我就买依兰特,否则,如果我的存款超过10万,我就买奥拓;否则,我只有买捷安特了。
二、编写学生类,输出学生相关信息,并编写main方法测试。
属性:姓名、性别、年龄方法:显示学生信息运行效果如图所示:三、提交email地址,对email地址进行有效性检查,要求:合法的email地址应该包含“@”符号,且“@”要出现在“.”之前。
提示:使用字符串的indexOf方法。
四、用随机数自动生成10个整数(1~100)的数组,求出生成数列中的最大值和最小值。
运行效果如图所示:图1:运行效果提示:随机数产生方法:int random=(int)(Math.random()*100);不允许使用Arrays类的sort方法。
五、实现一个简单的英中天气转换器:输入表1中天气状况英文单词的第一个字母,根据输入来判断天气状况,并输出天气的中文形式。
用户可重复输入进行转换,输入n退出系统。
运行效果如图1所示。
表1:天气状况的中英文对照表提示:使用while循环结构及多重if语句实现。
附加题:编写程序,输入正整数N,判断N是否为质数。
所谓质数,就是一个正整数,除了本身和1 以外不能被其他任何数整除。
例如2,3,5,7 是质数(这4个数只能被1和本身整除);而4(可以被2整除),6(可以被2和3整除),8(可以被2和4整除),9(可以被3整除)则不是。
图1:运行效果1图2:运行效果2提示:1.使用for循环和取余运算符(%)来检测质数。
第7、8章 深入面向对象练习题

一、选择题(1)下列构造方法的调用方式中,正确的是()A.按照一般方法调用B.由用户直接调用C.只能通过new自动调用D.被系统调用(2)下列叙述中,正确的是( )A. 声明变量时必须指定一个类型B. Java认为变量number与Number相同C. Java中唯一的注释方式是"//"D. 源文件中public类可以有0或多个(3)下列叙述中,错误的是( )A. 父类不能替代子类B. 子类能够替代父类C. 子类继承父类D. 父类包含子类(4)下列关于继承的哪项叙述是正确的?A.在java中允许多重继承B.在java中一个类只能实现一个接口C.在java中一个类不能同时继承一个类和实现一个接口D.java的单一继承使代码更可靠(5)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?( )A.private B.无修饰符C.public D.protected(6)给出下列代码,如何使成员变量m 被方法fun()直接访问?class Test{ private intm;public static void fun(){ ... }}A.将private int m 改为protected int mB.将private int m 改为public int mC.将private int m 改为static int mD.将private int m 改为int m(7)下列关于内部类的说法不正确的是( )A.内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用B.内部类可以使用它所在类的静态成员变量和实例成员变量C.内部类不可以用abstract修饰符定义为抽象类D.内部类可作为其他类的成员,而且可访问它所在类的成员(8)在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序特性称为()。
JAVA课后练习题

一、选择题1、在创建某类的对象时应该( )A、先声明对象,然后才能使用对象B、先声明对象,为对象分配内存空间,然后才能使用对象C、先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象D、以上述说法都对2、以下说法中对Java中定义的父类与子类的关系描述正确是的( )A、一个子类可以有多个父类,一个父类也可以有多个子类B、一个子类可以有多个父类,但一个父类只可以有一个子类C、一个子类可以有一个父类,但一个父类可以有多个子类D、上述说法都不对3、给定如下Java 程序片断:class A{ public A(){ System.out.print ("Java"); }}class B extends A{ public B(){ System.out.print (" Welcome"); }public static void main(String[] args){ B b=new B(); }}上述程序将( )A、不能通过编译B、通过编译,输出为: Java WelcomeC、通过编译,输出为: WelcomeD、通过编译,输出为: Java4、给定以下程序段,如下:int i=0,j=-1;switch(i){ case 0:j=1; case 2:j=2; default:j=5; }System.out.print("j="+j); 编译运行,正确的是( )A、j=-1B、j=1C、j=2D、j=55、下面关于Java构造函数的描述正确的是( )A、类必须有显式定义构造函数B、它的返回类型是voidC、它和类有相同的名称,但它不能带任何参数D、以上描述都是错误的6、在Java编程中,用来执行Java类文件的命令是( )A、javacB、javaC、appletviewerD、以上都不对7、如下程序片段,体现了Java的( ) 概念public void aMethod(String s) {........}public void aMethod(int i) {........}public void aMethod(int I,float f) {........}A、多继承B、重载C、重写D、多态8、如下Java升序片段Integer a = new Integer(3); Integer b = new Integer(3);System.out.println(a==b);运行后,该程序段的输出结果是( )A、trueB、falseC、0D、19、有如下Java程序声明String s1=new String(“Java”);String s2=new String(“Welcome”);String s3=new String("0"); 以下选项中能够通过编译的是( )A、s3=s1+s2B、s3=s1&s2C、s3=s1||s2D、s3=s1&&s210、在子类构造方法内可以对超类的构造方法(super())进行调用的位置是( )A、子类构造方法的任何地方B、子类构造方法的第一条语句处C、子类构造方法的最后一条语句处D、不能对超类的构造方法进行调用11、传递4,0来运行下列代码中的方法divide(int a, int b)public void divide(int a, int b){ try { int c = a / b; }catch (Exception e) { System.out.print("Exception "); }finally { System.out.println("Finally"); }}程序的输出结果是( )A、打印输出: Exception FinallyB、打印输出: FinallyC、打印输出: ExceptionD、没有任何输出12、在单一文件中import、class和package的正确出现顺序是( )A、package, import, classB、class, import, packageC、import, package, classD、package, class, import13.下列语句中,可以作为无限循环语句的是A) for(;;) {}B) for(int i=0; i<10000;i++) {}C) while(false) {}D) do {} while(false)14.自定义异常类的父类可以是A) ErrorB) VirtuaMachineErrorC) ExceptionD) Thread15.String、StingBuffer都是______类,都不能被继承。
Java程序设计课堂练习题

Java程序设计课堂练习题《Java程序设计》练习题第⼀章 Java编程基础⼀、选择题1、可以使⽤【】实⽤程序编译Java程序。
A.java B.javac C.javadoc D.cmd2、可以使⽤【】实⽤程序运⾏java应⽤程序。
A.java B.javac C.javadoc D.cmd3、可以使⽤【】实⽤程序从Java源⽂件代码中抽取Java⽂档注释,⽣成相应的HTML帮助⽂档。
A.java B.javac C.javadoc D.cmd4、Java编译单元(源程序⽂件)的扩展名为【】A..java B..class C..doc D..exe5、编译Java源程序⽂件产⽣的字节码⽂件的扩展名为【】A..java B..class C..html D..exe6、以下Java应⽤程序执⾏⼊⼝main⽅法的声明中,正确的是【】A、public static void main()B、public static void main(String[] args)C、public static int main(String[] args)D、public void main(String[] args)7、Java属于以下哪种语⾔?【】A.机器语⾔ B.汇编语⾔C.⾼级语⾔ D.以上都不对8、下⾯哪种类型的⽂件可以在Java虚拟机中运⾏?【】A..java B..jre C..exe D..classs9、Java程序中声明包的关键字是【】A、javaB、packageC、javadocD、cmd10、如果JDK的安装路径为“d:\jdk”,若想在命令窗⼝中任何当前路径下,都可以直接使⽤javac和java命令,需要将环境变量path设置为以下哪个选项?【】A、d:\jdk;B、d:\jdk\bin;C、d:\jre\bin;D、d:\jre;11、下列说法中,不正确的是【】。
A、⼀个Java源⽂件编译通过后,得到的结果⽂件数也只有⼀个B、⼀个Java源⽂件经过编译后,得到的⽂件的扩展名⼀定是.classC、⼀个Java源⽂件只能有⼀个public类定义,其类名与源⽂件名相同D、⼀个Java源⽂件可以包含多个类12、安装好JDK后,在其bin⽬录下有许多exe可执⾏⽂件,其中“java.exe”命令的作⽤是以下哪⼀种?【】。
java练习(类和接口)

1. (分值:0.7 分)Java 语言中创建一个对象使用的关键字为A: classB: interfa ceC: newD: create2. (分值:0.7 分)设有对象x 具有属性a 则访问该属性的方法为A: a.xB: a.x()C: x.aD: x.a()3. (分值:0.7 分)以public修饰的类如:publicclass Car{…} 则Car( )A: 可被其它程序包中的类使用B: 仅能被本程序包中的类使用C: 不能被任意其它类使用D: 不能被其它类继承4. (分值:0.7 分)Java 语言中,只限子类或者同一包中的类的方法能访问的访问权限是( )A: publicB: privateC: protect edD: <无修饰>5. (分值:0.7 分)有Java 语句如下,则说法正确的是()int []a,b=new int[3]; A: 此语句是错误的B: a.length的值为3C: b.length的值为3D: a.length和b.length的值都为36. (分值:0.7 分)设有数组定义i nt[][] x={{1,2},{3,4,5},{6},{}};,则x.length的值为( )A: 3B: 4C: 6D: 77. (分值:0.7 分)在Java 语言的java.util 包中,用于语言符号(单词)分析的类是()A: stringT okeniz erB: StringT okeniz erC: ToKeniz erD: tokeniz er8. (分值:0.7 分)接口的所有变量和方法分别默认为是()A: final static和public abstrac tB: final static和public finalC: publicstatic和public abstrac tD: publicstatic和public final9. (分值:0.7 分)下列有关Jav a 的叙述错误的是()A: 强类型语言B: 与平台无关C: 可以使用汉字变量名D: 不检查数组下标越界10. (分值:0.7 分)设数组Arra y 由以下语句定义i nt age=new int[10];则数组的第一个元素的正确引用方法为( )A: age[1]B: Age[0]C: age[]D: age[0]11. (分值:0.7 分)建立一个把li st 字符串数组元素作为选择条目的列表list1,可以使用的代码是A: list1=JList(list)B: JList list1=JList(list)C: JList list=new JList(list1)D: JList list1=new JList(list)12. (分值:0.7 分)下面哪一项是J ava 实现动态多态性的具体手段()A: 重载;B: 覆盖(重写)C: 接口D: 抽象类13. (分值:0.7 分)下列说法哪个是正确的?A: 子类不能定义和父类同名同参数的方法B: 子类只能继承父类的方法,而不能重载C: 重载就是一个类中有多个同名但有不同形参和方法体的方法D: 子类只能覆盖父类的方法,而不能重载14. (分值:0.7 分)下列类不属于j ng.*包的是A: MathB: SystemC: DateD: StringB uffer15. (分值:0.7 分)System类属于下列哪个包?A: java.io.*B: ng.*C: java.util.*D: java.awt.*16. (分值:0.7 分)对于以下声明:Strings1="hello";Strings2="world";Strings3;下面的操作合法的是A: s3=s1+s2;B: s3=s1-s2;C: s3=s1&s2;D: s3=s1&&s2;17. (分值:0.7 分)下面的代码合法的是A: publicabstrac t method();B: publicabstrac t void method();C: publicabstrac t void method(){ };D: publicvoid method() impleme nts abstrac t;18. (分值:0.7 分)下列数组的定义合法的是A: int a = (1,2,3);B:intd[]=(1…3);C: int []a[] = new int[3][];D: char [][]c=new char[][4];19. (分值:0.7 分)有整型数组:int[] x={12,35,8,7,2};,则调用方法Arrays.sort(x)后,数组x 中的元素值依次是( ).A: 2 7 8 12 35B: 12 35 8 7 2C: 35 12 8 7 2D: 8 7 12 35 220. (分值:0.7 分)下列数组定义及赋值,错误的是A: int intArra y[];B: intArra y=new int[3];intArra y[1]=1;intArra y[2]=2;intArra y[3]=3;C: int a[]={1,2,3,4,5};D: int[][]=new int[2][];a[0]=new int[3];a[1]=new int[3];21. (分值:0.7 分)在java 中,字符串由jang.String和()定义A: ng.StringC harB: ng.StringB ufferC: java.io.StringC harD: java.io.StringB uffer22. (分值:0.7 分)下列不属于面向对象编程的三个特征的是A: 封装B: 指针操作C: 多态性D: 继承23. (分值:0.7 分)类所实现的接口以及修饰不可以是A: publicB: abstrac tC: finalD: void24. (分值:0.7 分)下列类的定义,错误的是A: publicclass test extends Object{……}B: final class operato rs{……}C: clas sPoint{……}D:voidclassPoint{……}25. (分值:0.7 分)关键字supp er 的作用是A: 用来访问父类被隐藏的成员变量B: 用来调用父类中被重载的方法C: 用来调用父类的构造函数D: 以上都是26. (分值:0.7 分)下面程序定义了一个类,关于该类说法正确的是abstractclass abstrac tClass{……}A: 该类能调用new abstrac tClass(),方法实例化为一个对象B: 该类不能被继承C: 该类的方法都不能被重载D: 以上说法都不对27. (分值:0.7 分)关于对象的删除,下列说法正确的是A: 必须由程序员完成对象的清除B: java 把没有引用的对象作为垃圾收集起来并释放C: 只有当程序中调用Syste m.gc()方法时才能进行垃圾收集D: java 中的对象都很小,一般不进行删除操作。
Java练习题1-4章

第1章Java开发入门一、填空题1、Java程序的运行环境简称之为______。
2、编译Java程序需要使用______命令。
3、和两个可执行程序存放在JDK安装目录的______目录下。
4、______环境变量用来存储Java的编译和运行工具所在的路径。
二、选择题1、Java属于以下哪种语言A、机器语言B、汇编语言C、高级语言D、以上都不对2、下面哪种类型的文件可以在Java虚拟机中运行A、.javaB、.jreC、.exeD、.class3、安装好JDK后,在其bin目录下有许多exe可执行文件,其中命令的作用是以下哪一种A、Java文档制作工具B、Java解释器C、Java编译器D、Java启动器4、如果jdk的安装路径为:d:\jdk,若想在命令窗口中任何当前路径下,都可以直接使用javac和java命令,需要将环境变量path设置为以下哪个选项A.d:\jdk;B.d:\jdk\bin;C.d:\jre\bin;D.d:\jre;第2章基本数据类型与数组一、填空题1、Java中的程序代码都必须在一个类中定义,类使用______关键字来定义。
2、布尔常量即布尔类型的两个值,分别是______和______。
3、Java中的注释可分为三种类型,分别是______、______、______。
4、Java中的变量可分为两种数据类型,分别是______和______。
5、在Java中,byte类型数据占______个字节,short类型数据占______个字节,int类型数据占______个字节,long类型数据占______个字节。
6、在逻辑运算符中,运算符______和______用于表示逻辑与,______和______表示逻辑或。
7、若x = 2,则表达式( x + + )/3 的值是______。
8、若int a =2; a+=3;执行后,变量a的值为______。
9、若int []a={12,45,34,46,23}; ,则a[2]= ______。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5、public class OuterClass {
private double d1 = 1.0; //insert code here } You need to insert an inner class declaration at line 3,Which two inner class declarations are valid?
a) class InnerOne{
public static double methoda() {return d1;} }
b) public class InnerOne{
static double methoda() {return d1;} }
c) private class InnerOne{
二、简答题 1. Anonymous Inner Class 是否可以 extends 其它类?是否可以 implements 接口? 2.内部类可以引用它包含类(也就是外部类)的成员吗?有没有什么限制? 3.如下 java 代码是否可以编译通过?如果存在错误,如何解决?如果编译通过,输出结 果是什么? public class OuterClass { private class InterClass { public InterClass() { System.out.println("InterClass Create"); } } public OuterClass() { InterClass ic = new InterClass(); System.out.println("OuterClass Create"); } public static void main(String[] args) { OuterClass oc = new OuterClass(); } }
内部类课后练习
一、选择题 1、以下关于 Java 的局部内部类的说法错误的是( ) 。 a) 局部内部类只能在当前类中使用 b) 局部内部类不能包含静态成员 c) 局部内部类可以访问外部类的所有成员 d) 在局部内部类中定义的内部类不能被 private 修饰符修饰 2、在 Java 中,阅读如下代码,则编译运行后的输出结果是( ) 。 public class TestI { public int x=1; private int y=2; class classinnerA{ protected void method1(){ System.out.print("method1"); } class classinnerAB{ private void method2(){ float ab=x+y+z; } } } class classinnerB extends TestI{ public float z=3; } } a) 编译通过,ab 的值运行后为 6 b) 编译报错,提示不能访问 x c) 编译报错,提示不能访问 y、z d) 编译报错,提示不能访问 z 3、static、abstract、final、private 都可以用于修饰静态内部类。 a) 正确 b) 错误 4、非静态内部类,有时也称为实例内部类,它具有以下特点,除了( ) 。 a) 在创建非静态内部类的实例时,外部类的实例不是必须存在 b) 非静态内部类的实例自动持有外部类的实例引用 c) 外部类实例和内部类实例之间是一对多的关系 d) 一个内部类实例只会引用一个外部类实例
double methoda() {return d1;} }
d) static class InnerOne{
protected double methoda() {return d1;} }
e) abstract class InnerOne{
public abstract double methoda(); }
北京阿博