首页 > 编程知识 正文

java的主要优点是,面向对象的三大特性

时间:2023-05-05 22:32:08 阅读:162381 作者:3193

java的三大特性(封装、继承、多态性)1.封装:在面向对象的编程中,封装(Encapsulation )将类的内部与外界隔离,隐藏实现数据和方法的包装器要访问该类的代码和数据,必须使用特定的方法进行访问。

2 .继承:继承是所有OOP语言和Java语言中不可缺少的部分。 创建类时,始终会继承。 缺省情况下,将继承Java标准根类Object,除非明确声明继承类。

继承是指子类继承父类的特性和行为,从而导致子类的对象(实例)具有父类的实例域和方法,或者子类从父类继承方法,从而导致子类继承父类3 .多态性(多态性的表达主要有两个方面) 1、方法过载与改写。 2、对象多态性。

计算机思维示例package com.demo.test; import java.util.Scanner; /**要实现计算机的计算器功能,需要输入两个numA numB和运算符(,-,)、/)。 坏处)1.面向客户的代码和业务实现的方法融合)不符合java的软件包特性)2.如果不利于扩展,想增加运算,就必须修改代码)3.代码不能重用。 如果想使用,请输入* @ author admin * */public class main { publicstaticvoidmain (string [ ] args (/todo auto-generatedmethodstub ) ) 请输入System.out.println ('参数A: '; intnuma=integer.parseint (scan.nextline ) ); 请输入System.out.println ('参数B: '; intnumb=integer.parseint (scan.nextline ) ); 请输入System.out.println ('运算符: ); String operaStr=scan.nextLine (; int sum=0; sitch(operastr ) {case ' ':sum=numA numB; 黑; case '-':sum=numA-numB; 黑; case '*':sum=numA*numB; 黑; case'/':if(numb==0) throw new Exception ) (被除数不能为0 ); sum=numA/numB; 黑; 默认: break; }System.out.println ('计算结果:“sum”) }catch(exceptione )//todo : handleexceptione.print stack trace ); System.out.println ('请检查输入); //system.out.println(a ); }引入软件包的概念,然后Operation.java

packagecom.demo.test.fengZhuang; public class operation (publicintegergetresult (intnuma,int numB,String operaStr ) throwsexception ) intsum=0; try{switch(operastr ) {case ' ':sum=numA numB; 黑; case '-':sum=numA-numB; 黑; case '*':sum=numA*numB; 黑; case'/':if(numb==0) throw new Exception ) (被除数不能为0 ); sum=numA/numB; 黑; default:break; }catch(exceptione )//todo : handleexceptionthrownewexception ) )“请检查输入参数”); }return sum; }} Main.java

packagecom.demo.test.fengZhuang; import java.util.Scanner; /**如上所述,代码未用于包中。 这里使用软件包。 首先说明使用软件包的好处。 * 1.实现接口逻辑和逻辑分离* 2.代码可复用性* 3.增加接口drdct和实现逻辑分离互不影响。 不用继承缺点* 1.使用软件包后,具有可复用的特性,但我在扩展方法的时候,看到加减乘除的方法实现,能否扩展只关注自己的方法,而不担心*误操作会影响别的方法吗*使用继承后,* 1.扩展简单* @ author admin * */public class main { publicstaticvoidmain (string [ ] args )/todoauto-) todo intnuma=integer.parseint (scan.nextline ) ); 请输入System.out.println ('参数B: '; intnumb=integer.parseint (scan.nextline ) ); 请输入System.out.println ('运算符: ); String operaStr=scan.nextLine (; 操作opr=new operation (; try{intnum=opr.getresult(numa,numB,operaStr ); System.out.println (计算结果: ) num; }catch(exceptione )//todo auto-generatedcatchblocke.print stack trace ); system.out.print ln (e.getmessage ); }}添加继承和多态性后,Operation.java

package com.demo.test.jicheng; public class Operation {/** *获取的数据*/protected int numA,numB; publicoperation(intnuma,int numB ) {this.numB=numB; this.numA=numA; }public int getResult () {int sum=0; 返回0; }} oprAdd.java

package com.demo.test.jicheng; publicclassopraddextendsoperation { publicopradd (intnumb,int numB ) super ) numa,numB; //todo auto-generatedconstructorstub } @ overridepublicintgetresult () {return numA numB; }} oprJian.java

package com.demo.test.jicheng; publicclassoprjianextendsoperation (publicoprjian ) int numB,int numB (super ) numB,numb ); //todo auto-generatedconstructorstub } @ overridepublicintgetresult ((return numa-numb; }} OprSelect.java

package com.demo.test.jicheng; publicclassoprselect { publicintgetresult (intnuma,int numB,String oprStr ) {int sum=0; sitch(oprstr ) case'':sum=newopradd ) numB,numB ).getResult ); 黑; case '-' : sum=newoprjian (numa,numB ).getResult ); 黑; 默认: break; }return sum; }} Main.java

package com.demo.test.jicheng; import java.util.Scanner; 使用/**继承方式完成计算机,必须考虑区分父类和基类,判断何时使用的方法。 这里有中绝*多态性的表现,主要包括两个方面: 1、方法过载和重写。 2、对象多态性* * @ author admin * */public class main (publicstaticvoidmain (string [ ] args )/todo auto-generatedmethodstutution intnuma=integer.parseint (scan.nextline ) ); 请输入System.out.println ('参数B: '; intnumb=integer.parseint (scan.nextline ) ); 请输入System.out.println ('运算符: ); String operaStr=scan.nextLine (; int sym=new OprSelect ().getresult(numa,numB,operaStr ); System.out.println ('运算结果为:' sym ); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。