预览加载中,请您耐心等待几秒...
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{