PTA期末

1-1
java语言中不用区分字母的大写小写。

T
F
| 参考答案
答案
F
1分
1-2
用static修饰的变量是类变量。

T
F
| 参考答案
答案
T
1分
1-3
系统自动引入java.lang包中的所有类,因此不需要再显式地使用import语句引入该包的所有类。

T
F
| 参考答案
答案
T
1分
1-4
java.lang包是Java的核心类库,它包含了运行Java程序必不可少的系统类。

T
F
| 参考答案
答案
T
1分
1-5
如果使用import语句引入了整个包中的类,那么可能会增加编译时间。但绝对不会影响程序运行的性能,因为当程序执行时,只是将真正使用的类的字节码文件加载到内存。

T
F
| 参考答案
答案
T
1分
1-6
在Java程序中,可以使用protected来修饰一个类。

T
F
| 参考答案
答案
T
1分
1-7
在Java程序中,可以使用private来修饰一个类。

T
F
| 参考答案
答案
T
1分
1-8
如果一个类的声明中没有使用extends关键字,这个类被系统默认为是继承Object类。

T
F
| 参考答案
答案
T
1分
1-9
如果一个成员变量被修饰为final的,就是常量,常量必须赋给初值,而且不能再发生变化。

T
F
| 参考答案
答案
T
1分
1-10
不允许使用final来修饰abstract方法。

T
F
| 参考答案
答案
T
1分
1-11
对于abstract类,不能创建该类的对象。

T
F
| 参考答案
答案
T
1分
1-12
子类如果想使用父类的构造方法,必须在子类的构造方法中使用,并且必须使用关键字super来表示,而且super必须是子类构造方法中的头一条语句。

T
F
| 参考答案
答案
T
1分
1-13
如果在子类的构造方法中,没有使用关键字super调用父类的某个构造方法,那么默认有super();语句,即调用父类的不带参数的构造方法。

T
F
| 参考答案
答案
T
1分
1-14
为了克服单继承的缺点,Java使用了接口,一个类可以实现多个接口。

T
F
| 参考答案
答案
T
1分
1-15
接口中的方法默认是public abstract方法。

T
F
| 参考答案
答案
T
1分
1-16
类在实现接口方法时必须给出方法体,并且一定要用public来修饰。

T
F
| 参考答案
答案
T
1分
1-17
接口中的常量默认是public static的变量。

T
F
| 参考答案
答案
T
1分
1-18
一个Java源文件就是由类和接口组成的。

T
F
| 参考答案
答案
T
1分
1-19
如果一个类声明实现一个接口,但没有实现接口中的所有方法,那么这个类必须是abstract类。

T
F
| 参考答案
答案
T
1分
1-20
类可以有两种重要的成员:成员变量和方法,类还可以有一种成员:内部类。

T
F
| 参考答案
答案
T
1分
1-21
Java的字符类型采用的是ASCII编码。

T
F
| 参考答案
答案
F
1分
1-22
Java的字符类型采用的是Unicode编码,每个Unicode码占16个比特。

T
F
| 参考答案
答案
T
1分
1-23
Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。

T
F
| 参考答案
答案
T
1分
1-24
类在实现接口的方法时,必须显式地使用public修饰符。

T
F
| 参考答案
答案
T
1分
1-25
System类不能实例化,即不能创建System类的对象。

T
F
| 参考答案
答案
T
1分
1-26
Java中数组的元素只能是简单数据类型。

T
F
| 参考答案
答案
F
1分
1-27
有的类定义时可以不定义构造函数,所以构造函数不是必需的。

T
F
| 参考答案
答案
F
1分
1-28
类及其属性、方法可以同时有一个以上的修饰符来修饰。

T
F
| 参考答案
答案
T
1分
1-29
一个Java类可以有多个父类。

T
F
| 参考答案
答案
F
1分
1-30
一个类只能有一个父类,但一个接口可以有一个以上的父接口。

T
F
| 参考答案
答案
T
1分
1-31
一个类可以实现多个接口。

T
F
| 参考答案
答案
T
1分
1-32
一个接口可以继承其他接口。

T
F
| 参考答案
答案
T
1分
1-33
接口中的方法默认都是静态的。

T
F
| 参考答案
答案
F
1分
1-34
接口中的属性,都是静态常量。

T
F
| 参考答案
答案
T
1分
1-35
所有异常都必须捕获。

T
F
| 参考答案
答案
F
1分
1-36
一个try语句可以有多个catch语句与之对应。

T
F
| 参考答案
答案
T
1分
1-37
异常也是一个对象。

T
F
| 参考答案
答案
T
1分
1-38
用户可以自定义自己的异常类。

T
F
| 参考答案
答案
T
1分
1-39
可以使用throw语句来抛出异常。

T
F
| 参考答案
答案
T
1分
1-40
可以使用throws语句来指明方法有异常抛出。

T
F
| 参考答案
答案
T
1分
1-41
数组也是对象。

T
F
| 参考答案
答案
T
1分
1-42
Java语言中,变量名可以用汉字表示。

T
F
| 参考答案
答案
T
1分
1-43
使用方法length( )可以获得字符串或数组的长度。

T
F
| 参考答案
答案
F
1分
1-44
一个数组可以存放不同类型的数值。

T
F
| 参考答案
答案
F
1分
1-45
Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。

T
F
| 参考答案
答案
T
1分
1-46
String字符串在创建后可以被修改。

T
F
| 参考答案
答案
F
1分
1-47
设String对象s="Hello ",运行语句System.out.println(s.concat("world!"));后String对象s的内容为Hello world!,所以语句输出为Hello world!。

T
F
| 参考答案
答案
F
1分
1-48
package语句必须放到java程序的最开始。

T
F
| 参考答案
答案
T
1分
1-49
一个类的非静态方法可以访问静态成员变量。

T
F
| 参考答案
答案
T
1分
1-50
一个类的静态方法不可以访问该类的非静态成员变量。

T
F
| 参考答案
答案
T
1分
1-51
实例变量只能通过对象名访问,类变量既可以通过某个对象名也可以通过类名来访问。

T
F
| 参考答案
答案
T
1分
1-52
抽象类中不能有private的成员,所有的抽象方法必须存在于抽象类中。

T
F
| 参考答案
答案
T
1分
1-53
抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。。

T
F
| 参考答案
答案
F
1分
1-54
final类中的属性和方法都必须被final修饰符修饰。

T
F
| 参考答案
答案
F
1分
1-55
final类不能派生子类,final方法不能被覆盖。

T
F
| 参考答案
答案
T
1分
1-56
抽象类必须有抽象方法。

T
F
| 参考答案
答案
F
1分
1-57
覆盖只能在不同的类中完成。

T
F
| 参考答案
答案
T
1分
1-58
System.out.println(); 语句的作用是在结尾显示一个换行符。。

T
F
| 参考答案
答案
T
1分
1-59
Java中所有的I/O都是通过流来实现的。

T
F
| 参考答案
答案
T
1分
1-60
程序运行中可以改变数组的大小。

T
F
| 参考答案
答案
F
1分
1-61
Object是Java中所有类的共同父类。

T
F
| 参考答案
答案
T
1分
1-62
字节码文件是与平台无关的二进制码,执行时由解释器解释成本地机器码。

T
F
| 参考答案
答案
T
1分
1-63
一个Java源文件中可以有多个类,但只能有一个类是public的。

T
F
| 参考答案
答案
T
1分
1-64
如果Java源文件中包含了多个类,那么用编译器javac编译完源文件后将生成多个扩展名为.class的文件。

T
F
| 参考答案
答案
T
1分
1-65
语句 System.out.println(4+8+"Hello,world!"); 的输出结果是12Hello,world!。

T
F
| 参考答案
答案
T
1分
1-66
Java允许创建不规则数组,即Java多维数组中各行的列数可以不同。

T
F
| 参考答案
答案
T
1分
1-67
在实例方法或构造器中,this用来引用当前对象,通过使用this可引用当前对象的任何成员。

T
F
| 参考答案
答案
T
1分
1-68
当一个方法在运行过程中产生一个异常,则这个方法会终止,但是整个程序不一定终止运行。

T
F
| 参考答案
答案
T
1分
1-69
Java系统的标准输入对象是System.in,标准输出对象有两个,分别是System.out和System.err。

T
F
| 参考答案
答案
T
1分
1-70
修饰符protected主要是允许其他包中的子类来访问父类的特定属性。

T
F
| 参考答案
答案
T
1分
1-71
abstract类中定义的方法只能是abstract方法。

T
F
| 参考答案
答案
F
1分
1-72
程序运行时所产生的系统定义的异常将自动被抛出。

T
F
| 参考答案
答案
T
1分
1-73
Java中类和方法都不允许嵌套定义。

T
F
| 参考答案
答案
F
1分
1-74
abstract可以与final同时修饰同一个类。

T
F
| 参考答案
答案
F
1分
1-75
构造函数名应与类名相同,返回类型为void。

T
F
| 参考答案
答案
F
1分
1-76
引用一个类的属性或调用其方法,必须以这个类的对象为前缀。

T
F
| 参考答案
答案
F
1分
1-77
把数组中元素按某种顺序排列的过程叫做查找 。

T
F
| 参考答案
答案
F
1分
1-78
一个数组可以存放许多不同类型的数值。

T
F
| 参考答案
答案
F
1分
1-79
数组作为方法的参数时,必须加在数组名后加方括号。

T
F
| 参考答案
答案
T
1分
1-80
数组中有length()这个方法,如array.length()表示数组array中元素的个数

T
F
| 参考答案
答案
F
1分
1-81
制造(new)数组时,要指定数组长度,以便为数组分配内存。

T
F
| 参考答案
答案
T
1分
1-82
Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。

T
F
| 参考答案
答案
T
1分
1-83
如果线程死亡,它便不能运行。

T
F
| 参考答案
答案
T
1分
1-84
在Java中,高优先级的可运行线程会抢占低优先级线程。

T
F
| 参考答案
答案
F
1分
1-85
当调用一个正在进行线程的stop()方法时,该线程便会进入休眠状态。

T
F
| 参考答案
答案
F
1分
1-86
类也是一种数据类型(type)。

T
F
| 参考答案
答案
T
1分
1-87
对象是类的实例(instance)。

T
F
| 参考答案
答案
T
1分
1-88
静态变量是被同一个类的所有实例所共享的。

T
F
| 参考答案
答案
T
1分
1-89
可以使用protected修饰符来防止方法和数据被不同包的非子类访问。

T
F
| 参考答案
答案
T
1分
1-90
子类不继承父类的构造方法。

T
F
| 参考答案
答案
T
1分
1-91
构造方法可以调用本类中重载的构造方法和它的父类的构造方法。

T
F
| 参考答案
答案
T
1分
1-92
可以覆盖在父类中定义的私有方法。

T
F
| 参考答案
答案
F
1分
1-93
InputStream类和OutputStream类是所有二进制I/O的根类。

T
F
| 参考答案
答案
T
1分
1-94
boolean型数据的值只有true和false。

T
F
| 参考答案
答案
T
1分
1-95
在一个编辑器中编写好的Java应用程序,是扩展名为.class的文件。

T
F
| 参考答案
答案
F
1分
1-96
构造方法不能被重载。

T
F
| 参考答案
答案
F
5分
1-97
抽象类是不能实例化的。

T
F
| 参考答案
答案
T
5分
1-98
String实例一旦创建完毕,就不能再修改其内容。

T
F
| 参考答案
答案
T
5分
1-99
子类和父类必须在一个包中。

T
F
| 参考答案
答案
F
1分
1-100
Java中,boolean基本类型的变量取值为0、1,也可取值true或false。

T
F
| 参考答案
答案
F
1分
单选题
183 分
2-1
下列不可作为java语言标识符的是()。


A.
a2


B.
$2


C.
_2


D.
22

| 参考答案
答案
D
1分
2-2
有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是( ).


A.
a1.java


B.
a1.class


C.
a1


D.
都对

| 参考答案
答案
A
1分
2-3
整型数据类型中,需要内存空间最少的是( ).


A.
short


B.
long


C.
int


D.
byte

| 参考答案
答案
D
1分
2-4
Java中( ) 。


A.
一个子类可以有多个父类,一个父类也可以有多个子类


B.
一个子类可以有多个父类,但一个父类只可以有一个子类


C.
一个子类可以有一个父类,但一个父类可以有多个子类


D.
上述说法都不对

| 参考答案
答案
C
1分
2-5
Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?( )


A.
安全性


B.
多线性


C.
跨平台


D.
可移植

| 参考答案
答案
B
1分
2-6
关于以下程序代码的说明正确的是( ) 。

1.class  HasStatic{
2.    private  static  int  x=100;
3.    public  static  void  main(String[  ]  args){
4.        HasStatic  hs1=new  HasStatic(  );
5.        hs1.x++;
6.        HasStatic  hs2=new  HasStatic(  );
7.        hs2.x++;
8.        hs1=new  HasStatic( );
9.        hs1.x++;
10.       HasStatic.x--;
11.       System.out.println(“x=”+x);
12.    }
13. }

A.
5行不能通过编译,因为引用了私有静态变量


B.
10行不能通过编译,因为x是私有静态变量


C.
程序通过编译,输出结果为:x=103


D.
程序通过编译,输出结果为:x=102

| 参考答案
答案
D
2分
2-7
以下选项中没有语法错误的是(       ) 。


A.
while (int  i<7) {
       i++;
       System.out.println(“i is “+i);
}

B.
int  j=3; while(j) {
       System.out.println(“ j  is “+j);
}

C.
int  j=0;
for(int  k=0; j + k !=10; j++,k++) {
        System.out.println(“ j  is “+ j + “k  is”+ k);
}

D.
int  j=0;
do{
      System.out.println( “j  is “+j++);
     if (j == 3) {
        continue  loop;
     }
}while  (j<10);
| 参考答案
答案
C
2分
2-8
将以下哪种方法插入行3是不合法的。

1.public  class  Test1{
2.         public  float  aMethod(float  a,float  b){   }
3.
4.}

A.
public  float  aMethod(float  a, float  b,float  c){  }


B.
public  float  aMethod(float  c,float d){  }


C.
public  int  aMethod(int  a, int b){  }


D.
private float aMethod(int a,int b,int c){  }

| 参考答案
答案
B
2分
2-9
将以下哪种方法插入行6是不合法的。(   ) 。

1.public  class  Test1 {
2.   public  float  aMethod(float a,float b) throws
3.   IOException {      }
4. }
5.public  class  Test2  extends  Test1{
6.
7.}

A.
float  aMethod(float  a,float  b){ }


B.
public  int  aMethod(int a,int b)throws  Exception{ }


C.
public  float  aMethod(float  p,float q){ }


D.
public  int  aMethod(int a,int  b)throws IOException{ }

| 参考答案
答案
A
2分
2-10
以下哪个方法用于定义线程的执行体? (   )


A.
start()


B.
init()


C.
run()


D.
ynchronized()

| 参考答案
答案
C
2分
2-11
在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为(  )。


A.
隐藏


B.
覆盖


C.
重载


D.
Java不支持此特性

| 参考答案
答案
C
1分
2-12
以下关于构造函数的描述错误的是(    )。


A.
构造函数的返回类型只能是void型。


B.
构造函数是类的一种特殊函数,它的方法名必须与类名相同。


C.
构造函数的主要作用是完成对类的对象的初始化工作。


D.
一般在创建新对象时,系统会自动调用构造函数。

| 参考答案
答案
A
1分
2-13
下列哪些语句关于Java内存回收的说明是正确的? (  )


A.
程序员必须创建一个线程来释放内存


B.
内存回收程序负责释放无用内存


C.
内存回收程序允许程序员直接释放内存


D.
内存回收程序可以在指定的时间释放内存对象

| 参考答案
答案
B
2分
2-14
若需要定义一个类属性或类方法,应使用哪种修饰符?(      )


A.
static


B.
package


C.
private


D.
public

| 参考答案
答案
A
2分
2-15
有以下方法的定义,请选择该方法的返回类型(    )。

ReturnType  method(byte x, double y)  {
    return  (short)x/y*2;
}

A.
byte


B.
short


C.
int


D.
double

| 参考答案
答案
D
2分
2-16
有以下程序片段,下列哪个选项不能插入到行1。(      )

1)
2) public  class  Interesting{
3)      //do sth
4) }

A.
import java.awt.*;


B.
package mypackage;


C.
class OtherClass{   }


D.
public class MyClass{ }

| 参考答案
答案
D
2分
2-17
若A1、A2为已定义的接口 ,以下接口定义中没有语法错误的是(        ) 。


A.
interface  B {  void print()  {  } }


B.
abstract  interface  B { void print() }


C.
abstract  interface  B  extends  A1,A2  { abstract  void  print(){  };}


D.
interface  B  {  void  print();}

| 参考答案
答案
D
2分
2-18
下面哪个函数是public void  aMethod(){...}的重载函数?(    )


A.
void  aMethod( ){...}


B.
public int  aMethod(){...}


C.
public void  aMethod ( ){...}


D.
public int  aMethod ( int m){...}

| 参考答案
答案
D
2分
2-19
A派生出子类B,B派生出子类C,对于如下Java源代码正确的说法是()。

1.    A  a0 =new  A();
2.    A  a1 =new  B();
3.    A  a2 =new  C();

A.
只有第1行能通过编译


B.
第1、2行能通过编译,但第3行编译出错


C.
第1、2、3行能通过编译,但第2、3行运行时出错


D.
第1行、第2行和第3行的声明都是正确的

| 参考答案
答案
D
2分
2-20
假设类A有如下定义,且a是A类的一个实例,则必定错误的选项是(  )。

class  A {
      int  i;
      static  String  s;
       void  method1() {   }
       static  void  method2()  {   }
}

A.
System.out.println(a.i);


B.
a.method1();


C.
A.method1();


D.
A.method2() ;

| 参考答案
答案
C
2分
2-21
假设方法unsafe() 将抛出IOException, 可以填入如下代码段第1行的选项是( )。

1)
2) { if(unsafe()){//do something…}
3)   else if(safe()){//do the other…}
4) }

A.
public IOException methodName()


B.
public void methodName()


C.
public void methodName() throw IOException


D.
public void methodName() throws IOException

| 参考答案
答案
D
2分
2-22
以下关于继承的叙述正确的是(     )。


A.
在Java中类只允许单一继承


B.
在Java中一个类只能实现一个接口


C.
在Java中一个类不能同时继承一个类和实现一个接口


D.
在Java中接口只允许单一继承

| 参考答案
答案
A
2分
2-23
在使用interface声明一个接口时,只可以使用(    )修饰符修饰该接口。


A.
private


B.
protected


C.
private  protected


D.
public

| 参考答案
答案
D
2分
2-24
下列哪个类的声明是正确的?(    )


A.
abstract final class HI{}


B.
abstract private move(){}


C.
protected private number;


D.
public abstract class Car{}

| 参考答案
答案
D
2分
2-25
关于被私有访问控制符private修饰的成员变量,以下说法正确的是(  )


A.
可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类


B.
可以被两种类访问和引用:该类本身、该类的所有子类


C.
只能被该类自身所访问和修改


D.
只能被同一个包中的类访问

| 参考答案
答案
C
2分
2-26
执行完以下代码int [ ]  x = new int[10];后,以下哪项说明是正确的(   )


A.
x[9]为0


B.
x[9]未定义


C.
x[10]为0


D.
x[0]为空

| 参考答案
答案
A
2分
2-27
下列方法头中哪一个不与其他方法形成重载(overload)关系?(    )


A.
void mmm()


B.
void mmm(int i)


C.
void mmm(String s)


D.
int mm()

| 参考答案
答案
D
2分
2-28
编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(    )。


A.
.byte


B.
.class


C.
.html


D.
.exe

| 参考答案
答案
B
2分
2-29
在Java中用什么关键字修饰的方法可以直接通过类名来调用?(     )


A.
static


B.
final


C.
private


D.
void

| 参考答案
答案
A
2分
2-30
若在某一个类定义中定义有如下的方法:abstract void performDial( );该方法属于(    )。


A.
接口方法


B.
最终方法


C.
抽象方法


D.
空方法

| 参考答案
答案
C
2分
2-31
在Java中,"456"属于(    )类的对象。


A.
int


B.
String


C.
Integer


D.
Number

| 参考答案
答案
B
2分
2-32
欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的?(   )


A.
ArrayList myList=new Object();


B.
List myList=new ArrayList();


C.
ArrayList myList=new List();


D.
List myList=new List();

| 参考答案
答案
B
2分
2-33
下面说法不正确的是(     )


A.
一个子类的对象可以接收父类对象能接收的消息;


B.
当子类对象和父类对象能接收同样的消息时,它们针对消息产生的行为可能不同;


C.
父类比它的子类的方法更多;


D.
子类在构造函数中可以使用super( )来调用父类的构造函数;

| 参考答案
答案
C
2分
2-34
声明成员变量时,如果不使用任何访问控制符(public, protected, private),则以下哪种类型的类不能对该成员进行直接访问 (     ) .


A.
同一类


B.
同一包中的子类


C.
同一包中的非子类


D.
不同包中的子类

| 参考答案
答案
D
2分
2-35
下列哪种异常是检查型异常,需要在编写程序时声明 (     ).


A.
NullPointerException


B.
ClassCastException


C.
FileNotFoundException


D.
IndexOutOfBoundsException

| 参考答案
答案
C
2分
2-36
下面哪个流类属于面向字符的输入流(    ) 。


A.
BufferedWriter


B.
FileInputStream


C.
ObjectInputStream


D.
InputStreamReader

| 参考答案
答案
D
2分
2-37
下面关于数组声明和初始化的语句那个有语法错误?(   )


A.
int a1[]={3,4,5};


B.
String a2[]={"string1","string1","string1"};


C.
String a3[]=new String(3);


D.
int[][] a4=new int[3][3];

| 参考答案
答案
C
2分
2-38
下面的方法,当输入为2的时候返回值是多少?(     )

public int getValue(int i) {
         int result = 0;
         switch (i) {
            case 1:
                result = result + i;
            case 2:
                result = result + i * 2;
            case 3:
                result = result + i * 3;
        }
        return result;
 }

A.
0


B.
2


C.
4


D.
10

| 参考答案
答案
D
2分
2-39
getCustomerInfo()方法如下,try中可以捕获三种类型的异常,如果在该方法运行中产生了一个IOException,将会输出什么结果(   )。

public void getCustomerInfo() {
            try {
              // do something that may cause an Exception
            } catch (java.io.FileNotFoundException  ex){
                  System.out.print("FileNotFoundException!");
            } catch (java.io.IOException  ex){
                System.out.print("IOException!");
            } catch (java.lang.Exception  ex){
                 System.out.print("Exception!");
            }
}


A.
IOException!


B.
IOException!Exception!


C.
FileNotFoundException!IOException!


D.
FileNotFoundException!IOException!Exception!

| 参考答案
答案
A
2分
2-40
下面是People和Child类的定义和构造方法,每个构造方法都输出编号。在执行new Child("mike")的时候都有哪些构造方法被顺序调用?请选择输出结果 (    )

class People {
        String name;
        public People() {
               System.out.print(1);
        }
        public People(String name) {
               System.out.print(2);
               this.name = name;
        }
}
class Child extends People {
       People father;
       public Child(String name) {
              System.out.print(3);
              this.name = name;
              father = new People(name + ":F");
       }
       public Child(){
             System.out.print(4);
       }
}

A.
312


B.
32


C.
432


D.
132

| 参考答案
答案
D
2分
2-41
list是一个ArrayList的对象,哪个选项的代码填写到//todo delete处,可以在Iterator遍历的过程中正确并安全的删除一个list中保存的对象?(     )

        Iterator it = list.iterator();
        int index = 0;
        while (it.hasNext()){
              Object obj = it.next();
              if (needDelete(obj)) { //needDelete返回boolean,决定是否要删除
                   //todo delete
               }
              index ++;
        }

A.
list.remove(obj);


B.
list.remove(index);


C.
list.remove(it.next());


D.
it.remove();

| 参考答案
答案
D
2分
2-42
在Java中,负责对字节代码解释执行的是( )。


A.
应用服务器


B.
虚拟机


C.
垃圾回收器


D.
编译器

| 参考答案
答案
B
1分
2-43
以下代码段将创建几个对象?

String s1="bc";
String s2="bc";

A.
2


B.
3


C.
0


D.
1

| 参考答案
答案
D
2分
2-44
下面哪个对类的声明是错误的?


A.
class MyClass extends MySuperClass1, MySupperClass2 {}


B.
public class MyClass{}


C.
abstract class MyClass implements YourInterface1, Youriterface2 {}


D.
private class MyClass {}


E.
class MyClass extends MySuperClass implements YourInterface {}

| 参考答案
答案
A
2分
2-45
类的实例方法表示的是什么?( )


A.
父类对象的行为


B.
类的属性


C.
类对象的行为


D.
类的行为

| 参考答案
答案
C
2分
2-46
下面说法正确的是( ) 。


A.
JAVA中线程是非抢占式的


B.
JAVA中的线程不可以共享数据


C.
每个JAVA程序都至少有一个线程,即主线程


D.
JAVA中的线程不可以共享代码

| 参考答案
答案
C
2分
2-47
要创建一个新目录,可以用下面( )类实现。


A.
FileInputStream


B.
FileOutputStream


C.
RandomAccessFile


D.
File

| 参考答案
答案
D
2分
2-48
类Teacher和Student是类Person的子类,下面的代码中最后一句语句的运行结果是( ).

Person p;
Teacher t;
Student s;
//p,t and s are all non-null.
if(t instanceof Person)  {s=(Student)t;}

A.
编译时正确,但运行时错误


B.
将构造一个Student对象


C.
表达式是错误的


D.
表达式是合法的

| 参考答案
答案
C
2分
2-49
下面哪个Set是根据内容排序的?


A.
LinkedHashSet


B.
HashSet


C.
TreeSet


D.
AbstractSet

| 参考答案
答案
C
2分
2-50
如果你被要求写一段代码读取一个文本文件,那么一般使用哪种Stream?


A.
DataInputStream


B.
ObjectInputStream


C.
FileReader


D.
FileInputStream

| 参考答案
答案
D
2分
2-51
下面关于缺省构造方法的描述中正确的是( )。


A.
当类中没有定义任何构造方法时,Java编译器将为这个类创建缺省构造方法


B.
缺省构造方法可以初始化其他方法中定义的变量


C.
Java编译器会为所有的类创建缺省构造方法。


D.
如果在一个类中定义的构造方法都声明了参数,Java编译器将为这个类创建一个缺省构造方法

| 参考答案
答案
A
2分
2-52
对于类与对象的关系,以下说法错误的是( )。


A.
类是对象的类型


B.
对象由类来创建


C.
类是同类对象的抽象


D.
对象是创建类的模板

| 参考答案
答案
D
2分
2-53
类中某方法定义如下:
double fun(int a,int b){
return a*1.0/b;
}
同一类内其它方法调用该方法的正确方式是( )。


A.
double a = fun(1,2)


B.
double a = fun(1.0,2.0)


C.
int x = fun(1,2)


D.
int x = fun(1.0,2.0)

| 参考答案
答案
A
2分
2-54
下面哪单词是Java语言的关键字( )。


A.
Float


B.
this


C.
string


D.
unsigned

| 参考答案
答案
B
2分
2-55
下述哪条关于构造方法的说法,不符合Java语法的规定( )。


A.
每个类至少有一个构造方法


B.
构造方法必须与类同名


C.
构造方法无返回值,其返回值类型必须写为void


D.
构造方法可以是private的

| 参考答案
答案
C
2分
2-56
关于类中成员变量的作用范围,下述说法中正确的是( )。


A.
只有用public修饰的变量才能在所有方法中使用


B.
用private修饰的成员变量可以在main方法中直接使用


C.
类中所有成员变量在所有成员方法中有效


D.
用static修饰的成员变量只能在用static修饰的方法中使用

| 参考答案
答案
C
2分
2-57
方法体内定义的变量称局部变量,下述关于局部变量的说法中错误的是( )。


A.
局部变量仅在所定义的代码块内(花括号对内)有效


B.
局部变量不能加修饰词修饰


C.
局部变量不能与类中的成员变量同名


D.
局部变量未经赋值不能使用

| 参考答案
答案
C
2分
2-58
为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。


A.
static void method( )


B.
public void method( )


C.
final void method( )


D.
abstract void method( )

| 参考答案
答案
A
2分
2-59
下面( )表达式可以得到x和y中的最大值。


A.
x>y?y:x


B.
x<y?y:x


C.
x>y?(x+y):(x-y)


D.
x==y?y:x

| 参考答案
答案
B
2分
2-60
以下代码的输出结果为( )。

public class Pass{
     static int j = 20;
     public void amethod(int x){
         x = x*2;
         j = j*2;
    }
    public static void main(String args[]){
        int i = 10;
        Pass p = new Pass();
        p.amethod(i);
        System.out.println(i+" and "+j);
  }
}

A.
错误:方法参数与变量不匹配


B.
20 and 40


C.
10 and 40


D.
10 and 20

| 参考答案
答案
C
2分
2-61
定义了一维int型数组a[10]后,下面错误的引用是( ) 。


A.
a[0]=1


B.
a[10]=2


C.
a[0]=5*2


D.
a[1]=a[2]*a[0]

| 参考答案
答案
B
2分
2-62
定义了int型二维数组a[6][7]后,数组元素a[3][4]前的数组元素个数为( )


A.
24


B.
25


C.
18


D.
17

| 参考答案
答案
B
2分
2-63
下面程序的运行结果是( )

main() {
    int x=30;
    int[] numbers=new int[x];
    x=60;
    System.out.println(numbers.length);
}

A.
60


B.
20


C.
30


D.
50

| 参考答案
答案
C
2分
2-64
当访问无效的数组下标时,会发生( )。


A.
中止程序


B.
抛出异常


C.
系统崩溃


D.
直接跳过

| 参考答案
答案
B
2分
2-65
编译和运行下列程序会出现什么样的结果( )。

public class Ref {
       public static void main(String[] args){
             Ref r = new Ref();
             r.amethod(r);
       }
       public void amethod(Ref r){
             int i = 99;
             multi(r);
       System.out.println(i);
       }
       public void multi(Ref r){
             r.i = r.i * 2;
       }
}

A.
编译出错


B.
输出:99


C.
输出:198


D.
运行出错

| 参考答案
答案
A
2分
2-66
下列语句会造成数组new int[10]越界是( )。


A.
a[0] += 9;


B.
a[9]=10;


C.
a[9]


D.
for(int i=0;i<=10;i++) a[i]++;

| 参考答案
答案
D
2分
2-67
在Java中,能实现多重继承效果的方式是( )。


A.
接口


B.
继承


C.
内部类


D.
适配器

| 参考答案
答案
A
2分
2-68
下列选项中,用于定义接口的关键字是( )。


A.
interface


B.
implements


C.
abstract


D.
class

| 参考答案
答案
A
2分
2-69
下列选项中,用于实现接口的关键字是 ( )。


A.
interface


B.
implements


C.
abstract


D.
class

| 参考答案
答案
B
2分
2-70
如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()。


A.
FileInputStream


B.
FileOutputStream


C.
DataOutputStream


D.
FileWriter

| 参考答案
答案
A
2分
2-71
对JVM来说,可执行文件的扩展名正确的是( )。


A.
java


B.
class


C.
dll


D.
pyc

| 参考答案
答案
B
2分
2-72
有一个类A,以下为其构造方法的声明,其中正确的是()。


A.
void A(int x){...}


B.
A(int x){...}


C.
a(int x){...}


D.
void a(int x){...}

| 参考答案
答案
B
3分
2-73
以下程序段的输出结果是

class Test {
     public static void main(String[] args) {
        System.out.println(4 + 5 + "" + 3 + 6);
    }
}

A.
99


B.
4536


C.
936


D.
459

| 参考答案
答案
C
2分
2-74
下列关于数组的声明哪一个是错误的。


A.
int[ ] a={1,2};


B.
int a[ ]={1,2};


C.
int[ ] a=new int[2];


D.
int a[2]={1,2};

| 参考答案
答案
D
2分
2-75
下列关于抽象类的说法哪一个是错误的。


A.
含抽象方法的类为抽象类


B.
抽象类能创建(new)实例


C.
子类有未实现父类的抽象方法时仍为抽象类


D.
子类实现所有抽象方法时不再是抽象类

| 参考答案
答案
B
2分
2-76
以下二维数组的定义正确的是( )


A.
int a[3][2]={{1,2},{1,3},{2,3}}


B.
int a[][]=new int[3][]


C.
int[][] a=new int[][3]


D.
int[][] a=new int[][]

| 参考答案
答案
B
2分
2-77
关于抽象类,下面叙述错误的是() 。


A.
包含抽象方法的类必须是抽象类


B.
抽象方法只需要声明,不需要实现


C.
抽象类可以实例化


D.
抽象类中可以没有抽象方法

| 参考答案
答案
C
1分
2-78
关于接口的声明,错误的是( ) 。


A.
接口中所有的成员属性都是public static final修订的常量


B.
接口中的成员属性在声明时可以省略修订关键字


C.
接口中所有的方法都是public abstract final修订的


D.
接口中所有的方法都是public abstract修订的

| 参考答案
答案
C
1分
2-79
关于接口,下面的叙述错误的是()。


A.
一个接口可以多继承多个接口


B.
一个类可以实现多个接口


C.
抽象类在实现接口时,可以不实现该接口中声明的所有方法


D.
抽象类在实现接口时,必须实现该接口中声明的所有方法

| 参考答案
答案
D
1分
2-80
下面的概念,哪个不是关于对象的多态性的体现。


A.
方法的重载


B.
方法的继承


C.
方法的覆盖


D.
对象的上、下转型

| 参考答案
答案
B
1分
2-81
一个*.java文件中可以包含多少个public类?


A.
最多1个


B.
最少1个


C.
只能是0个


D.
不限制

| 参考答案
答案
A
2分
2-82
在使用super 和this关键字时,以下描述正确的是


A.
在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过


B.
this()和super()可以同时出现在一个构造函数中


C.
super()和this()不一定要放在构造方法内第一行


D.
this()和super()可以在static环境中使用,包括static方法和static语句块

| 参考答案
答案
A
1分
2-83
以下对抽象类的描述正确的是


A.
抽象类没有构造方法


B.
抽象类必须提供抽象方法


C.
有抽象方法的类一定是抽象类


D.
抽象类可以通过new关键字直接实例化

| 参考答案
答案
C
1分
2-84
以下描述错误的有


A.
abstract 可以修饰类、接口、方法


B.
abstract修饰的类主要用于被继承


C.
abstract 可以修饰变量


D.
abstract修饰的类,其子类也可以是abstract修饰的

| 参考答案
答案
C
1分
2-85
以下程序运行结果是

public class Test extends Father{
    private String name="test";
    public static void main(String[] args){
        Test test = new Test();
        System.out.println(test.getName());
    }
}
class Father{
    private String name="father";
    public String getName() {
        return name;
    }
}

A.
father


B.
编译出错


C.
test


D.
运行出错,无输出

| 参考答案
答案
A
2分
2-86
以下描述不正确的有


A.
try块不可以省略


B.
可以使用多重catch块


C.
finally块可以省略


D.
catch块和finally块可以同时省略

| 参考答案
答案
D
1分
2-87
下列选项中关于java中super关键字的说法错误的是


A.
super关键字是在子类对象内部指代其父类对象的引用


B.
super关键字不仅可以指代子类的直接父类,还可以指代父类的父类


C.
子类可以通过super关键字调用父类的方法


D.
子类可以通过super关键字调用父类的属性

| 参考答案
答案
B
1分
2-88
在Java中,以下程序段的输出结果是( )。

        int n=9;
        while(n>6){
            n--;
            System.out.print(n);
        }

A.
987


B.
876


C.
8765


D.
9876

| 参考答案
答案
B
1分
2-89
下面那种类型不属于Java的基本数据类型?


A.
byte


B.
int


C.
boolean


D.
String

| 参考答案
答案
D
2分
2-90
假设有如下程序:

public class Demo {
      public static void main(String args[]) {
            String str = "" ;
            for (int x = 0 ; x < 5 ; x ++) {
                   str += x ;
            }
          System.out.println(str) ;
      }
}
最终的执行结果是什么?


A.
01234


B.
10.0


C.
14.0


D.
25.0

| 参考答案
答案
A
2分
2-91
对于构造方法,下列叙述不正确的是( )。


A.
构造方法是类的一种特殊方法,它的方法名必须与类名相同


B.
构造方法的返回类型只能是void型,即在方法名前加void


C.
构造方法的主要作用是完成对类的对象的初始化工作


D.
一般在创建新对象时,系统会自动调用构造方法

| 参考答案
答案
B
2分
2-92
在JAVA中,给定代码片段如下所示,则编译运行后,输出结果是()。

for (int i = 0; i < 10; i++) {
    if (i == 10 - i) {
        break;
    }

    if (i % 3 != 0) {
        continue;
    }
    System.out.print(i + " ");
}

A.
0


B.
0 3


C.
0 3 6


D.
0 3 6 9

| 参考答案
答案
B
2分
2-93
下面代码运行结果显示( )。

double temperature = 50;
if (temperature >= 100)
   System.out.println("too hot");
else if (temperature <= 40)
   System.out.println("too cold");
else
   System.out.println("just right");

A.
too hot


B.
too cold


C.
just right


D.
too hot too cold just right

| 参考答案
答案
C
2分
2-94
下面代码将输出( )行 "Welcome to Java"?。

int count = 0;
do {
     System.out.println("Welcome to Java");
} while (count++ < 10);

A.
10


B.
11


C.
9


D.
1

| 参考答案
答案
B
2分
2-95
循环执行后,count的值是( )

int count = 0;
do {
     System.out.println("Welcome to Java");
} while (count++ < 9);
System.out.println(count);

A.
11


B.
10


C.
9


D.
8

| 参考答案
答案
B
2分
2-96
声明一个类是需要( )关键字。


A.
public


B.
private


C.
class


D.
以上都是

| 参考答案
答案
C
2分
2-97
下面关于try块的说法正确的是?


A.
try块后至少应有一个catch 块


B.
try块后必须有finally块


C.
可能抛出异常的语句应放在try块中


D.
对抛出的异常的处理应放在try块中

| 参考答案
答案
C
2分
2-98
设类B是类C的父类,下列声明对象x1的语句中不正确的是?


A.
B x1 = new B( );


B.
B x1=new C( );


C.
C x1 = new C( );


D.
C x1=new B( );

| 参考答案
答案
D
2分
2-99
下列哪个叙述是正确的?


A.
一个类最多可以实现两个接口


B.
允许接口中只有一个抽象方法


C.
如果一个抽象类实现某个接口,那么它必须要重写接口中的全部方法


D.
如果一个非抽象类实现某个接口,那么它可以只重写接口中的部分方法

| 参考答案
答案
B
2分
2-100
下列语句序列执行后,k 的值是( )

int x=6, y=10, k=5;
switch( x%y ){ 
        case 0: k=x*y;
      case 6: k=x/y;
      case 12: k=x-y;
      default: k=x*y-x;
}

A.
60


B.
5


C.
0


D.
54

| 参考答案
答案
D
2分
程序填空题
110 分
5-1
题目要求:

1.使用this调用已有的有参构造方法,将width与length分别设置为5和6。

2.在Rectangle类中覆盖toString方法。按照width=实际宽度值,length=实际长度值的格式返回。

public Rectangle(){
     
 this(5,6); 
(1分)    
}
public Rectangle(int width, int length) {
    this.width = width;
    this.length = length;
}
public 
String toString() 
(1分){
     
return  "width="+width+",length="+length;  
(1分)
}    

| 参考答案
填空#1
this(5,6);
填空#2
String toString()
填空#3
return "width="+width+",length="+length;
3分
5-2
该程序功能是遍历数组,输出一维数组的所有元素,


public class Main {
    public static void main(String[] args) {
        int[] a={10,3,1,3,53,23,232,90,21,33};
        for(
int
(2分)  
t
(2分):
a
(2分))
        {
            System.out.print(
t
(2分)+" ");
        }
    }
}
###输出样例:
10 3 1 3 53 23 232 90 21 33

| 参考答案
填空#1
int
填空#2
t
填空#3
a
填空#4
t
8分
5-3
阅读程序,补全以下程序:

public class Main {
    public static void main(String[] args) {
        Test test = new Test(true);
    }
}

class Test {
    public Test(){
        System.out.println("Constructor one invoked!");
    }
    public Test(int x){
     
this();
(2分)
     System.out.println("Constructor two invoked!");
    }
    public Test(boolean b){
       
this(0);
(2分)
        System.out.println("Constructor three invoked!");
    }
}
使得程序输出结果,如下所示。

Constructor one invoked!
Constructor two invoked!
Constructor three invoked!
| 参考答案
填空#1
this();
填空#2
this(0);
4分
5-4
现有一个Employee类,继承了Person类,其中Employee类有一个年龄age属性,当年龄为负数时会发生异常。根据运行结果,补充以下程序空格处代码:

class Person {
    public Person() {
        
System.out.println("创建一个Person");
(2分)
    }
}
class Employee  
 extends 
(2分)  Person{
   
 int age;
(2分)
    public Employee(int age) {
        
System.out.println("创建了一个Employee");
(2分)
        setAge(age);
                
System.out.println("年龄为:"+age);
(2分)
    }
    public void setAge(int age)   
throws 
(2分)  IllegalArgumentException  {
        if (age >= 0)
            this.age =  age;
        else
            throw new IllegalArgumentException(
"年龄不能为负数"
(2分));
    }
}

public class Main{
    public static void main(String[] args){
        try {
            Employee emp1 = new Employee(10);
            Employee emp2 = new Employee(-1);
        } 
catch (IllegalArgumentException ex)
(2分)    {
            System.out.println(ex.getMessage());
        }
        finally {
            
System.out.println("继续.....");
(2分)
        }
       
 System.out.println("任务完成!");
(2分)
    }
}
以上程序的运行结果为:

创建一个Person
创建了一个Employee
年龄为:10
创建一个Person
创建了一个Employee
年龄不能为负数
继续.....
任务完成!

| 参考答案
填空#1
System.out.println("创建一个Person");
填空#2
extends
填空#3
int age;
填空#4
System.out.println("创建了一个Employee");
填空#5
System.out.println("年龄为:"+age);
填空#6
throws
填空#7
"年龄不能为负数"
填空#8
catch (IllegalArgumentException ex)
填空#9
System.out.println("继续.....");
填空#10
System.out.println("任务完成!");
20分
5-5

 class Base {
    int x, y, z, w;

    public Base(int a, int b) {
        x = a;
        y = b;
    }

    public Base(int a, int b, int c, int d) {
        
this(a, b); 
(1分)// 换一种办法实现赋值 x=a, y=b
        z = c;
        w = d;
    }
}

public class Main {

    public static void main(String[] args) {
        Base base = 
new Base
(1分)(1, 1, 1, 1);
        System.out.println(base.x + " " + base.y + " " + base.z + " " + base.w);
    }
}
| 参考答案
填空#1
this(a, b);
填空#2
new Base
2分
5-6
有如下父类和子类的定义,请根据要求填写代码。

class Father {
 int a;
 public Father(int a) {
  this.a=a;
 }
 public void print() {
  System.out.println(a);
 }
}

class Child extends Father {
 int a;
 public Child(int a) {
     
super(a); 
(1分)                // 将形参a的数值赋给父类成员变量a 
     
this.a=super.a*10; 
(1分)       // 将父类成员变量a的值*10赋给本类的成员变量a
 }
 public void print() {
  System.out.println(
super.a
(1分));    // 输出父类成员变量a的值
  System.out.println(  
a
(1分)   );      // 输出子类成员变量a的值
 }
}
public class Main {
    public static void main(String[] args) {
        Child child=new Child(10);
        child.print();
    }
}
| 参考答案
填空#1
super(a);
填空#2
this.a=super.a*10;
填空#3
super.a
填空#4
a
4分
5-7
下面程序抛出了一个“异常”并捕捉它。请在横线处填入适当内容完成程序。

class Main {
    static void procedure() throws IllegalAccessException {
        System.out.println("inside procedure");
        
throw
(1分) 
new
(1分) IllegalAccessException("demo");
    }

    public static void main(String args[]) {
        try {
            procedure();
        } catch (
IllegalAccessException e
(1分)) {
            System.out.println("捕获:" + e);
        }
    }
}
| 参考答案
填空#1
throw
填空#2
new
填空#3
IllegalAccessException e
3分
5-8
本题目要求使用迭代器遍历学生列表。

import java.util.*;
/* 这里是 Student 类代码,无需关心
*/
public class Main {
    public static void main(String args[]) {
       List<Student> list = new ArrayList<Student>();
       list.add(new Student("2016001","rose",18));
       list.add(new Student("2016002","hunifu",19));
       list.add(new Student("2016003","britsh",20));     
       Iterator<Student> it = 
list.iterator()
(2分); //创建迭代器
       while ( 
it.hasNext()
(2分) ) { //判断遍历是否结束
           Student stu=
 (Student) it.next()
(2分);//取列表元素
           System.out.println(stu);
       }
    }
}
| 参考答案
填空#1
list.iterator()
填空#2
it.hasNext()
填空#3
(Student) it.next()
6分
5-9
定义一个Person类,该类包括age,name两个数据成员和eat(),work()两个成员方法,并实现对两个数据成员的Getter方法。然后通过测试程序,实现相应对象的操作。程序输出结果如下:

屏幕截图 2021-12-22 085223.jpg

请按提示完善相应的程序。

class Person
{
    public int age;             //声明公共字段age  
    
private String name
(2分);        //声明私有字段name     
    public int getAge() {//实现age成员的Getter方法
        return age;
    }
    public String getName() {//实现name成员的Getter方法
        
return name
(2分);
    }
    public void eat()           //定义无参数的eat方法  
       {  
        System.out.println(
"会生活"
(2分));  
       }  
    public void work(String s)   //定义带参数的work方法  
       {  
        System.out.println("努力创造"+s);  
       }  
    public Person(int age, String name) //定义一个带参数构造函数  
       {  
        this.age = age;
        this.name = name;  
        }
}  
public class Main  
{  
    public static void main(String[] args)  
    {  
    Person p = 
new Person
(2分)(18, "张三");//调用类的有参构造函数  
    System.out.println("姓名:"+p.getName()+"\n年龄:" + p.getAge());  
    
p.eat()
(2分);           //调用对象的eat方法  
    p.work("美好生活");//
    }  
}  
| 参考答案
填空#1
private String name
填空#2
return name
填空#3
"会生活"
填空#4
new Person
填空#5
p.eat()
10分
5-10
设计一个Circle类,该类有属性radius,表示圆的半径,其默认值为1;getArea()返回该圆的面积。

创建一个名为ComparableCircle的类,它继承自Circle类,并实现Comparable接口,在类中实现compareTo方法,使其根据面积比较两个圆。

编写测试程序求出两个ComparableCircle实例对象的较大者。程序输出如下信息:

Cirlce: radius = 7.0
Area: 153.93804002589985
Cirlce: radius = 5.0
Area: 78.53981633974483
c1较大


class Circle {
    private double radius;

    public 
Circle()
(2分) {
        radius = 1;
    }

    public Circle(double radius) {
        
this.radius
(2分) = radius;
    }

    public double getRadius() {
        return radius;
    }

    public void setRadius(double radius) {
        this.radius = radius;
    }

    public double getArea() {
       
 return radius * radius * Math.PI;
(2分)
    }
    public String toString() {
        
return "Cirlce: radius = " + radius;
(2分)
    }
}

class ComparableCircle 
extends
(2分) Circle 
implements
(2分) Comparable<ComparableCircle> {

    public ComparableCircle() {
    }

    public ComparableCircle(double radius) {
        
super(radius);
(2分)
    }

    @Override // Implement the compareTo method defined in Comparable
    public int compareTo(
ComparableCircle o
(2分)) {
        if (getArea() > o.getArea())
            return 1;
        else if (getArea() < o.getArea())
            return -1;
        else
            return 0;
    }

    @Override
    public String toString() {
        return 
super.toString()
(2分) + "\nArea: " + getArea();
    }
}
public class Main {
    public static void main(String[] args) {
        ComparableCircle c1 = new ComparableCircle(7);
        ComparableCircle c2 = new ComparableCircle(5);
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(
(c1.compareTo(c2)>=0)
(2分)?"c1较大":"c2较大");

    }
}


| 参考答案
填空#1
Circle()
填空#2
this.radius
填空#3
return radius * radius * Math.PI;
填空#4
return "Cirlce: radius = " + radius;
填空#5
extends
填空#6
implements
填空#7
super(radius);
填空#8
ComparableCircle o
填空#9
super.toString()
填空#10
(c1.compareTo(c2)>=0)
20分
5-11
设计并实现Box类,它包含盒子的高度、宽带和深度的实例数据:还包含布尔变量full这个实例数据,变量full表示盒子是否满了。所有数据都定义为私有。定义Box构造函数接收并初始化盒子的高度、宽带和深度。每次新创建的Box都为空,构造函数将full初始化为假。该类所有实例都有getter和setter方法;该类还包含了一个计算盒子体积的方法。
该类包含一个toString方法,用来返回一行关于盒子的描述。
例如,输入的长、宽、高分别为4,如果盒子为空,则输出:
Box is empty, The Volumn is 64
若将盒子的宽度修改为5,盒子设置为满,则输出:
Box is full, The Volumn is 80
创建一个测试类BoxTest,其main方法输入盒子的长、宽、高,实例化一个Box对象,并输出盒子的描述。
根据以下的测试类,在空格出填入Box类的设计程序。

import java.util.Scanner;
(2分)

class 
Box
(2分) {
    private boolean 
full
(2分);
    private int width;
    private int height;
    private int lenght;

    public Box(
int width, int height, int lenght
(2分)) {
        full = false;
        this.width = width;
        this.height = height;
        this.lenght = lenght;
    }

    public 
boolean
(2分) isFull() {
        return full;
    }

    public void setFull(boolean full) {
        this.full = full;
    }

    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public int getHeight() {
        return height;
    }

    public void setHeight(int h) {
        this.height = height;
    }

    public int getLenght() {
        return lenght;
    }

    public void setLenght(int lenght) {
            this.lenght = lenght;
    }

    public int getVolumn() {
       
 return height * lenght * width;
(2分)
    }

    @Override
    public String 
toString()
(2分) {
        return "Box is " + (full ? "full" : "empty") + ", The Volumn is " + getVolumn();
    }
}
public class Main {
    public 
static void
(2分) main(String[] args) {
        Scanner input = new Scanner(System.in);
        int w = input.nextInt();
        int h = input.nextInt();
        int l = input.nextInt();
        Box box1 = 
new Box(w,h,l);
(2分)
        System.out.println(box1.toString());
        box1.setWidth(5);
        box1.setFull(
true
(2分));
        System.out.println(box1.toString());

    }
}


| 参考答案
填空#1
import java.util.Scanner;
填空#2
Box
填空#3
full
填空#4
int width, int height, int lenght
填空#5
boolean
填空#6
return height * lenght * width;
填空#7
toString()
填空#8
static void
填空#9
new Box(w,h,l);
填空#10
true
20分
5-12
有如下父类和子类的定义,请根据要求填写代码。


class Animal{
    String name = "牧羊犬";     //名字
    void shout(){
        System.out.println("动物发出叫声");
    }
}

class Dog 
extends Animal
(2分){   //Dog是Animal的子类
    public void shout(){
        
super.shout();
(2分)   //调用父类Animal的shout()方法
        System.out.println("汪汪汪……");
    }
    public void printName() {   //输出名字
        System.out.println("名字:" + 
super.name
(2分));  //访问父类Animal的name属性
    }
}

public class Main {
    public static void main(String[] args) {
        Dog dog = 
new Dog()
(2分);  //创建Dog类的实例
        
dog.shout();
(2分)  //调用Dog类的shout()方法
        dog.printName();  //调用Dog类的printName()方法
    }
}

| 参考答案
填空#1
extends Animal
填空#2
super.shout();
填空#3
super.name
填空#4
new Dog()
填空#5
dog.shout();

编程题:
声明一个图书类,其数据成员为书名、编号(利用静态变量实现自动编号)、书价,并拥有静态数据成员册数,记录图书的总册数;在构造方法中,利用静态变量为对象的编号赋值,在主方法中定义对象数组,并求出总册数。
public class ptatest {
    public static void main(String[] args) {
        Book[] book = new Book[3];
        
        book[0] = new Book("Java程序设计",34.5);
        book[1] = new Book("数据结构",44.8);
        book[2] = new Book("C++程序设计",35.0);
       
        for(int i=0;i<3;i++){
            book[i].print();
        }
        System.out.print("图书总册数为:"+Book.num);
    }
}
 
class Book{
    String name;
    int id;
    double price;
    static int num=0;
 
    public  Book(String name,double price){
        num++;
        this.name=name;
        this.price=price;
        this.id=num;
    }
 
    public void print(){
        System.out.println("书名:"+this.name+", 书号:"+this.id+", 书价:"+this.price);
    }
 
}

7-3 jmu-Java-03面向对象基础-03-形状
import java.util.Arrays;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int area = 0;
        int Perimeter = 0;
        Rectangle[] r = new Rectangle[2];
        for (int i = 0; i < 2; i++) {
            int length = sc.nextInt();
            int width = sc.nextInt();
            r[i] = new Rectangle(length,width);
            //计算面积
            area+=r[i].getArea();
            //计算周长
            Perimeter+=r[i].getPerimeter();
        }
        Circle[] c = new Circle[2];
        for (int i = 0; i < 2; i++) {
            int radius = sc.nextInt();
            c[i] = new Circle(radius);
            //计算面积
            area+=c[i].getArea();
            //计算周长
            Perimeter+=c[i].getPerimeter();

    }
    System.out.println(Perimeter);
    System.out.println(area);
    System.out.println(Arrays.deepToString(r));
    System.out.println(Arrays.deepToString(c));

}

}

class Rectangle{
    private int width;
    private int length;

public Rectangle() {
}

public Rectangle(int width, int length) {
    this.width = width;
    this.length = length;
}

public int getWidth() {
    return width;
}

public void setWidth(int width) {
    this.width = width;
}

public int getLength() {
    return length;
}

public void setLength(int length) {
    this.length = length;
}

//长方形的求周长方法
public int getPerimeter(){
    return (this.length+this.width)*2;
}
//长方形的求面积方法
public int getArea(){
    return this.length*this.width;
}

public String toString() {
    return "Rectangle [width=" + width + ", length=" + length + "]";
}

}
class Circle{
    private int radius;

public Circle() {
}

public Circle(int radius) {
    this.radius = radius;
}

public int getRadius() {
    return radius;
}

public void setRadius(int radius) {
    this.radius = radius;
}
//圆形的求面积方法
public int getArea(){
    return (int)(this.radius*this.radius*Math.PI);
}

//圆形的求周长方法
public int getPerimeter(){
    return (int)(this.radius*2*Math.PI);
}

public String toString() {
    return "Circle [radius=" + radius + "]";
}

}


定义一个有关人的Person类,内含属性:
String name、int age、boolean gender、int id,所有的变量必须为私有(private)。

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int nextInt = sc.nextInt();
        Person[] s = new Person[nextInt];
        for (int i = 0; i < nextInt; i++) {
            String a = sc.next();
            int b = sc.nextInt();
            boolean c=sc.nextBoolean();
            s[i] = new Person(a,b,c);
        }
        for (int i = nextInt-1; i >=0; i--) {
            System.out.println(s[i].toString());
        }
        Person person = new Person();
        System.out.println(person.toString());
    }
}
class Person{
    private String name;
    private int age;
    private boolean gender;
    private int id;

    @Override
    public String toString() {
        return "Person [" + "name=" + name +
                ", age=" + age +
                ", gender=" + gender +
                ", id=" + id +
                ']';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public boolean isGender() {
        return gender;
    }

    public void setGender(boolean gender) {
        this.gender = gender;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public Person() {
        System.out.println("This is constructor");
        System.out.println(name+","+age+","+gender+","+id);
    }

    public Person(String name, int age, boolean gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
}


7-4 jmu-Java-03面向对象基础-04-形状-继承
import java.awt.*;
import java.util.Arrays;
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n= sc.nextInt();
        sc.nextLine();
        Shape[] shapes=new Shape[n];
        for (int i = 0; i < n; i++) {
            String s=sc.nextLine();
            if (s.equals("rect")){
                shapes[i]=new Rectangle(sc.nextInt(), sc.nextInt());
                sc.nextLine();
            }else if (s.equals("cir")){
                shapes[i]=new Circle(sc.nextInt());
                sc.nextLine();
            }
        }
        System.out.println(sumAllPerimeter(shapes));
        System.out.println(sumAllArea(shapes));
        System.out.println(Arrays.toString(shapes));
        for (Shape s: shapes) {
            System.out.println(s.getClass()+","+s.getClass().getSuperclass());
        }
    }

    public static double sumAllArea(Shape[] ss){
        double ret=0;
        for (Shape s : ss) {
            ret += s.getArea();
        }
    return ret;
    }

    public static double sumAllPerimeter(Shape[] ss){
    double ret=0;
        for (Shape s:ss) {
            ret+=s.getPerimeter();
        }
    return ret;
    }
}

 abstract  class Shape{
    static double PI=3.14;
    public abstract double getPerimeter();
    public abstract double getArea();
}

  class Rectangle  extends  Shape{
    private int width;
    private int length;

    public Rectangle(int width, int length) {
        this.width = width;
        this.length = length;
    }

    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public int getLength() {
        return length;
    }

    public void setLength(int length) {
        this.length = length;
    }

    public double getPerimeter(){
        return 2.0*(this.length+this.width);
    }

    public double getArea(){
        return this.length*this.width;
    }

    @Override
    public String toString() {
        return "Rectangle [" +
                "width=" + width +
                ", length=" + length +
                ']';
    }
}

  class Circle extends Shape{
    private int radius;

    public Circle(int radius) {
        this.radius = radius;
    }

    public int getRadius() {
        return radius;
    }

    public void setRadius(int radius) {
        this.radius = radius;
    }
    public double getPerimeter(){
        return 2*PI*this.radius;
    }

    public double getArea(){
        return PI*Math.pow(this.radius,2);
    }

    @Override
    public String toString() {
        return "Circle [" +
                "radius=" + radius +
                ']';
    }
}


7-5 jmu-Java-03面向对象基础-05-覆盖
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Objects;
import java.util.Scanner;
public class Main{
    public static void main(String[] args) {
       Scanner sc=new Scanner(System.in);
       int n1= sc.nextInt();
       boolean f=true;
       sc.nextLine();
       ArrayList<PersonOverride> ap=new ArrayList<PersonOverride>();
        for (int i=0;i<n1;i++){
            ap.add(new PersonOverride());
        }
        int n2= sc.nextInt();
        sc.nextLine();
        for (int i=0;i<n2;i++){
            f=true;
            PersonOverride a=new PersonOverride(sc.next(),sc.nextInt(), sc.nextBoolean());
            sc.nextLine();
            for (PersonOverride aa:ap) {
                if (aa.equals(a)){
                    f=false;
                    break;
                }
            }
            if (f)ap.add(a);
        }

        for(PersonOverride a:ap){
            System.out.println(a.toString().replace("[","").replace("]",""));
        }
        System.out.println(ap.size()-n1);
        System.out.println(Arrays.toString(PersonOverride.class.getConstructors()));
    }

}

class PersonOverride{
    private String name;
    private  int age;
    private boolean gender;

    public PersonOverride() {
        this("default",1,true);
    }

    public PersonOverride(String name, int age, boolean gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }


    @Override
    public String toString() {
        return name + "-" + age + "-" + gender;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        PersonOverride that = (PersonOverride) o;
        return age == that.age &&
                gender == that.gender &&
                name.equals(that.name);
    }

    @Override
    public int hashCode() {
        return Objects.hash(name, age, gender);
    }
}

7-6 jmu-Java-03面向对象-06-继承覆盖综合练习-Person、Student、Employee、Company
import java.text.DecimalFormat;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        //创建集合,存储元素
        List<Person> personList = new ArrayList<>();
        while(true){
            String choice = sc.next();
            if("s".equals(choice)){
                String name = sc.next();
                int age = sc.nextInt();
                boolean gender = "true".equals(sc.next());
                String stuNo = sc.next();
                String clazz = sc.next();
                personList.add(new Student(name,age,gender,stuNo,clazz));
            }else if("e".equals(choice)){
                String name = sc.next();
                int age = sc.nextInt();
                boolean gender = "true".equals(sc.next());
                double salary = sc.nextDouble();
                Company company = new Company(sc.next());

            personList.add(new Employee(name,age,gender,company,salary));
        }else{
            break;
        }
    }
    /*
    利用Collections工具类里的sort方法,这里我用的是匿名内部类的方式书写的,可以转成lambda表达
    式,不过转完之后会让人难以理解,所以我就不转了
    */
    Collections.sort(personList, new Comparator<Person>() {
        @Override
        public int compare(Person o1, Person o2) {
            int i = o1.name.compareTo(o2.name);
            i = i==0 ? o1.age-o2.age : i;
            return i;
        }
    });
    //增强for对集合进行遍历打印
    for (Person person : personList) {
        System.out.println(person.toString());
    }
    String choice = sc.next();
    if("exit".equals(choice)){
        //手动安全结束虚拟机工作
        System.exit(0);
    }
    
    //创建两个集合
    ArrayList<Student> stuList = new ArrayList<>();
    ArrayList<Employee> empList = new ArrayList<>();

    for (Person person : personList) {
        //用instanceof判断能否转成Student类
        if(person instanceof Student){
            if(ExistsStu(stuList,person)){
                stuList.add((Student)person);
            }
        }else{
            if(ExistsEmp(empList,person)){
                empList.add((Employee)person);
            }
        }
    }
    System.out.println("stuList");
    for (Student student : stuList) {
        System.out.println(student.toString());
    }
    System.out.println("empList");
    for (Employee employee : empList) {
        System.out.println(employee.toString());
    }

}
//判断empList是否存在该元素
private static boolean ExistsEmp(ArrayList<Employee> empList, Person person) {
    for (Employee employee : empList) {
        if(employee.equals(person)){
            return false;
        }
    }
    return true;
}

//判断stuList是否存在该元素
private static boolean ExistsStu(ArrayList<Student> stuList, Person person) {
    for (Student student : stuList) {
        if(student.equals(person)){
            return false;
        }
    }
    return true;
}

}
//抽象类Person
abstract class Person{
    String name;
    int age;
    boolean gender;

public Person(String name, int age, boolean gender) {
    this.name = name;
    this.age = age;
    this.gender = gender;
}

public Person() {
}

@Override
public String toString() {
    return name+"-"+age+"-"+gender;
}

@Override
public boolean equals(Object obj) {
    Person p1 = (Person)obj;
    if(p1==null){
        return false;
    }
    if(p1.name==null){
        return false;
    }
    if(!this.name.equals(p1.name)){
        return false;
    }
    if(!(this.age==p1.age)){
        return false;
    }
    return this.gender == p1.gender;
}

}

//学生类
class Student extends Person{
    String stuNo;
    String clazz;

public Student(String name, int age, boolean gender, String stuNo, String clazz) {
    super(name, age, gender);
    this.stuNo = stuNo;
    this.clazz = clazz;
}

@Override
public String toString() {
    return "Student:"+super.toString()+"-"+stuNo+"-"+clazz;
}

@Override
public boolean equals(Object obj) {
    if(!super.equals(obj)){
        return false;
    }
    Student s1 = (Student)obj;
    if(s1==null){
        return false;
    }
    if(s1.stuNo==null){
        return false;
    }
    if(!this.stuNo.equals(s1.stuNo)){
        return false;
    }
    if(s1.clazz==null){
        return false;
    }
    return this.clazz.equals(s1.clazz);
}

}
class Company{
    String name;

public Company(String name) {
    this.name = name;
}

@Override
public String toString() {
    return name;
}

@Override
public boolean equals(Object obj) {
    Company c1 = (Company)obj;
    if(c1==null){
        return false;
    }
    if(c1.name==null){
        return false;
    }
    return this.name.equals(c1.name);
}

}
//员工类
class Employee extends Person{
    Company company;
    double salary;

public Employee(String name, int age, boolean gender, Company company, double salary) {
    super(name, age, gender);
    this.company = company;
    this.salary = salary;
}

@Override
public String toString() {
    return "Employee:"+super.toString()+"-"+company.toString()+"-"+salary;
}

@Override
public boolean equals(Object obj) {
    if(!super.equals(obj)){
        return false;
    }
    Employee e1 = (Employee)obj;
    if(e1.company==null){
        return false;
    }
    if(!this.company.name.equals(e1.company.name)){
        return false;
    }
    
    //这里不知道什么原因,小数对比总会返回false,所以我就用字符串的方式进行判断
    DecimalFormat df = new DecimalFormat("#.#");
    String s1 = df.format(this.salary);
    String s2 = df.format(e1.salary);
    
    return s1.equals(s2);
}

}


7-7 jmu-Java-06异常-02-使用异常机制处理异常输入
import java.lang.reflect.Array;
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s=sc.nextLine();
        int a[]=new int[Integer.valueOf(s)];
        for (int i=0;i<a.length;i++){
            String str=sc.nextLine();
            if (Character.isDigit(str.charAt(0))){
                a[i]=Integer.valueOf(str);
            }else {
                System.out.println("java.lang.NumberFormatException: For input string: \""+str+"\"");
                i--;
            }
        }
        System.out.println(Arrays.toString(a));
    }
}


7-8 学生类-构造函数
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String s = sc.nextLine();
        String[] str=s.split(" ");
        Student student=new Student(str[0],str[2],Integer.valueOf(str[1]));
        System.out.println(student);
    }
}
class Student  {
    private String name;
    private String sex;
    private int age;

    public void setName(String name){
        this.name=name;
    }

    public void setsex(String sex){
        this.sex=sex;
    }

    public void setage(int age){
        this.age=age;
    }

    public String getName() {
        return name;
    }

    public String getSex() {
        return sex;
    }

    public int getAge() {
        return age;
    }

    @Override
    public String toString() {
        String str="Student [name='"+name+"', sex='"+sex+"', age="+age+"]";
        return str;
    }


    public Student(){

    }

    public Student(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }
}


7-16 集体评分
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int[] grade = new int[5];
        for(int i=0; i<grade.length; i++){
            grade[i] = in.nextInt();
        }
 
        RR rr = new RT(grade);
        double dd = rr.mark();
        System.out.printf("%.2f",dd);
    }
}
abstract class RR{
    int[] grade;
    public RR(int[] grade){
        this.grade = grade;
    }
    public abstract double mark();
}
class RT extends RR{
    public RT(int[] grade) {
        super(grade);
    }
 
    @Override
    public double mark() {
        double sum=0;
        for (int i=1;i<grade.length-1;i++){
            sum+=grade[i];
        }
        return sum/3;
    }
}


作品评分
全国中小学生Scratch作品大赛拉开了序幕。每个参赛选手可以通过网络直接上传作品。本次比赛人人可做评委。每个网络评委可以通过网络对每一件作品进行打分。评分系统也是请程序高手设计的,能自动去掉一个最高分和一个最低分,求出平均分。
package test;
 
import java.util.Arrays;
import java.util.Scanner;
//import java.util.*;//全
 
public class zuopinpingfen {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        float[] score = new float[n];
        float sum = 0;
        for(int i = 0;i < n;i++) {
            score[i] = sc.nextFloat();
        }
        Arrays.sort(score);//进行排序(升序)
        for(int i = 1;i < score.length-1;i++)//去掉了最大值和最小值之后进行的求和
            sum += score[i];
        System.out.printf("%.2f",sum/(score.length-2));
        sc.close();//防 'sc' leak
    }
}


班级里要搞智力竞赛啦!同学们都踊跃参加。进入最后决赛的是10个同学,随着一道道题目的出示,有时是1号选手得分,有时是5号选手得分,每次答对者得10分,最后结果如何呢?
#include <stdio.h>
#define MAXN 12
 
int main()
{
    int score[MAXN], i, n, m;
    for (i = 1; i <= 10; i++)
    {
        scanf("%d", &score[i]);
    }
    scanf("%d", &n);
    for (i = 1; i <= n; i++)
    {
        scanf("%d", &m);
        score[m] += 10;
        //第m个自增
    }
    for (i = 1; i <= 10; i++)
    {
        printf("%d", score[i]);
        if (i != 10)
            printf(" ");
    }
    return 0;
}


利用接口做参数,写个计算器,能完成加减乘除运算。
定义一个接口ICompute含有一个方法int computer(int n, int m)。
定义Add类实现接口ICompute,实现computer方法,求m,n之和
定义Sub类实现接口ICompute,实现computer方法,求n-m之差
定义Main类,在里面输入两个整数a, b,利用Add类和Sub类的computer方法,求第一个数a和第二个数b之和,输出和,第一个数a和第二个数b之差,输出差。
import java.util.Scanner;

public class Main{

    public static void main(String[] args) {
        Scanner in=new Scanner(System.in);
        int n=in.nextInt();
        int m=in.nextInt();
        Add l=new Add();
        Sub j=new Sub();
        System.out.println(l.computer(n, m));
        System.out.println(j.computer(n, m));
        
        in.close();

    }

}
interface IComputer{
    abstract public int computer(int n ,int m);
}
class Add implements IComputer
{
    int m,n;
    public int computer(int n ,int m) {
        return n+m;
    }
}
class Sub implements IComputer
{
    int m,n;
    public int computer(int n ,int m) {
        return n-m;
    }
}

假定要为某个公司编写雇员工资支付程序,这个公司有各种类型的雇员(Employee),不同类型的雇员按不同的方式支付工资(都是整数):
(1)经理(Manager)——每月获得一份固定的工资
(2)销售人员(Salesman)——在基本工资的基础上每月还有销售提成
(3)一般工人(Worker)——则按他每月工作的天数计算工资
在Employee中提供函数getSalary()计算每个雇员一个月的工资,并在子类中重写。

在main函数中构造Employee的三个变量,分别指向Manager、Salesman、Worker的对象,调用getSalary函数,输出三个对象的工资
public abstract class Employee{
    public abstract double ComputerSalary();
    public double basis;
}
public class Manager extends Employee{
    public Manager(double m_basis){
        basis=m_basis;
    }
    public double ComputerSalary(){
        return basis;
    }
    public void show(){
        System.out.println("工资:"+ComputerSalary());    
    }
}
public class worker extends Employee{
    public int days;
    worker(int days,double m_basis){
        this.days=days;
        basis=m_basis;
    }
    public double ComputerSalary(){
        return days*basis;
    }
    public void show(){
        System.out.println("工资:"+ComputerSalary());    
    }
}

import java.util.Scanner;
public class shows{
    public static void main(String args[]){
        double basis;
        int days;
        double commission;
        System.out.print("请输入基本工资:");
        Scanner reader=new Scanner(System.in);
        basis=reader.nextDouble();
        System.out.print("请输入工作天数:");
        days=reader.nextInt();
        System.out.print("请输入销售提成:");
        commission=reader.nextDouble();
        Manager a=new Manager(basis);
        a.show();
        Saleman b=new Saleman(basis,commission);
        b.show();
        worker c=new worker(days,basis);
        c.show(); 
    }
}


定义一个商品类。创建对象并按指定格式输出它。
商品类要求:

(1)成员变量:商品编号(String) 、商品名称(String)、商品单价(double)
(2)成员变量封装,定义为私有属性,并为每个成员变量定义getXXXX,setXXXX方法
(3)定义构造方法,要求带三个参数,参数值用于给成员变量赋值。
(4)重写toString()方法,将对象转换为字符串,格式:商品编号,商品名称,商品单价
在这里插入代码片
import java.util.Scanner;
class Product{
   private String number;
   private String name;
    private  double price;
    Product(String number,String name,double price){
       this.number=number;
        this.name=name;
        this.price=price;
    }
    public String toString(){
        return number+","+name+","+price;
        
    }
    
   public String getNumber(){
        return number;
    }
   public void setNumber(String number){
        this.number=number;
    }
   public String getName(){
         return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public double getPrice(){
         return price;
    }
   public void setPrice(double price){
        this.price=price;
    }
    
}

 public class Main{
    public static void main(String []args){
Scanner sc=new Scanner(System.in);
String number=sc.next();
String name=sc.next();
double price=sc.nextDouble();
Product p1=new Product(number,name,price);
   System.out.println(p1.toString());
    
    
    
    }
 }

编写一个完整的Java Application 程序。包含类Circle、Cylinder、Main,具体要求如下。
import java.util.Scanner;
class Circle{
    private double radius;
    Circle(double radius){
        this.radius=radius;
    }
    Circle(){
        double radius=0;
    }
    void setRadius(double r){
        double radius=r;
    }
    double getRadius(){
        return radius;
    }
    double getArea(){
        return Math.PI*radius*radius;
    }
    double getPerimeter(){
        return 2*Math.PI*radius;
    }
    public String toString(){
        return "Circle(r:"+radius+")";
    }
}
class Cylinder{
    private double height;
    private Circle circle;
    Cylinder(double height,Circle circle){
        this.height=height;
        this.circle=circle;
    }
    Cylinder(){
        double height=0;
        circle.setRadius(0);
    }
    void setHeight(double height){
        this.height=height;
    }
    double getHeight(){
        return height;
    }
    void setCircle(Circle circle){
        this.circle=circle;
    }
    Circle getCircle(){
        return circle;
    }
    double getArea(){
        return 2*Math.PI*circle.getRadius()*circle.getRadius()+circle.getPerimeter()*height;
    }
    double getVolume(){
        return circle.getArea()*height;
    }
    public String toString(){
        return "Cylinder(h:"+height+","+circle.toString()+")";
    }
}
public class Main{
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        for(int i = 0; i < n; i++) {
            String str = input.next();
            if(str.equals("Circle")) {
                Circle c = new Circle(input.nextDouble());
                System.out.println("The area of " + c.toString() + " is " + String.format("%.2f",c.getArea()));
                System.out.println("The perimeterof " + c.toString() + " is "+ String.format("%.2f",c.getPerimeter()));
            } else if(str.equals("Cylinder")) {
                Cylinder r = new Cylinder(input.nextDouble(), new Circle(input.nextDouble()));
                System.out.println("The area of " + r.toString() + " is " + String.format("%.2f",r.getArea()));
                System.out.println("The volume of " + r.toString() + " is " + String.format("%.2f",r.getVolume()));
            }
        }
    }
}


小明来到了古都西安,想去参观大唐西市!

西安的道路可以看做是与x轴或y轴垂直的直线,小明位于(a,b),而目的地位于(c,d),问最少几步可以到达。((((((用c语言))))))))
#include <stdio.h>
#include <math.h>
int main()
{
    int a,b,c,d;
    int m,n;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    m=fabs(c-a);
    n=fabs(d-b);
    printf("%d",m+n);
    return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值