还剩15页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
•void notifyAII•String toString•void wait•void waitlongtimeout•void waitlongtimeout,int nanos这是因为全部其余java类都继承了Object类.抽象类13用关键字abstract修饰类就是抽象类,它是全部子类公共属性数据和行为方法集合,抽象类没有详细对象,是处于组织概念层次关系而存在类用关键字abstract修饰方法就是抽象方法没有抽象变量,抽象方法只有方法头,后面跟一个分号;,没有方法体,抽象方法方法体可在其子类中依照子类详细情况来实现,抽象方法只存在抽象类或接口中类
14.final申明为final类不能是父类,即final不再派生子类,final能够用来修饰变量和方法final类是处于类最底层类,假如没必要再派生子类,通惯用final关键字来修饰,表明它是最终类,被final修饰类通常是有固定作用,完成一定标准功效类,比如java库中数学类Math等abstract和final不能同时使用,关键字abstract不能修饰实例变量,也不能与private static、finals等同时修饰一个组员方法,而且abstract类必须在abstract类中关键字static修饰方法只能修饰static组员变量,同时static修饰组员变量和方法不能this引用.接口15接口Interface,在JAVA编程语言中是一个抽象类型,是抽象方法集合接口通常以interface来申明一个类经过继承接口方式,从而来继承接口抽象方法假如一个类只由抽象方法和全局常量组成,那么这种情况下不会将其定义为一个抽象类只会定义为一个接口,所以接口严格来讲属于一个特殊类,而这个类里面只有抽象方法和全局常量,就连结构方法也没有因为接口里面存在抽象方法,所以接口对象不能直接使用关键字new进行实例化接口使用标准以下1接口能够多继承,如//使用是interface Cextends A,extends2接口必须要有子类,但此时一个子类能够使用implements关键字实现多个接口;3接口子类假如不是抽象类,那么必须要覆写接口中全部抽象方法;4接口对象能够利用子类对象向上转型进行实例化注意,接口中访问权限只有一个public,即定义接口方法和全局常量时候就算没有写上public,那么最终访问权限也是public,注意不是default若子类中没用public修饰,则访问权限变严格了,给子类分o配是更低访问权限所以,在定义接口时候强烈提议在抽象方法前加上publico参数抽象类接口接口完全是抽象的它根本默认的方法实现它可以有默认的方法实现不存在方法的实现子类使用extends关键字来继承抽象子类使用关键字类如果子类不是抽象类的话,它需implements来实现接口实现它需要提供接口中所有声明要提供抽象类中所有声明的方法的实的方法的实现现构造器抽象类可以有构造器接口不能有构造器=江济卬9*的反印除了你不能实例化抽象类之外,它和垃曰士仝木闩刑n与正吊Java类的区别普通Java类没有任何区别接口『全不同的类型岫缶
七、土=UP-一-接口方法默认修饰符是访问修饰符抽象方法可以有public,protected、/ALD I和defau啮/修饰符PubhC飓以期其匕修L巾付抽象方法可以有main方法并且我们可接口没有main方法,因此我main方:去以运行它们不能运行它抽象方法可以继承一个类和实现多个接口只可以继承一个或多个多继承接口其它接口接口是稍微有点慢的,因为速度它比接口速度要快它需要时间去寻找在类中实现的方法如果你往抽象类中添力惭的方法,你如果你往接口中添加方法,可添加新方法以给它提{共默认的实现因此你不那么你必须改变实现该接口需要改变你现在的代码的类.塑型15塑型type-casting又称为类型转换方式将对象暂时当成更通常对象来对待,并不改变其类型只能被塑型为父类类型当一个类对象被塑型为其父类后,它提供方法会降低方法查找——总是在变量申明时所属类中进行查找多态
16.多态定义指允许不一样类对象对同一消息做出响应即同一消息能够依照发送对象不一样而采取多个不一样行为方式发送消息就是函数调用多态存在三个必要条件
一、要有继承;
二、要有重写;
三、父类引用指向子类对象多态性有两种1编译时多态性对于多个同名方法,假如在编译时能够确定执行同名方法中哪一个,则称为编译时多态性.2运行时多态性假如在编译时不能确定,只能在运行时才能确定执行多个同名方法中哪一个,则称为运行时多态性具备继承关系多态调用在继承链中对象方法调用存在一个优先级this.showO super.showO、this.showsuperOssuper.showsuperOs o虚方法调用
17.Java虚方法你能够了解为java里全部被overriding方法都是virtual,全部重写方法都是override虚方法和抽象方法并不是同一个概念
18.1/0流Java中流,能够从不一样角度进行分类按照数输入流和输出流按照处理数据单位不一样能够分为字节流和字符流按照实现功效不一样能够分为节点流和处理流输出流从程序输出到文件输入流从文件输入到程序字节流一次读入或读出是8位二进制字符流一次读入或读出是16位二进制Jdk提供流继承了四大类Inputstream字节输入流,Outputstream字节输出流,Reader字符输入流,Writer字符输出流惯用类和方法FileWriter writer=new FileWriterfileName;;writer.closeFileWriter writer=new FileWriterfilename,true;〃追加重复内容BufferWriter out=new BufferWriternewFileWriterfileName;//缓;申器流,高效BufferReader in=new BufferReadernewFileWriterfileName;DataOutputStream out=new DataOutputStreamnew FileOutputStreamfileName;//写DatalnputStream out=new DatalnputStreamnew FilelnputStreamfileName;〃读还能够嵌套一个BufferedlnputStream,提升效率对象序列化写对象ObjectOutputStream ofsi=new ObjectOutputStreamnewFileOutputStreamofs;从文件中读对象Objectinputstream ifsl=new ObjectlnputStreamnewFilelnputStreamifs;迭代遍历lteratorStudent i=students.values.iteratorO;whilei.hasNext;ofsl.writeObjecti.next}.集合19Collection是最基本集合接口List接口和Set接口父接口,一个Collection代表一组Object,即Collection元素ElementsSet接口一样是Collection接口一个子接口,它表示数学意义上集合概念Set中不包含重复元素,即Set中不存两个这么元素el和e2,使得el.equalse2为trueMap:key-value键值对,key不允许重复,value能够
1、严格来说Map并不是一个集合,而是两个集合之间映射关系
2、这两个集合没每一条数据经过映射关系,我们能够看成是一条数据即Entrykey,valueo Map能够看成是由多个Entry组成
3、因为Map集合即没有实现于Collection接口,也没有实现Iterable接口,所以不能对Map集合进行for-each遍历接口实现历史集合类Set HashSetTreeSetListArrayList VectorLinkedListStackMap HashMapHashtableTreeMap Properties多线程
20.两种实现方式新建一个继承Thread类线程类,其中有一个重写run方法新建一个实现Runnable接口类,这个类在新线程中运行NewThread(t).start线程中数据共享只用一个Runnable对象为参数创建多个线程,new Thread(对象名,“线程名”[start线程同时控制锁旗标synchronized(对象){代码段},能够放在run方法里,也能够放在共享资源类中作为一个方法public synchronized[type][name](){},泛型21泛型,即“参数化类型一提到参数,最熟悉就是定义方法时有形参,然后调用此方法时传递实参那么参数化类型怎么了解呢?顾名思义,就是将类型由原来详细类型参数化,类似于方法中变量参数,此时类型也定义成参数形式(能够称之为类型形参),然后在使用/调用时传入详细类型(类型实参)把类重新设计,使用泛型,强制转换错误将被编译器捕捉,而不是在运行时犯错造成程序瓦解public classBoxT{private Tt;//T standsfor Typepublicvoid addTt{this.t=t;}public Tget{return t;.参数传递22Java中只存在值传递假如参数类型是原始类型,那么传过来就是这个参数一个副本,也就是这个原始参数值,这个跟之前所谈传值是一样假如在函数中改变了副本值不会改变原始值假如参数类型是引用类型,那么传过来就是这个引用参数副本,这个副本存放是参数地址假如在函数中没有改变这个副本地址,而是改变了地址中值,那么在函数内改变会影响到传入参数假如在函数中改变了副本地址,如new一个,那么副本就指向了一个新地址,此时传入参数还是指向原来地址,所以不会改变参数值分以下四种情况进行讨论假如传原始类型,且不希望改变值,那么就直接传递即可假如传原始类型,且希望改变值,那么必须将其变成引用类型,建一个类生成两个对象使其组员变量等于原始数据,操作这两个对象即可,过程变得比较繁杂假如传引用类型,且不希望改变其值,则必须new一个新对象,用该对象引用进行操作;假如传引用类型,且希望改变其值,直接传入对象引用即可.关于父子类结构函数23父类结构函数不能被子类继承、重写,使用super调用父类结构器语句必须是子类结构器第一条语句.假如子类结构器没有显式地调用父类结构器,则将自动调用父类默认(没有参数)结构器.假如父类没有不带参数结构器,而且在子类结构器中又没有显式地调用父类结构器,则java编译器将汇报错误对于父类私有化属性,在子类中只能经过调用父类结构器对其进行赋值,不能经过父类对象调用父类私有化属性这就是为何要用super对父类私有化属性进行赋值基本型别大小最小值最大值booleanchar16-bit Unicode0Unicode2Al6-1byte8-bit-128+127short16-bit-275+275-1int32-bit-2A31+231-1八long64-bit-2A63+263-1八float32-bit IEEE754IEEE754double64-bit IEEE754IEEE754void.强制转换4在Java中因为继承和向上转型,子类能够非常自然地转换成父类,不过父类转换成子类则需要强制转换因为子类拥有比父类更多属性、更强功效,所以父类转换为子类需要强制那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间强制类型转换是有条件当我们用一个类型结构器结构出一个对象时,这个对象类型就已经确定,也就说它本质是不会再发生改变了在Java中我们能够经过继承、向上转型关系使用父类类型来引用它,这个时候我们是使用功效较弱类型引用功效较强对象,这是可行不过将功效较弱类型强制转功效较强对象时,就不一定能够行了基本数据类型之间强制类型转换java规范强烈不提议布尔型和整型或者浮点型进行转化,很轻易犯错
5.关于static static方法属于整个类,它不能操纵和处理属于某个对象成员变量,只能处理属于整个类组员变量,即static方法只能处理本类中static变量或调用static方法,调用权限6public是公共方法,在你这个项目里面你全部类都能访问这个方法,不加话就是默认default这个是只能在你当前包里才能调用这个方法[private:Java语言中对访问权限限制最窄修饰符,通常称之为“私有”被其修饰属性以及方法只能被该类对象访问,其子类不能访问,更不能允许跨包访问
2.default:即不加任何访问修饰符,通常称为“默认访问权限”或者”包访问权限”该模式下,只允许在同一个包中进行访问
3.protected:介于public和private之间一个访问修饰符,通常称之为“保护访问权限”被其修饰属性以及方法只能被类本身方法及子类访问,即使子类在不一样包中也能够访问
4.publicJava语言中访问限制最宽修饰符,通常称之为“公共”被其修饰类、属性以及方法不但能够跨类访问,而且允许跨包访问数据初始化
7.不论程序有没有显示初始化,Java虚拟机都会先自动给它初始化为默认值对于数组:
1、整数类型byte、short,int.long基本类型变量默认值为
02、单精度浮点型float基本类型变量默认值为
0.0fo
3、双精度浮点型double基本类型变量默认值为
0.0d
04、字符型char基本类型变量默认为7uOOOOno
5、布尔性基本类型变量默认值为fa Iseo
6、引用类型变量是默认值为nulL
7、数组引用类型变量默认值为nulL当数组变量实例后,假如没有没有显示为每个元素赋值,Java就会把该数组全部元素初始化为其对应类型默认值注意对于单个数据,假如不进行初始化不能对其进行操作,编译时报错,数组遍历三种方法8l.for循环2,for-each语句遍历,fordatatype x:arrayname
3.迭代器Iterator遍历List list=new ArrayList;;Iterator iterator=list.iteratorwhile iterator.hasNext{int i=lnteger.parselntiterator.next.toString;System.out.printlni;,方法重载和重写9重载重写(覆写)区别点Overloading Overiding英乂定义方法名称相同,参数的类型或个方法名称、参数类型、返回值类型全数不同部相同对权限没有要求被重与的方法不能拥有更严格的权限范围发生在一个类中发生在继承类中方法重载所谓方法重载是指在一个类中,多个方法方法名相同,不过参数列表不一样参数列表不一样指是参数个数、参数类型或者参数次序不一样
1.在使用重载时只能经过不一样参数列表,必须具备不一样参数列表比如,不一样参类型,不一样参数个数,不一样参数次序
2.不能经过访问权限、返回类型、抛出异常进行重载
3.方法异常类型和数目不会对重载造成影响..
4.能够有不一样返回类型,只要参数列表不一样就能够了
5.能够有不一样访问修饰符方法重写当子类需要修改父类一些方法进行扩展,增大功效,程序设计者经常把这么一个操作方法称为重写,也叫称为覆写或覆盖所谓方法重写是指子类中方法与父类中继承方法有完全相同返回值类型、方法名、参数个数以及参数类型注意,重写方法时,能够增大父类中方法权限,不过不能缩小父类方法权限当父类方法为private子类不能将其重写super关键字能够从子类访问父类中内容,假如要访问被重写过方法,使用“super.方法名(参数列表)”形式调用.异常处理101Java把异常看成对象来处理,并定义一个基类作为全部异常超类在Java API中已经定义了许多异常类,这些异常类分为两大类,错误Error和异常Exceptiono Error和Exception区分Error通常是灾难性致命错误,是程序无法控制和处理,当出现这些异常时,Java虚拟机JVM通常会选择终止线程;Exception通常情况下是能够被程序处理,而且在程序中应该尽可能去处理这些异常2层次结构3处理方法Try-catch方法try块用于捕捉异常其后可接零个或多个catch块,假如没有catch块,则必须跟一个finally块catch块用于处理try捕捉到异常finally块不论是否捕捉或处理异常,finally块里语句都会被执行当在try块或catch块中碰到return语句时,finally语句块将在方法返回之前被执行编写多重catch语句块注意次序问题先小后大,即先子类后父类throws方法申明抛出异常,只是抛出异常,并没有去处理它4自定义异常创建自定义异常类•在方法中经过throw关键字抛出异常对象•假如在当前抛出异常方法中处理异常,能够使用try-catch语句捕捉并处理;不然在方法申明处经过•throws关键字指明要抛出给方法调用者异常,继续进行下一步操作在出现异常方法调用者中捕捉并处理异常•class MyExceptionextends Exception{private intdetail;MyExceptionint a{detail=a;}public StringtoStringO{return MyException[〃+detail+〃]〃public classTestMyExceptionstatic voidcomputeint athrows MyException{System,out.printin,zCalled computez,+a+〃〃;ifa10{throw newMyExceptiona;System.out.printinNormal exit!〃;}public staticvoid mainString[]args{try compute1;compute20;}catchMyException me{System.out.printin,zCaught〃+me;类继承
11.继承限制
1.java只能显示单继承,即一个类只能有一个父类
2.不允许多重继承多重继承指是一个类能够同时从多于一个父类那里继承行为和特征,Java为了确保数据安全,它只允许单继承子类只能继承一个父类,也就是说只能存在单一继承,不过却能够实现多个接口,间接实现了多重集成3,继承只能继承非私有属性和方法4结构方法不能被继承•结构方法假如子类需要继承父类含参结构函数则需要使用super命令假如父类包含多个含参结构函数则依据参数使用super命令假如父类建立了结构函数且都含有参数,则子类必须使用super命令类
12.ObjectObject类存放在java.lang包中,是全部java类Object类除外终极父类当然,数组也继承了Object类然而,接口是不继承Object类通常来说,我们所建立类都会有以下方法•protected Objectclone•boolean equalsObjectobj•protected voidfinalize•ClassgetClass•int hashCodevoidnotify。
个人认证
优秀文档
获得点赞 0