文章链接: 日撸 Java 三百行(总述)_minfanphd的博客-CSDN博客
day11:顺序表(一) 11.1 思考1 构造函数作用是什么?首先构造函数名与类名一样,无返回值,可多个。我在前几天敲代码时没有出现构造函数,其实在未定义构造函数时会有一个缺省无参构造函数。其构造函数最大的作用是:在创建对象时(new)初始化对象
11.2 思考2 Object类Object类是所有类的超类(一般我们创建的类都是隐式继承),所有类都可以使用Object类中的成员方法和变量,也可以重写其中的方法,例如今天的代码就重写了toString.若不重写toString方法,则会返回类名+hash值
//Object类中的toString方法
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
day12: 顺序表(二)
12.1 题目
在写顺序表的增删查时,结合顺序表的数据结构,需要多注意循环中临界取值,等于符号何时用,如在代码中的insert方法和delete方法,在判断越界时,何时取 >length和>=length,以及在循环时的临界
public boolean insert(int paraPosition, int paraValue) {
if (MAX_LENGTH == length) {
System.out.println("List is full!");
return false;
}
if ((paraPosition < 0) || (paraPosition > length)) {
System.out.println("The position " + paraPosition + " is out of bounds.");
return false;
}
// From tail to head. The last one is moved to a new position. Because length < MAX_LENGTH, no exceeding occurs
for (int i = length; i > paraPosition; i--) {
data[i] = data[i-1];
}
data[paraPosition] = paraValue;
length++;
return true;
}
public boolean delete(int paraPosition) {
if ((paraPosition < 0) || (paraPosition >= length)) {
System.out.println("The position " + paraPosition + " is out of bounds.");
return false;
}
for (int i = paraPosition; i < length -1; i++) {
data[i] = data[i+1];
}
length--;
return true;
}
day13: 链表
13.1 成员内部类
在c语言中,对链表的数据结构是用结构体来表示,在java中使用内部类来表示链表结构体,如文章中的Node类可以访问外部类中所有的成员变量和成员方法。(除此外还有局部,静态,匿名内部类)
13.2 链表的插入和删除用c语言来表示链表的插入(s)):
//c语言表示 tempNewNode->next = tempNode->next; tempNode->next = tempNewNode //java tempNewNode.next = tempNode.next; tempNode.next = tempNewNode;
删除:
//c语言 tempNode = tempNode->next->next; free(tempDeleteNode); //java tempNode.next = tempNode.next.next;
从以上的对比发现,java实现链表主要采用的是引用对象。关于链表的基本操作,因为java的util类中有链表自带的方法,很少会去敲这些代码,在写后感触很深。如链表:在c和java中链表表示不一样,但是本质的逻辑操作都是一样的,关键在于如何定义这个链表结构体。
总结:1. 逐步建立面向对象的思想 ,理解构造函数。
2. 顺序表,链表的查找插入删除 在 java实现过程中结合条件,分支语句以及常用的关键字的使用。
3.在写程序时,要对代码进行保护,考虑到可能出现的非法操作,越界等问题



