接口与抽象类的区别
C#习题(内有答案)

答案:A 13.在WinForm应用程序中,可以通过以下()方法使一个窗体成为MDI窗体。 A、改变窗体的标题信息 B、在工程的选项中设置启动窗体 C、设置窗体的IsMdiContainer属性 D、设置窗体的ImeMode属性 答案:C 14.字符串连接运算符包括&和()。 A. + B、 C. * D、 / 答案 A 15.在WinForms程序中,如果复选框控件的 Checked属性值设置为 True,表示()。 A、该复选框被选中 B、该复选框不被选中 C、不显示该复选框的文本信息 D、显示该复选框的文本信息 答案:A 16. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的()。 A. int[]arr = new int[10,20] B、 int[]arr = int new[10,20] C. int[,]arr = new int[10,20] D、 int[,]arr = new int[20;10] 答案:C 17. 以下正确的描述是()。 A. 函数的定义可以嵌套,函数的调用不可以嵌套 B、 函数的定义不可以嵌套,函数的调用可以嵌套 C. 函数的定义和函数的调用均可以嵌套 D、 函数的定义和函数的调用均不可以嵌套 答案:B 18.WinForms中的图片框控件(pictureBox)中能显示以下的图片格式,除了()。 A、.doc B、.bmp C、.gif D、.jpeg 答案:A 19.()方法执行指定为Command对象的命令文本的SQL语句,并返回受SQL语句 影响或检索的行 数。 A、 ExecuteNonQuery B、 ExecuteReader C、 ExecuteQuery D、 ExecuteScalar 答案:A 20.引用类型主要有4种:类类型、数组类型、接口类型和()。 A、对象类型 B、字符串类型 C、委托类型 D、整数类型 答 案:C 21.加载窗体时触发的事件是()。 A、 Click B、Load C、GotFoucs D、DoubleClick 答案:B 22.在.NET中,为了卸载一个名为”myWindowsService.exe”的Windows服务,使用的命令是() A、Unstall myWindowsService.exe B、Installutil /u myWindowsService.exe C、Installutil myWindowsSercicr.exe D、Unstallutil /u myWindowsService.exe 答案:B 23.下列()是的两个主要组件 A、 Command和DataAdapter B、 DataSet和Data Table C、 NET数据提供程序和DataSet D、 NET数据提供和DataAdapter 答案:C 24.改变窗体的标题,需修改的窗体属性是()。 A、Text B、Name C、Title D、Index
接口和抽象类的区别和作用(功能、用途、好处)

接⼝和抽象类的区别和作⽤(功能、⽤途、好处)接⼝:抽象类和接⼝亲兄弟,但是有嫡出庶出的区别总结了4点接⼝存在的意义:1、重要性:在Java语⾔中, abstract class 和interface 是⽀持抽象类定义的两种机制。
正是由于这两种机制的存在,才赋予了Java强⼤的⾯向对象能⼒。
2、简单、规范性:如果⼀个项⽬⽐较庞⼤,那么就需要⼀个能理清所有业务的架构师来定义⼀些主要的接⼝,这些接⼝不仅告诉开发⼈员你需要实现那些业务,⽽且也将命名规范限制住了(防⽌⼀些开发⼈员随便命名导致别的程序员⽆法看明⽩ 3、维护、拓展性:⽐如你要做⼀个画板程序,其中⾥⾯有⼀个⾯板类,主要负责绘画功能,然后你就这样定义了这个类。
可是在不久将来,你突然发现这个类满⾜不了你了,然后你⼜要重新设计这个类,更糟糕是你可能要放弃这个类,那么其他地⽅可能有引⽤他,这样修改起来很⿇烦。
如果你⼀开始定义⼀个接⼝,把绘制功能放在接⼝⾥,然后定义类时实现这个接⼝,然后你只要⽤这个接⼝去引⽤实现它的类就⾏了,以后要换的话只不过是引⽤另⼀个类⽽已,这样就达到维护、拓展的⽅便性。
4、安全、严密性:接⼝是实现软件松耦合的重要⼿段,它描叙了系统对外的所有服务,⽽不涉及任何具体的实现细节。
这样就⽐较安全、严密⼀些(⼀般软件服务商考虑的⽐较多)。
那么什么是接⼝呢?接⼝是⼀种能⼒1:接⼝的命名规则与类型不同。
如果修饰符是public。
则该接⼝在整个项⽬中可见,如果省略修饰符则该接⼝只能在该包可见2:接⼝中可以定义常量,不能定义变量,接⼝中的属性都会⾃动⽤public static final修饰,即接⼝中的属性都是全局静态常量,接⼝中的常量必须在定义时指定初始值3:接⼝中所有的⽅法抽象⽅法。
接⼝中的⽅法都会⾃动⽤public abstract修饰。
即接⼝中只有全局抽象⽅法,4:和抽象类⼀样,接⼝不能被实例化,接⼝中不能有狗构造⽅法5:接⼝之间可以通过extends 实现继承关系,⼀个接⼝可以继承多个接⼝。
java abstract方法继承

Java Abstract方法继承一、什么是Abstract方法Abstract方法是Java中一种特殊的方法,它只有声明而没有具体的实现。
在定义一个Abstract方法时,需要使用abstract关键字修饰方法,并且该方法所在的类必须是抽象类或者接口。
Abstract方法的定义如下:public abstract void methodName();二、抽象类与接口抽象类(Abstract Class)是一个不能被实例化的类,它可以包含Abstract方法和具体的方法实现。
抽象类通过使用abstract关键字进行修饰。
接口(Interface)是一种纯抽象的类,它只包含Abstract方法和常量。
接口定义方法时,默认使用public abstract修饰。
抽象类和接口的区别如下: - 抽象类可以有构造方法,而接口不能有构造方法。
- 类只能继承一个抽象类,但可以实现多个接口。
- 抽象类可以有成员变量,而接口只能有常量。
- 接口中的方法默认是public的,而抽象类中的方法可以有不同的访问修饰符。
三、Abstract方法的继承方式Abstract方法在继承关系中有以下几种继承方式:子类覆盖方法、子类重载方法、子类继续声明抽象方法。
1. 子类覆盖方法当一个子类继承自一个抽象类或者实现一个接口时,它必须实现抽象类或接口中的所有Abstract方法。
子类通过覆盖Abstract方法来提供具体的实现。
例如,有一个抽象类Animal,其中定义了一个Abstract方法eat(),如下所示:public abstract void eat();}如果一个子类Dog继承自Animal,则必须实现eat()方法:public class Dog extends Animal {@Overridepublic void eat() {System.out.println("狗吃骨头");}}2. 子类重载方法除了覆盖Abstract方法,子类还可以重载Abstract方法。
接口的定义及使用

1、课程名称:接口的定义及使用2、知识点2.1、上次课程的主要知识点1、抽象类的设计是在普通类之上的抽象类;2、抽象类关键的问题就是约定了子类必须要覆写的抽象方法;3、抽象类的使用原则:·抽象类必须有子类,子类利用extends关键字来继承抽象类,一个子类只能够继承一个父类;·抽象类的子类(如果不是抽象类),那么必须要覆写抽象类中的全部抽象方法;·抽象类可以利用对象的向上转型机制,通过子类对象进行实例化操作。
2.2、本次预计讲解的知识点1、接口的基本定义以及使用形式;2、与接口有关的设计模式的初步认识;3、接口与抽象类的区别。
3、具体内容(★★★★★★★★★★★★★★)接口与抽象类相比,接口的使用几率是最高的,所有的设计几乎都是围绕着接口进行的,但是要想把接口彻底闹明白,需要很长一段时间。
3.1、接口的基本概念接口是一种特殊的类,但是在接口里面的组成与类不同,比类的组成部分简单,主要由抽象方法和全局常量所组成。
而接口使用interface关键字来定义。
范例:定义一个接口当一个接口定义完成之后,需要遵循如下的步骤进行接口的使用:·接口一定要定义子类,子类利用implements关键字来实现接口,一个子类可以同时实现多个接口;|- 秒杀抽象类的单继承局限,一个抽象类只能够被一个子类所继承;·接口的子类(如果不是抽象类)那么必须覆写接口中的全部抽象方法;·接口的对象利用子类对象的向上转型进行实例化操作。
范例:使用接口但是这个时候会有这样一种比较神奇的操作。
注意:关于接口的组成描述接口里面在定义的时候就已经明确的给出了开发要求:抽象方法和全局常量,所以以下两种接口的定义从本质上讲是完全一样的。
如果在定义接口方法的时候没有使用public ,那么本质上也不是default 权限,而默认就是public 。
很多时候为了防止一些开发者概念不清晰,所以以后建议大家在定义接口的时候永远都写上public ,但是一般都不会去写abstract 。
Java抽象类与接口-笔记

抽象类与接口-笔记关键字:接口抽象类,接口与类是一个层次的概念,是java中极其重要的概念抽象类是从多个类中抽象出来的公共模板,提供子类均具有的功能。
接口是从多个类中抽象出来的规范,体现的是规范和实现分离的原则,同时也有效的解决Java单重继承的缺陷。
*******普通方法与抽象方法的不同*******普通方法需要有访问修饰符,返回类型,方法名,还要有一个方法体,抽象方法也有访问修饰符,返回类型,方法名,但是它还多了一个修饰符——abstract,同时没有方法体,也就是说抽象方法没有实现。
普通方法与抽象方法的区别:1,普通方法必须要有实现体,抽象方法不能有实现体,抽象方法要用abstract修饰符来修饰。
********普通类与抽象类的区别*********普通类:要有访问修饰符,class关键字和类名。
抽象类:在普通类的基础之上,还多了一个abstract修饰符。
在使用的时候抽象类与普通类也不一样:普通类:可以通过new关键字实例化。
抽象类:不能使用new关键字来实例化。
**********抽象类********************抽象类:是一个不能实例化的类,它可以具有抽象方法或者普通方法。
定义抽象类的语法与定义普通类类似,只是多了一个关键字abstract。
注意:抽象类中可以定义抽象方法,也可以拥有普通方法,而普通类当中只能定义普通方法。
********对比抽象类与接口***************抽象类用abstract修饰符来定义,而且抽象类中可以有抽象方法,也可以有普通方法。
**接口是使用interface关键字来定义,关键字后面是接口名。
注意::定义接口的时候不再使用class关键字。
同时,接口只能拥有抽象方法。
***从定义就可以看出抽象类与接口的区别:1,抽象类使用abstract声明,接口使用interface声明。
2,抽象类除了抽象方法,还可以有普通方法,而接口中只能有抽象方法。
C_试题汇总(有答案)

一、单项选择题(每小题2分,共20分)1.在类作用域中能够通过直接使用该类的(D)成员名进行访问。
A. 私有B. 公用C. 保护D. 任何2.小数类型(decimal)和浮点类型都可以表示小数,正确说法:( C )A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低3.能作为C#程序的基本单位是( B )。
A. 字符B. 语句C. 函数D. 源程序文件4. 可用作C#程序用户标识符的一组标识符是( B )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof5.引用类型主要有4种:类类型、数组类型、接口类型和( C )。
A.对象类型B.字符串类型C.委托类型D.整数类型6.加载窗体时触发的事件是( B )。
A. ClickB.LoadC.GotFoucsD.DoubleClick7.改变窗体的标题,需修改的窗体属性是( A )。
A. TextB. NameC.TitleD. Index8.在C#中定义接口时,使用的关键字是( A )。
A.interfaceB.:C.classD.overrides9.在类的成员中,用于存储属性值的是( D )。
A. 属性B. 方法C. 事件D.成员变量10.在C#中,定义派生类时,指定其基类应使用的语句是( B )。
A.InheritsB.:C.ClassD.Overrides11.类的以下特性中,可以用于方便地重用已有的代码和数据的是( C ).A.多态B.封装C.继承D.抽象12.在Array类中,可以对一维数组中的元素进行排序的方法是( A )。
A.Sort()B.Clear()C.Copy()D.Reverse()13.将变量从字符串类型转换为数值类型可以使用的类型转换方法是( D )。
A.Str()harC.CStr()D.int.Parse();14.数据类型转换的类是( B )。
《Java基础程序设计》_课后习题

第一章思考题】1、简述path 环境变量的作用。
2、请说说你对JVM 的理解。
答案】1、path 环境变量是系统环境变量中的一种,它用于保存一系列可执行文件的路径,每个路径之间以分号分隔。
当在命令行窗口运行一个可执行文件时,操作系统首先会在当前目录下查找是否存在该文件,如果不存在会继续在path 环境变量中定义的路径下去寻找这个文件,如果仍未找到,系统会报错。
2、JVM 是Java Virtual Machine 的缩写,全称是Java 虚拟机。
Java 语言的一个非常重要的特性就是跨平台性,而Java 虚拟机是实现这一特性的关键。
不同的操作系统需要使用不同版本的虚拟机,这种方式使得Java语言能够“一次编写,到处运行”。
Java语言编译程序只需生成在Java 虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
第二章【思考题】1、请简述& 与&& 的区别。
2、简述break、continue 和return 语句的区别。
【答案】1、&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。
当运算符“ &”和“ && ”的右边为表达式时,使用“ &”进行运算,不论左边为true 或者false,右边的表达式都会进行运算。
如果使用" && ”进行运算,当左边为false时,右边的表达式则不会进行运算,因此“ && ”被称作短路与。
2、break 语句:在switch 条件语句和循环语句中都可以使用break 语句。
当它出现在switch 条件语句中时,作用是终止某个case并跳出switch结构。
什么是抽象类什么是接口两者有什么区别?如何使用它

什么是抽象类什么是接⼝两者有什么区别?如何使⽤它⼀、抽象类:抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象⽅法,这是普通类所不能的。
抽象⽅法只能声明于抽象类中,且不包含任何实现,派⽣类必须覆盖它们。
另外,抽象类可以派⽣⾃⼀个抽象类,可以覆盖基类的抽象⽅法也可以不覆盖,如果不覆盖,则其派⽣类必须覆盖它们。
⼆、接⼝:接⼝是引⽤类型的,类似于类,和抽象类的相似之处有三点:1、不能实例化;2、包含未实现的⽅法声明;3、派⽣类必须实现未实现的⽅法,抽象类是抽象⽅法,接⼝则是所有成员(不仅是⽅法包括其他成员);另外,接⼝有如下特性:接⼝除了可以包含⽅法之外,还可以包含属性、索引器、事件,⽽且这些成员都被定义为公有的。
除此之外,不能包含任何其他的成员,例如:常量、域、构造函数、析构函数、静态成员。
⼀个类可以直接继承多个接⼝,但只能直接继承⼀个类(包括抽象类)。
三、抽象类和接⼝的区别:1.类是对对象的抽象,可以把抽象类理解为把类当作对象,抽象成的类叫做抽象类.⽽接⼝只是⼀个⾏为的规范或规定,微软的⾃定义接⼝总是后带able字段,证明其是表述⼀类类“我能做。
”.抽象类更多的是定义在⼀系列紧密相关的类间,⽽接⼝⼤多数是关系疏松但都实现某⼀功能的类中.2.接⼝基本上不具备继承的任何具体特点,它仅仅承诺了能够调⽤的⽅法;3.⼀个类⼀次可以实现若⼲个接⼝,但是只能扩展⼀个⽗类4.接⼝可以⽤于⽀持回调,⽽继承并不具备这个特点.5.抽象类不能被密封。
6.抽象类实现的具体⽅法默认为虚的,但实现接⼝的类中的接⼝⽅法却默认为⾮虚的,当然您也可以声明为虚的.7.(接⼝)与⾮抽象类类似,抽象类也必须为在该类的基类列表中列出的接⼝的所有成员提供它⾃⼰的实现。
但是,允许抽象类将接⼝⽅法映射到抽象⽅法上。
8.抽象类实现了oop中的⼀个原则,把可变的与不可变的分离。
抽象类和接⼝就是定义为不可变的,⽽把可变的座位⼦类去实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Interface和abstract的区别抽象类是一种特殊的基类,里面除包含一些基本的属性和方法之外,还能包含一些只声明但没有实现的方法,用abstract去声明。
abstract类不能创建实例对象,含有abstract的方法的类必须定义为abstract class ,abstract class 里的方法不必是抽象的,抽象来中定义抽象方法必须放在具体子类中实现。
接口是一种更加抽象的类型,里面声明的方法全部公开给实现者去实现,并不关心具体细节,关键字是interface。
可以说成是抽象类的特例。
接口中的所有方法都必须是抽象的,接口中的方法定义默认为public abstract 。
接口中的变量是全局常量,即public static final修饰的。
以下来讲述一下interface和abstract的区别:声明的不同◆抽象类用abstract声明,抽象方法用abstract修饰且无方法体,允许无抽象方法但必须实现,允许有构造方法,允许有成员变量。
//abstract class 声明抽象类abstract class Abstract1{ int n; //抽象类的成员变量可不赋初值//abstract void speak3(){} 非法//abstract 修饰的方法不能有方法体abstract void speak3();//无abstract 修饰的方法必须有方法体int GetX(int x){ return x;} //抽象类可以有构造方法Abstract1(){}}abstract class Abstract2{ //抽象类可以没有abstract方法int GetY(int y){ return y;}}◆接口用interface修饰,方法一定没有方法体,不可以有构造方法,不允许有成员变量(只能有常量)。
//interface 声明接口interface Interface1{ //int m; 非法——接口的成员变量必须赋初值//public static final可以省略int m=1;//Interface1(); 非法——接口不能有构造方法//void speak1(){} 非法——方法不能有方法体void speak1();void speak2();} interface Interface2{ int Sum(int x);}使用的不同◆抽象类只能单继承,接口可以多实现◆实现接口时必须写出所有方法(包括空方法),抽象类只要求写出abstract方法即可。
//抽象类只能单继承,但可以实现多接口class WRS extends Abstract1 implements Interface1,Interface2{ //实现接口必须写出接口的所有方法,且必须用public修饰public void speak1(){ System.out.println("我实现了接口Interface1的speak1方法");} //实现接口方法时即使是空方法也必须写出public void speak2(){ } public int Sum(int x){ int sum=0;for(int i=1;i<=x;i++){ sum+=i;}return sum;}//继承抽象类时必须写出其中的abstract方法,其余方法可不继承void speak3(){ System.out.println("我继承了Abstract1的speak3方法");}} public class E { public static void main(String args[]){ int a;System.out.print("输入a:");Scanner sc=new Scanner(System.in);a=sc.nextInt();WRS wrs=new WRS();wrs.speak1();System.out.println("1+2+……+a="+wrs.Sum(a));wrs.speak3();} } 运行结果:输入a:7我实现了接口Interface1的speak1方法1+2+……+a=28我继承了Abstract1的speak3方法总结:✓抽象类用abstract定义;而接口用interface定义✓抽象类里可以有构造方法;而接口内不能有构造方法。
✓抽象类中可以有成员变量;而接口中不能有成员变量(只能有常量)。
✓抽象类中可以有abstract方法,也可以没有但必须有方法体;而接口中所的方法必须是抽象的,不能实现。
✓抽象类中的抽象方法的访问类型可以是public ,protected和默认类型,但接口中的抽象方法只能是public类型的,并且默认即为public abstract类型。
✓实现接口时,如果子类不想自己也变成抽象类,那么要实现接口里所有的抽象方法;而一个类继承了一个抽象类,如果不想自己也变成抽象类,那么就要实现父类里所有的抽象方法。
✓在抽象类中先后顺序没有要求,但有些修饰符冲突,如1)final 和abstract 不能同时出现2)private 和abstract 不能同时出现3)static 和abstract 不能同时出现(这是因为static不可被覆盖,而abstract为了生效必须被覆盖。
)PS:若没有补充完整,麻烦老师帮忙补充,谢谢!编程实例:控制台下的汉诺塔代码如下://// 调用java包中util子包中的Scanner类,从键盘读取数据import java.util.Scanner;class DistMove{ static int k;//盘子移动的步骤//定义DistMove方法,即利用递归算法移动盘子的方法static void DistMove(int N,char A,char B,char C){ if(N==1)//如果N==1,即盘子数为1,则结束递归System.out.println("第 "+ ++k +" 步:盘子 "+N+" 从"+A+" 塔移动到 "+C+" 塔");else {//如果N!=1,即盘子数不为1时,采用递归算法将N分解成N-1//调用DistMove方法,借助C盘,将A盘上面的N-1个盘子移动至B盘DistMove(N-1,A,C,B);//将A盘的第N个即最下面的盘子移动至C盘System.out.println("第 "+ ++k +" 步:盘子 "+N+" 从"+A+" 塔移动到 "+C+" 塔");//此时A盘无盘子,再借助A盘,反复上述步骤将B盘N-1个盘子移动C盘DistMove(N-1,B,A,C);} } }//继承TowerMove类,操作DistMove方法public class TowerOfHanoi extends DistMove{ public static void main(String args[]){ int n;//盘子的个数,从上到下为1到nSystem.out.print("请输入一个盘子的个数n:");//创建du对象,从键盘读取输入的数据,Scanner du=new Scanner(System.in);//将从键盘输入读取到的数据赋值给nn=du.nextInt();System.out.println("盘子的移动过程如下:");//调用TowerMove方法,解决汉诺塔问题DistMove(n,'A','B','C');}}输入n=4运行结果:请输入一个盘子的个数n:4 盘子的移动过程如下:第 1 步:盘子 1 从 A 塔移动到 B 塔第 2 步:盘子 2 从 A 塔移动到 C 塔第 3 步:盘子 1 从 B 塔移动到 C 塔第 4 步:盘子 3 从 A 塔移动到 B 塔第 5 步:盘子 1 从 C 塔移动到 A 塔第 6 步:盘子 2 从 C 塔移动到 B 塔第 7 步:盘子 1 从 A 塔移动到 B 塔第 8 步:盘子 4 从 A 塔移动到 C 塔第 9 步:盘子 1 从 B 塔移动到 C 塔第 10 步:盘子 2 从 B 塔移动到 A 塔第 11 步:盘子 1 从 C 塔移动到 A 塔第 12 步:盘子 3 从 B 塔移动到 C 塔第 13 步:盘子 1 从 A 塔移动到 B 塔第 14 步:盘子 2 从 A 塔移动到 C 塔第 15 步:盘子 1 从 B 塔移动到 C 塔本次算法采用递归思想,将N个盘子递归至1个盘子的问题,从而解决问题。
在编程过程中,使用了类的继承:主类TowerOfHanoi继承了父类DistMove的DistMove方法。
并且调用了util包中的Scanner方法,从键盘输入获取数据流。
控制台下的简单计算器代码如下://调用util包,从键盘获取数据import java.util.*;public class SinpleCalc { public static void main(String[] args) { //获取从键盘输入的数据流Scanner input = new Scanner(System.in);System.out.println("**************简易计算器王润盛***************");System.out.println("*\t\t\t\t\t*");System.out.println("* 使用说明: 1.加法 2.减法 3.乘法 4.除法 *");System.out.println("*\t\t\t\t\t*");System.out.println("*****************************************");for(int i=0;i<100;i++){ System.out.print("\n请选择运算规则:");int num = input.nextInt();switch(num){//选择运算类型case 1: //加法运算System.out.println("\n******你选择了加法******\n");System.out.print("请输入第1个加数:");double jiashu1 = input.nextDouble();System.out.print("请输入第2个加数:");double jiashu2 = input.nextDouble();System.out.println("运算结果为:" + jiashu1 + " + " +jiashu2 + " = " + (jiashu1 + jiashu2));break;case 2: //减法运算System.out.println("\n******你选择了减法******\n");System.out.print("请输入被减数:");double jianshu1 = input.nextDouble();System.out.print("请输入减数 :");double jianshu2 = input.nextDouble();System.out.println("运算结果为:"+ jianshu1 + " - "+jianshu2 + " = " + (jianshu1 - jianshu2));break;case 3: //乘法运算System.out.println("\n******你选择了乘法******\n");System.out .print("请输入第1个因数:");double chengfa1 = input.nextDouble();System.out .print("请输入第2个因数:");double chengfa2 = input.nextDouble();System.out .println("运算结果为:" + chengfa1 + " * " +chengfa2 + " = " + (chengfa1 * chengfa2));break ; case 4: //除法运算System.out .println("\n******你选择了除法******\n");System.out .print("请输入被除数:");double chufa1 = input.nextDouble(); System.out .print("请输入除数 :"); double chufa2 = input.nextDouble(); System.out .println("运算结果为:" + chufa1 + " / " +chufa2 + " = " + (chufa1 / chufa2));break ; default : //选择运算类型错误System.out .println("\n 你的选择有错,请重新选择!"); break ; }}}}运行结果:**************简易计算器 王润盛***************** 使用说明: 1.加法 2.减法 3.乘法 4.除法 * *****************************************请选择运算规则:1 ******你选择了加法****** 请输入第1个加数:1.2 请输入第2个加数:3.1 运算结果为:1.2 + 3.1 = 4.3请选择运算规则:2******你选择了减法******请输入被减数:1.2请输入减数 :3.1运算结果为:1.2 - 3.1 = -1.9请选择运算规则:3 ******你选择了乘法****** 请输入第1个因数:1.2 请输入第2个因数:3.1 运算结果为:1.2 * 3.1 = 3.7199999999999998请选择运算规则:4******你选择了除法******请输入被除数:1.2请输入除数 :3.1运算结果为:1.2 / 3.1 =0.3870967741935484界面简单计算器代码如下:import java.awt.*; import java.awt.event.*;class Calculated extends Frame implements ActionListener{ TextField text1,text2,text3; //3个文本框Button button1,button2,button3,button4; //分别是“+”、“-”、“*”、“/”4个按钮Calculated(String s){ super(s);setLayout(new FlowLayout()); //FlowLayout布局text1=new TextField(20); //文本框长度为20 text2=new TextField(20);text3=new TextField(20);Panel Num1=new Panel(); //定义面板对象Panel Num2=new Panel();Panel Result=new Panel();Panel text=new Panel();text.add(new Label("计算规则:先输入两个数,后选择运算符号"));Num1.add(new Label("输入第一个数:"));//将标签等加入相应面板Num1.add(text1);Num2.add(new Label("输入第二个数:"));Num2.add(text2);Result.add(new Label("上述计算结果:"));Result.add(text3);button1=new Button("+"); //按钮的名称分别是“+”button2=new Button("-"); //按钮的名称分别是“-”button3=new Button("*"); //按钮的名称分别是“*”button4=new Button("/"); //按钮的名称分别是“/”add(text);//使用BorderLayout,组件放在北区add(Num1,BorderLayout.NORTH);//使用BorderLayout,组件放在中心区域add(Num2,BorderLayout.CENTER);//使用BorderLayout,组件放在南区add(Result,BorderLayout.SOUTH);add(button1);add(button2);add(button3);add(button4);button1.addActionListener(this);//创建监听器button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);} });setBounds(400,200,300,200);//设置窗口大小setVisible(true); //设置可视性} //重写actionPerformed方法public void actionPerformed(ActionEvent e){ double num1,num2,result;try{num1= Double.parseDouble(text1.getText());num2= Double.parseDouble(text2.getText());if(e.getSource()==button1){//加法运算result=num1+num2;text3.setText(num1+"+"+num2+"="+result);} else if(e.getSource()==button2){//减法运算result=num1-num2;text3.setText(num1+"-"+num2+"="+result);} else if(e.getSource()==button3){//乘法运算result=num1*num2;text3.setText(num1+"*"+num2+"="+result);} else if(e.getSource()==button4){//除法运算result=num1/num2;text3.setText(num1+"/"+num2+"="+result);} } catch(NumberFormatException event){//输入异常text3.setText("请输入数字字符!");} }} public class Calc{ public static void main(String args[]){ Calculated calc=new Calculated("简单计算器******** ");}} 运行结果:加法:减法:乘法:除法::。