欢迎来到天天文库
浏览记录
ID:59428422
大小:321.50 KB
页数:54页
时间:2020-09-18
《面向对象的特性ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、面向对象的特性目标有关面向对象的概念Java的类Java的对象Java的面向对象特性抽象类和接口InnerClass总结面向对象特性封装性继承性多态性封装性类定义:classclassName{[public
2、protected
3、private][static][final][transient][volatile]typevariableName;//成员变量[public
4、protected
5、private][static][final
6、abstract][native][synchroniz
7、ed]returnTypemethodName([paramList])[throwsexceptionList]{statements}//成员方法}每个类都创造了有自己的名字空间,指方法和变量可以知道彼此的存在,可以使用。abstract类不能直接产生属于这个类的对象final类不能被其他任何类所继承(安全的考虑)public类不但可以被同一程序包中的其它类使用,别的程序包中的类也可以使用.缺省:类只能被本包中的其它类使用类前面的访问修饰字是:public或者“无”变量和方法的修饰字publi
8、c、protected、privatepublic:任何其它类、对象只要可以看到这个类的话,那么它就可以存取变量的数据,或使用方法。classABC{publicintpub_i=5;publicvoidshow)(){System.out.println(“pub_i”+pub_i);}classDemo{publicstaticvoidmain(Stringargs[]){ABCabc=newABC();System.out.println(“abc.pub_i”+abc.pub_i);abc
9、.pub_i=10;abc.show();}}protected变量和方法如果一个类中变量或方法有修饰字protected,同一类,同一包可以使用。不同包的类要使用,必须是该类的子类可以存取变量或调用publicclassABC{protectedintpro_i=5;protectedvoidshow(){System.out.println(“pro_i=”+pro_i;)}}同一个包中的类能使用classDEF{publicstaticvoidmain(Stringargs[]){ABCab
10、c=newABC();System.out.println(“abc.pro_i=“+abc.pro_i);abc.pub_i=10;abc.show();}}不同包但是是子类importmytest.pack.ABC;classDEFextendsABC{publicstaticvoidmain(Stringagrs[]){DEFdef=newDEF();System.out.println(def.i);def.i=10;def.show();}}private不允许任何其他类存取和调用“前边
11、没有修饰字的情况”在同一程序包中出现的类才可以直接使用它的数据和方法.修饰符与访问控制同一个类同一个包不同包的子类不同包非子类private√default√√protected√√√public√√√√继承性通过继承实现代码复用根类:java.lang.Object父类包括直接或者间接被继承的类Java不支持多重继承子类不能访问父类中访问权限为private的成员变量和方法。子类可以重写父类的方法,及命名与父类同名的成员变量创建子类格式:classSubClassextendsSuperClas
12、s{…}重写(overridden)子类中重写的方法和父类中被重写的方法要具有相同的名字,相同的参数表和相同的返回类型成员变量的隐藏和方法的重写classSuperClass{intx;…voidsetX(){x=0;}…}classSubClassextendsSuperClass{intx;//hidexinSuperClass…voidsetX(){//overridemethodsetX()x=5;}….}super用来引用当前对象的父类(1)访问父类被隐藏的成员变量,如:super.va
13、riable;(2)调用父类中被重写的方法,如:super.Method([paramlist]);(3)调用父类的构造函数,如:super([paramlist]);classSuperClass{intx;SuperClass(){x=3;System.out.println(“inSuperClass:x=“+x);}voiddoSomething(){System.out.println(“inSuperClass.doSomething()”);}}classSubCla
此文档下载收益归作者所有