JAVA程序设计-期末复习(PTA)

[判断题]

Object是Java中所有类的共同父类。

答案:正确

Java语言的标识符不区分大小写。

答案:错误

JAVA抽象类中一定含有抽象方法。

答案:错误

解析:在Java中,抽象类不一定需要包含抽象方法,但是如果一个类中包含有抽象方法,那么这个类必须声明为抽象类

Java语言中,变量名可以用汉字表示。

答案:正确

解析:Java是区分大小写的,因为它使用C风格的语法;同时也是为了方便阅读。

package语句必须放到java程序的最开始。

答案:正确

JAVA中,一个接口允许继承多个接口。

答案:正确

String是Java中定义的基本数据类型

答案:错误

解析:Java中的String是一种特殊的对象类型,而不是基本数据类型

Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关

答案:正确

Java中数组的元素可以是简单数据类型的量,也可以是某一类的对象。

答案:正确

一个Java源文件中可以有多个类,但只能有一个类是public的。

答案:正确

如果Java源文件中包含了多个类,那么用编译器javac编译完源文件后将生成多个扩展名为.class的文件

答案:正确

Java系统的标准输入对象是System.in,标准输出对象有两个,分别是System.out和System.err。

答案:正确

Java语言中的数组元素下标总是从0开始,下标可以是整数或整型表达式。

答案:正确

在Java程序中,可以使用private来修饰一个类。

答案:正确

解析:在java中,private表示“私有的”,是一种访问控制修饰符,用于修饰类、属性和方法。用private修饰的类成员,只能被该类自身的方法访问和修改,而不能被任何其他类访问和引用。

一个Java源文件就是由类和接口组成的。

答案:正确

Java中所有的I/O都是通过流来实现的。

答案:正确

在Java中,含有抽象方法的类一定是抽象类。

答案:正确

解析: 抽象类不一定有抽象方法,含有抽象方法的类一定是抽象类。

Java的各种数据类型占用固定长度,与具体的软硬件平台环境无关。

答案:正确

一个Java源文件中可以有多个类,但只能有一个类是public的。

答案:正确

[单选题]

下列不可作为java语言标识符的是()。

A. a2

B. $2

C. _2

D. 22

答案:D

有一段java 应用程序,它的主类名是a1,那么保存它的源文件名可以是( ).

A. a1.java

B. a1.class

C. a1

D. 都对

答案:A

Java中( ) 。

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

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

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

D. 上述说法都不对

答案:C

Java语言具有许多优点和特点,哪个反映了Java程序并行机制的特点?( )

A. 安全性

B. 多线性

C. 跨平台

D. 可移植

答案:B

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

A. 隐藏

B. 覆盖

C. 重载

D. Java不支持此特性

答案:C

下列哪些语句关于Java内存回收的说明是正确的? ( )

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

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

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

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

答案:B

A派生出子类B,B派生出子类C,对于如下Java源代码正确的说法是( )。
A a0 =new A( );
A a1 =new B( );
A a2 =new C();

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

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

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

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

答案:D

以下关于继承的叙述正确的是( )。

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

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

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

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

答案:A

编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。

A. .byte

B. .class

C. .html

D. .exe

答案:B

在Java中用什么关键字修饰的方法可以直接通过类名来调用?( )

A. static

B. final

C. private

D. void

答案:A

在Java中,"456"属于( )类的对象。

A. int

B. String

C. Integer

D. Number

答案:B

Java的集合框架中重要的接口java.util.Collection定义了许多方法。选项中哪个方法不是Collection接口所定义的?( )

A. int size()

B. boolean containsAll(Collection c)

C. compareTo(Object obj)

D. boolean remove(Object obj)

答案:C

在Java中,负责对字节代码解释执行的是( )。

A. 应用服务器

B. 虚拟机

C. 垃圾回收器

D. 编译器

答案:B

下面说法正确的是( ) 。

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

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

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

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

答案:C

下面关于缺省构造方法的描述中正确的是( )。

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

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

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

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

答案:A

下面哪单词是Java语言的关键字( )。

A. Float

B. this

C. string

D. unsigned

答案:B

下述哪条关于构造方法的说法,不符合Java语法的规定( )。

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

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

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

D. 构造方法可以是private的

答案:C

以下关于Java的局部内部类的说法错误的是( )

A. 局部内部类只能在当前类中使用

B. 局部内部类不能包含静态成员

C. 局部内部类可以访问外部类的所有成员

D. 在局部内部类中定义的内部类不能被private修饰符修饰

答案:A

对于下列代码:
String str1="java";
String str2="java";
String str3=new String("java");
StringBuffer str4=new StringBuffer("java");
以下表达式的值为true的是( )

A. str1= =str2;

B. str1= =str4;

C. str2= =str3;

D. str3= =str4;

答案:A

在Java中,能实现多重继承效果的方式是( )。

A. 接口

B. 继承

C. 内部类

D. 适配器

答案:A

下列说法错误的一项是:( )。

A. Java中的第一个线程都属于某个线程组。

B. 线程只能在其创建时设置所属的线程组。

C. 线程创建之后可以从一个线程组转移到另一个线程组。

D. 新建的线程默认情况下属于其父线程所属的线程组。

答案:B

如下程序输出( )
Public class Test {
public static void main(String[] args) {
String s = "Java";
StringBuilder buffer = new StringBuilder(s);
Change(s);
System.out.println(s);
}
private static void change(String s) {
s = s + " and HTML";
}
}

A. Java

B. Java and HTML

C. and HTML

D. 什么都不显示

答案:A

以下代码输出( )。
public static void main(String[] args) {
String[] tokens = "Welcome to Java".split("o");
For (int i = 0; i < tokens.length; i++) {
System.out.print(tokens[i] + " ");
}
}

A. Welcome to Java

B. Welc me to Java

C. Welc me t Java

D. Welcome t Java

答案:C

Java 语言的特点不包括( )

A. 平台无关

B. 面向对象

C. 多重继承

D. 支持多线程

答案:C

某Java源文件代码如下,该源文件应如何命名?Public class A {int a;}Class B {int b;}Class C {public static void main(String[] args) {System.out.print("HELLO!");}}

A.一定是A. java

B.一定是B. java

C.一定是C. java

D.不确定

答案:A

Java源代码文件的扩展名为( )

A. txt

B. class

C. java

D. doc

答案:C

[填空题]

面向对象的三大特性,是封装性、继承性和()

答案:多态

Java中,基本数据类型int对应的包装类是()

答案:Integer

类的封装的时候如果需要类中的属性私有化,可使用()关键字来修饰。

答案:private

Java中定义一个类,()需要使用关键字。

答案:class

在Java中使用()类型的实例对象表示一个不可变字符串。

答案:String

创建一个名为 myPackage 的包的语句是()

答案:packagemyPackage

可以通过()关键字引用其它包中定义的类和接口

答案:import

Java中关键字()的作用相当于告诉编译程序,相应的类或方法不能变动、扩展或重写。而()则是告诉编译程序,相应的类或方法必须在完善定义之后才能使用。

答案:final|abstract

写出以下程序段的运行结果。Int a = 2, b = 3, c = 1, d;Printf("%d\n", a > b == c);Printf("%d\n", d = a > b);第1行输出()第2行输出()

答案:0|0

解析:a > b == c对于这个表达式,先计算a >B,结果为0(false),然后与c做==比较,0==1的结果为0(false)D = a > b这个语句先计算a >B,结果赋值给d,因为a=2,b=3,所以a > b的结果为0(false),赋值给d

写出以下程序段的运行结果。char ch = 'w';
int a = 2, b = 3, c = 1, d;
printf("%d\n", ch >'a' + 1);
printf("%d\n", d = a + b > c);第1行输出()第2行输出()

答案:1|1

写出以下程序段的运行结果。Int a = 1, b = 2, d = -5;Printf("%d\n", -a-5*b <= d + 1);Printf("%d\n", b == (a = 2));第1行输出()第2行输出()

答案:0|0

解析:-a-5b <= d + 1 -1 - 52 <= -5 + 1 -1 - 10 <= -4 -11 <= -4 结果为0(false)B == (a = 2) (a = 2)表达式将2赋值给a,然后与b比较,2!=2,结果为0(false) 同时a的值被改为2

Java中,抛出异常的关键字是

答案:throw

写出以下程序段的运行结果。Int a;Scanf("%d", &a);If(a > 50) printf("%d", a);If(a > 40) printf("%d", a);If(a > 30) printf("%d", a);输入 32,输出()输入 46,输出()输入 58,输出()

答案:32|46 46|58 58 58

java中,多态的本质是()

答案:父类引用指向子类对象

在Java中定义子类时继承父类的关键字是()

答案:extends

按照读写单位分类,java中的流可分为字节流和()流两种

答案:字符

在Java‎语言中,所有的类都‎是类()的子类

答案:Objec‎t

按异常处理不同可以分为运行异常、捕获异常、声明异常和 ()几种

答案:抛出异常

数组是一个容器,存储到数组中的每个元素,都有自己的自动编号,最小值为()

答案:0

Java获取随机数()

答案:Math.random()

用于在定义子类时声明父类名的关键字是( )

答案:extends

Java中的增强for循环底层是通过()来实现的

答案:迭代器

在Java中,使用“()”关键字来定义抽象类和抽象方法。

答案:abstract

当编译并运行下列代码时,其运行结果是什么?
Public class Main{
public static void main(String args[]){
String s="Hello";
methodA(s);
s=s.replace('e', 'a');
System.out.println(s);
}
public static void methodA(String str){
str+="World";
}
}
上述代码的运行结果为:()

答案:hallo

文档注释是以/*符号开头,以()符号结尾。

答案:*/

Java中,接口中的方法默认修饰符是()()

答案:public|abstract

Java中可以通过java.lang包中()类或者java.util包中的()类来获取随机数。

答案:Math|Random

Java集合中,增强for循环(foreach)底层由()实现。

答案:迭代器

Java类的封装的时候如果需要类中的属性私有化,可使用()关键字来修饰。

答案:private

Java中,关键字()修饰的方法是不能被当前类的子类重写的方法。

答案:final

创建一个名为 myPackage 的包的语句是()

答案:package myPackage

[代码题]

水仙花数水仙花数是指一个N位正整数(7≥N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 要求编写程序,计算所有N位水仙花数。输入格式:输入一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:在这里给出一组输入。例如:3

输出样例:在这里给出相应的输出。

例如:153
           370
           371
           407

答案:

import java.util.Iterator;
import java.util.Scanner;
import java.util.concurrent.ThreadPoolExecutor;

public class Main {
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		//水仙花数是指一个N位正整数(7≥N≥3),它的每个位上的数字的N次幂之和等于它本身
		int num;
		Scanner sc=new Scanner(System.in);
		method mc=new method();
		num = sc.nextInt();
		if(num>2&&num<8) {
			if (num==3) {
				mc.Three();
			}
			
			  if (num==4) { 
				  mc.Four(); 
			  } 
			  if (num==5) { 
				  mc.Five(); 
			  } 
			  if (num==6) { 
				  mc.Six();
			  } 
			  if (num==7) { 
				  mc.Serven(); 
			  }
			 			
		}		
	}

	
	

}

class method{

	 void Three() {
		// TODO Auto-generated method stub
		for (int i = 100; i < 1000; i++) {
				int x,y,z;
				x=i/100;
				y=i/10%10;
				z=i%10;
			if (i==(Math.pow(x,3)+Math.pow(y, 3)+Math.pow(z, 3))){
				System.out.println(i);
			}
			
		}
		
	}

	 void Four() {
		// TODO Auto-generated method stub
		for (int i = 1000; i < 10000; i++) {
			int a,b,c,d;
			a=i/1000;
			b=i/100%10;
			c=i/10%10;
			d=i%10;
			if (i==(Math.pow(a, 4)+Math.pow(b, 4)+Math.pow(c, 4)+Math.pow(d, 4))) {
				System.out.println(i);
			}
		}
	}

	 void Five() {
		// TODO Auto-generated method stub
		for (int i = 10000; i < 100000; i++) {
			int a,b,c,d,e;
			a=i/10000;
			b=i/1000%10;
			c=i/100%10;
			d=i/10%10;
			e=i%10;
			if (i==(Math.pow(a, 5)+Math.pow(b, 5)+Math.pow(c, 5)+Math.pow(d, 5)+Math.pow(e, 5))) {
				System.out.println(i);
			}
		}
	}	

	 void Six() {
		// TODO Auto-generated method stub
		for (int i = 100000; i < 1000000; i++) {
			int a,b,c,d,e,f;
			a=i/100000;
			b=i/10000%10;
			c=i/1000%10;
			d=i/100%10;
			e=i/10%10;
			f=i%10;
			if (i==(Math.pow(a, 6)+Math.pow(b, 6)+Math.pow(c, 6)+Math.pow(d, 6)+Math.pow(e, 6)+Math.pow(f, 6))) {
				System.out.println(i);
			}
		}
	}
	
	 void Serven() {
		// TODO Auto-generated method stub
		for (int i = 1000000; i < 10000000; i++) {
			int a,b,c,d,e,f,g;
			a=i/1000000;
			b=i/100000%10;
			c=i/10000%10;
			d=i/1000%10;
			e=i/100%10;
			f=i/10%10;
			g=i%10;
			if (i==(Math.pow(a, 7)+Math.pow(b, 7)+Math.pow(c, 7)+Math.pow(d, 7)+Math.pow(e, 7)+Math.pow(f, 7)+Math.pow(g, 7))) {
				System.out.println(i);
			}
		}
	}
}

较为复杂情况下的求和计算一个给定序列的整数和,序列中可能会混入无关的字母,求和的时候需要忽略。输入格式:输入为一行,元素直接使用空格分割。输出格式:输出为序列整数部分的和。输入样例:在这里给出一组输入。

例如:1 2 3 a 4 5

输出样例:在这里给出相应的输出。例如:15

答案:

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		int sum = 0;
		Scanner scanner = new Scanner(System.in);
		String s = scanner.nextLine();
		String[] arr = s.split(" ");
		for (int i = 0; i < arr.length; i++) {
			try {
				sum += Integer.parseInt(arr[i]);
			} catch (Exception e) {
				// TODO: handle exception
				continue;
			}
		}
		System.out.println(sum);
	}
}

编程题:判断闰年根据输入的正整数y所代表的年份,计算输出该年份是否为闰年
闰年的判断标准:能够被4整除且不能被100整除的年份或者能够被400整除的年份输入格式:输入n取值范围是 【1..3000】输出格式:是闰年,输出 yes非闰年,输出 no输入样例:在这里给出一组输入。

例如:100输出样例:在这里给出相应的输出。例如:no

答案:

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int y,n = 0;
		Scanner scanner = new Scanner(System.in);
		y=scanner.nextInt();
		
		if (y%2==0 && y%100!=0 || y%400 == 0) {
			System.out.println("yes");
			n++;
		} else {
			System.out.println("no");
		}
		
	}

}

判断登录信息是否正确--字符串比较从键盘接收用户输入的两个字符串,第一个代表用户名,第二个代表密码。(1)如果用户名是SwpuIot,并且密码是123456,则输出:Welcome(2)如果用户名正确,密码不正确,输出:Mismatch(3)其他情况下,输出:NotExist要输出的信息,建议从题目中复制,确保精确匹配。

输入格式:用空格分隔开的两个字符串。

输出格式:首字母大写的一个单词或词组。

输入样例:SwpuIot 123456

输出样例:Welcome

答案:
 


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		String user,pwd;
		
		Scanner scanner=new Scanner(System.in);
		user=scanner.next();
		pwd=scanner.next();
//法一		
		if (user.equals("SwpuIot") && pwd.equals("123456")) {
			System.out.println("Welcome");
		}else if (user.equals("SwpuIot") ) {
			System.out.println("Mismatch");
		}else {
			System.out.println("NotExist");
		}

	}

}

 if-else基础训练(两数交换)从键盘上输入两个不相等的整数,按照升序排序,最后输出结果。要求输出结果时两个数据中间用一个空格分隔,最后换行。输入格式:从键盘上输入两个不相等的整数,中间用空格分隔。

例如:12 36。

输出格式:中间用一个空格分隔,最后换行。

例如:12 36

输入样例:36 12

输出样例:12 36

答案:

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
		int a,b;
		Scanner scanner= new Scanner(System.in);
		a=scanner.nextInt();
		b=scanner.nextInt();
		
		if (a>b) {
			System.out.println(b+" "+a);
		}else {
			System.out.println(a+" "+b);
		}
	}

}

计算给定两数之间的所有奇数之和本题目要求接收输入的2个整数a和b,然后输出a~b之间的所有奇数之和。输入格式:分别用两行输入两个整数a,b输出格式:输出a~b之间的所有奇数之和输入样例:在这里给出一组输入。

例如:130

输出样例:在这里给出相应的输出。

例如:SUM = 225

答案:

import java.util.Iterator;
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int a,b;
		
		int sum=0;
		Scanner scanner = new Scanner(System.in);
		a = scanner.nextInt();
		b = scanner.nextInt();

		for ( ; a <= b; a++) {
			if (a % 2 == 1) {
				sum += a;
			}
			
		}
		System.out.println("SUM = "+sum);
		
	}

}

75.7-8 设计圆和圆柱体编写一个完整的Java Application 程序。包含类Circle、Cylinder、Main,具体要求如下。

(1)编写类Circle,表示圆形对象,包含以下成员

        ①属性:1) radius:私有,double型,圆形半径;

        ②方法:1) Circle(double radius), 构造方法,用参数设置圆的半径

                        2) Circle(),构造方法,将圆形初始化为半径为0。

                       3) void setRadius(double r):用参数r设置radius的值

                       4) double getRadius():返回radius的值

                       5) double getArea(),返回圆形的面积

                       6) double getPerimeter(),返回圆形的周长

                       7) public String toString( ),

将把当前圆对象的转换成字符串形式,例如圆半径为10.0,返回字符串"Circle(r:10.0)"。(2)编写一个类Cylinder,表示圆柱形对象,包含以下成员

        ①属性:1) height:私有,double型,圆柱体高度;

                       2) circle:私有,Circle类型,圆柱体底面的圆形;

        ②方法:1) Cylinder(double height,Circle circle), 构造方法,用参数设置圆柱体的高度和底面的圆形

                       2) Cylinder(),构造方法,将圆柱体的高度初始化为0,底面圆形初始化为一个半径为0的圆形。

                       3) void setHeight(double height):用参数height设置圆柱体的高度

                       4) double getHeight():返回圆柱体的高度

                       5) void setCircle(Circle circle):用参数circle设置圆柱体底面的圆形

                       6) Circle getCircle():返回圆柱体底面的圆形

                       7) double getArea(),重写Circle类中的area方法,返回圆柱体的表面积

                       8) double getVolume(),返回圆柱体的体积

                       9) public String toString( ),将把当前圆柱体对象的转换成字符串形式,

例如半径为10.0,高为5.0,返回字符串"Cylinder(h:5.0,Circle(r:10.0))"。

(3)编写公共类Main,在main()方法中实现如下功能输入一个整数n,表示有n个几何图形。对于每一个几何图形,先输入一个字符串,“Circle”表示圆形,“Cylinder”表示圆柱体。如果是圆形,输入一个浮点数表示其半径。要求计算其面积和周长并输出。如果是圆柱体,输入两个浮点数分别表示其半径和高度。要求计算其面积和体积并输出。

将以下代码附在自己的代码后面:

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())); } } }}

输入格式:第一行输入一个整数n,表示有n个几何图形。以下有n行,每行输入一个几何图形的数据。每行先输入一个字符串表示几何图形的类型,“Circle”表示圆形,“Cylinder”表示圆柱体。如果是圆形,输入一个浮点数表示其半径。如果是圆柱体,输入两个浮点数分别表示其半径和高度。输出格式:如果是圆形,要求计算其面积和周长并输出。如果是圆柱体,要求计算其面积和体积并输出。注意,圆周率用Math.PI输入样例:在这里给出一组输入。

例如:4Circle 10.0Cylinder 10.0 10.0Circle 1.1Cylinder 1.1 3.4 输出样例:在这里给出相应的输出。例如:The area of Circle(r:10.0) is 314.16The perimeterof Circle(r:10.0) is 62.83The area of Cylinder(h:10.0,Circle(r:10.0)) is 1256.64The volume of Cylinder(h:10.0,Circle(r:10.0)) is 3141.59The area of Circle(r:1.1) is 3.80The perimeterof Circle(r:1.1) is 6.91The area of Cylinder(h:1.1,Circle(r:3.4)) is 96.13The volume of Cylinder(h:1.1,Circle(r:3.4)) is 39.95

答案:

import java.util.Scanner;

//编写类Circle,表示圆形对象
class Circle {
	private double radius;

	//用参数设置圆的半径
	 Circle(double r) {
		// TODO Auto-generated constructor stub
		//将圆形初始化为半径为0。
		radius=0;
		radius = r;
	}
		
	 double getRadius() {
		return radius;
	}

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

	 double getArea() {
		// TODO Auto-generated method stub
		double area;
		area = Math.PI * Math.pow(radius, 2);
		return area;
	}

	 double getPerimeter() {
		// TODO Auto-generated method stub
		double perimeter;
		perimeter = Math.PI*2*radius;
		return perimeter;
	}
	
	public String toString() {
		return "Circle(r:"+radius+")";
	}
}

class Cylinder {

	private double height; //圆柱体高度;
	private Circle circle; //圆柱体底面的圆形;
	
	//将圆柱体的高度初始化为0,底面圆形初始化为一个半径为0的圆形
	 Cylinder(double h, Circle r) {
		// TODO Auto-generated constructor stub
		height=0;
		height = h;
		circle = r;		
	}

	 double getHeight() {
		return height;
	}

	 void setHeight(double height) {
		this.height = height;
	}
	//返回圆柱体底面的圆形
	 Circle getCircle() {
		
		return circle;
	}

	 void setCircle(Circle circle) {
		this.circle = circle;
	}
	 double getArea() {
		double area;
		area = (circle.getArea()*2)+(circle.getPerimeter()*height);
		return area;
	}
	 double getVolume() {
		double volume;
		volume = circle.getArea()*height;
		return volume;		
	}
	public String toString() {
		return "Cylinder(h:"+height+","+circle+")";
	}
}

public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		 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(c.getRadius());
	                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()));
	            }
	        }
	}

}

84.声明一个抽象Animal类,此类中定义抽象方法shout();声明Dog类、Cat类,均继承自Animal类,并重写了shout()方法;运用多态方式实例化子类对象并调用shout()方法打印输出信息;具体输出要求请看测试说明。输入格式:无输出格式:多态方式实例化子类对象打印动物的叫声

输入样例:在这里给出一组输入。

例如:无输出样例:在这里给出相应的输出。

例如:小狗汪汪叫
小猫喵喵叫

答案:

public class Main {

public static void main(String[] args) {
// TODO Auto-generated method stub
//通过animal类创建animal对象
Dog dog = new Dog();
dog.shout();
Cat cat = new Cat();
cat.shout();
}

}

class Animal{
void shout() {
System.out.println("13");
}
}

class Dog extends Animal{
@Override
void shout() {
// TODO Auto-generated method stub
System.out.println("小狗汪汪叫");
}
}

class Cat extends Animal{
@Override
void shout() {
// TODO Auto-generated method stub
System.out.println("小猫喵喵叫");
}
}

你可能感兴趣的:(eclipse,java)