预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共28页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

北京MLDN软件实训中心联系电话:010-51283346 1、课程名称:面向对象(高级) 2、知识点 2.1、上次课程的主要知识点 1、this关键字: ·可以访问类中的属性; ·调用方法,如果调用本类中其他构造的时候,一定要放在首行,且至少留有一个构造方法作为出口; ·当前对象:表示当前正在调用类中方法的对象。 2、static关键字: ·static声明的属性是类变量,所有对象所共拥有,可以由类名称直接调用; ·static声明方法,不能调用非static操作,可以由类名称直接调用。 ·主方法的组成:publicstaticvoidmain(Stringargs[]) 3、内部类: 第(1)页共(28)页E-Mail:mldnqa@163.com 北京MLDN软件实训中心联系电话:010-51283346 ·定义在一个类内部的类,被包含的类称为内部类,包含的类称为外部类。 ·内部类可以直接访问外部类中的私有操作,但是会破坏原有程序的结构。 ·内部类可以被static修饰,修饰之后的类成为外部类 ·要是在类外部进行实例化,使用外部类.内部类 ·如果没有被修饰,需要先实例化外部类对象,再实例化内部类对象 ·可以在一个方法中定义一个内部类,这个内部类可以直接访问外部类中的私有操作,如果要访问方法中的变量, 这些变量需要使用final来修饰。 2.2、题目讲解 链表程序:完全就是引用传递及this关键字的使用。 classLink{//这属于一个链表的操作类 classNode{//每一个保存的数据都被封装在节点之中 privateStringdata;//保存的数据,现在只是String类型 privateNodenext;//保存下一个节点的引用 publicNode(Stringdata){ this.data=data;//通过构造传递具体的内容 } publicvoidaddNode(NodenewNode){ if(this.next==null){//当前节点的后面没有节点 this.next=newNode; }else{ this.next.addNode(newNode); } } publicvoidprintNode(){ System.out.println(this.data);//输出当前节点的内容 if(this.next!=null){//当前节点下还有节点 this.next.printNode(); } } publicbooleanexistsNode(Stringdata){//至少存在要查找的数据 if(data.equals(this.data)){ returntrue; }else{ if(this.next!=null){ returnthis.next.existsNode(data); } } returnfalse; } publicvoiddeleteNode(Nodeprevious,Stringdata){ if(data.equals(this.data)){//满足,则要删除 第(2)页共(28)页E-Mail:mldnqa@163.com 北京MLDN软件实训中心联系电话:010-51283346 previous.next=this.next;//空出当前节点 }else{ if(this.next!=null){ this.next.deleteNode(this,data); } } } }; privateNoderoot;//设置根节点 publicvoidadd(Stringdata){ NodenewNode=newNode(data); if(this.root==null){//判断根节点是否为空 this.root=newNode;//第一个节点为根节点 }else{ this.root.addNode(newNode); } } publicbooleanexists(Stringdata){//判断是否存在 returnthis.root.existsNode(data); } publicvoiddelete(Stringdata){//删除节点 if(this.exists(data)){//如果节点存在则删除 if(data.equals(this.root.data)){ this.root=this.root.next;//根节点后的下一个节点 }else{ this.root.next.deleteNode(this.root,data); } } } publicvoidprint(){//输出节点 this.root.printNode(); } }; publicclassLinkDemo{