首页 > 分享 > 用Java创建一个猫及狗对象

用Java创建一个猫及狗对象

public interface ILink { //设置泛型

public void add(E e); //添加数据

public int size(); //获取数据的个数

public boolean isEmpty(); //判断是否空集合

public Object[] toArray(); //将集合元素以数组的形式返回

public E get(int index); //根据索引获取数据

public void set(int index, E data); //修改索引数据

public boolean contains(E data); //判断数据是否存在

}/***@authorGu

* @cracked 2020-03-25 9:24*/

class LinkImpl implements ILink { //负责链表的操作//将Node定义为内部类,表示Node类只为Link类

private class Node { //负责数据与节点关系的匹配

private Object data; //保存节点的数据

private Node next; //保存下一个节点

publicNode(Object data) {this.data =data;

}//第1次调用:this = Link.root//第2次调用:this = Link.root.next;//第3次调用:this = Link.root.next;

public void addNode(Node newNode) { //处理节点关系

if(this.next == null) { //当前节点下一个为空

this.next =newNode;

}else{ //现在当前节点的下一个不为空

this.next.addNode(newNode);

}

}//第一次调用:this = Link.root//第一次调用:this = Link.root.next

public voidtoArrayNode() {

LinkImpl.this.retData[LinkImpl.this.foot++] = this.data;if(this.next != null){ //现在还有下一个节点

this.next.toArrayNode();

}

}//第一次调用:this = Link.root//第一次调用:this = Link.root.next

public booleancontainsNode(Object search) {if(search.equals(this.data)){ //找到了

return true;

}else{if(this.next != null) { //当前节点之后

return this.next.containsNode(search);

}else { //没有节点

return false;

}

}

}//第一次调用: this = Link.root//第一次调用: this = Link.root.next

public Object getNode(intindex){if(LinkImpl.this.foot++ ==index) {return this.data;

}else{this.next.getNode(index);

}return null;

}public void setNode(intindex,Object newData) {if(LinkImpl.this.foot++ == index) { //索引相同

this.data =newData;return ; //结束

}else{if(this.next != null) {this.next.setNode(index,newData);

}

}

}//第一次调用:this = Link.root.next,previous = Link.root;//第二次调用:this = Link.root.next.next,previous = Link.root.next;

public voidremoveNode(Node previous,Object data) {if(this.data.equals(data)) { //当前节点为要删除节点

previous.next = this.next; //删除当前了

}else{this.next.removeNode(this,data);

}

}

}//----------------以下为link类------------// private Object[] retData; //返回类型

private int foot = 0; //操作脚标

private int count = 0; //当前的保存个数

private Node root; //属于根节点,没有根节点就无法进行数据的保存

public voidadd(Object data) {if(data == null) {//人为的追加了规定,不允许存放空值

return ; //方法结束调用

}//如果要想进行数据的保存,那么就必须将数据封装在Node节点类里面//如果没有封装,则无法确认好节点的先后顺序

Node newNode = newNode(data);if(this.root == null) { //当前并没有根节点

this.root = newNode; //第一个节点设置为根节点

}else{ //根节点已经存在了//应该把此时的节点顺序的处理交给Node类自己完成

this.root.addNode(newNode);

}

count++;

}public int size() { //取得元素个数

return this.count;

}public booleanisEmpty() {return this.root == null && this.count == 0;

}public booleancontains(Object search) {//没有要查询的内容以及链表为空

if(search == null || this.root == null) {return false;

}return this.root.containsNode(search);

}publicObject[] toArray() {if(this.count == 0) {return null;

}//现在链表中存在有数据,则开辟指定长度的数组//该数组一定要交给Node类进行处理

this.retData = new Object[this.count];this.foot = 0; //进行清零的处理,需要进行脚标操作

this.root.toArrayNode(); //将数据的取出处理交给Node类完成

return this.retData;

}public void set(intindex,Object newData) {if(index >= this.count){ //超过了保存的个数

return ; //结束方法调用

}this.foot = 0;this.root.setNode(index,newData);

}public E get(intindex) {if(index >= this.count){ //超过了保存的个数

return null;

}this.foot = 0;return (E) this.root.getNode(index);

}public voidremove(Object data) {if(this.contains(data)){ //如果该数据存在则进行删除处理//首先需要判断要删除的是否为根节点数据

if(this.root.data.equals(data)) { //首先需要判断

this.root = this.root.next; //根节点变为下一个节点

}else { //不是根节点

this.root.next.removeNode(this.root,data);

}this.count--;

}

}

}

相关知识

Java面向对象
用Java创建一个猫及狗对象
JAVA面向对象编程——学生喂养三种宠物:猫、狗和鸟
Java的面向对象特性练习题:编写一个宠物商店程序
java编程思想=>对象的创建和生命周期
面向对象编程——以猫狗宠物商店出发
14天Java基础学习——第6天:面向对象编程(类与对象)
JavaScript请用对象字面量的形式创建一个宠物狗对象,具体信息如下。
java多线程面试题整理及答案
js练习题:对象字面量的形式创建一个名字为可可的狗对象

网址: 用Java创建一个猫及狗对象 https://m.mcbbbk.com/newsview676793.html

所属分类:萌宠日常
上一篇: 太原买猫狗的宠物市场在哪里?这里
下一篇: 狗屋宠物世界专业的宠物狗店