- 博客(98)
- 资源 (6)
- 收藏
- 关注
原创 第十八讲-多态
1.对于父类的属性,子类都继承下来了。2.对于父类的方法,子类也都继承下来了。3.父类有的,子类也有,但子类可以改变。子类对继承下来的方法可以覆盖掉(重写overwrite)。子类对象再次调用这个方法时,就是调用子类的方法而非父类的。4.方法覆盖原则:a)首先要存在继承;b)对父类继承下来的方法进行重写。要求同名同参同返回值,权限不能过低;5.多态基于:a)向上转型。父
2016-03-23 11:24:38 526
原创 第十七讲-继承
1.单继承。java只允许继承一个类。继承类为子类,被继承类称为父类。2.java使用extends关键字。3.当生成子类对象时,调用子类构造方法。子类构造方法默认调用父类无参数的构造方法super()。如果父类没有无参构造方法,编译出错。4.子类构造方法首行可以使用super(参数)显示调用特定参数的父类构造方法。5.super表示父类对象的引用。6.java强制在子类构造方
2016-03-22 23:15:32 468
原创 第十六讲-方法重载
1.方法重载=overload表示2个或多个方法名字相同,但参数不同。这些方法称为重载方法;方法参数不同:(1)参数个数不同(2)参数类型不同(boolean,int和int,boolean由于顺序不同,也为参数类型不同)2.方法返回类型对重载没有任何影响。
2016-03-22 21:56:51 537
原创 第十五讲-方法参数
1.先有类,后有对象(Object),对象又叫做实例(Instance)2.类包含2个部分:属性以及方法。属性一般用名词。方法一般用动词。3.如果一个java文件定义多个类,最多有一个类是public。可以都是非public。main方法一般放在public类中。4.应用传递后,出入值。对对象属性的改变反馈到所有指向对象的引用。5.原生类型传入值,形参和实参没什么交互。6.ja
2016-03-22 21:37:35 428
转载 圣思源-张龙-Java SE 第十一讲(面向对象之封装) 续二
Java SE 第十一讲1. 如果一个类包含了属性与方法,那么该类的每一个对象都具有自己的属性,但无论一个类有多少个对象,这些对象共享同一个方法。2.关于方法参数传递的总结:对于 Java 中的方法参数传递,无论传递的是原生数据类型还是引用类型, 统一是传值( pass by value)。3. 什么类型的引用就能指向什么类型的对象,比如 People
2016-03-21 16:06:58 631
转载 圣思源-张龙-Java SE 第十讲(面向对象之封装) 续
Java SE 第十讲1. 类中的属性又叫做成员变量( member variable),属性用英文表示为property 或者attribute。2. 对象( Object) 又叫做实例(Instance)。生成一个对象的过程又叫做实例化。3. 命名约定a) 类: 首字母大写,如果一个类名由多个单词构成,那么每个单词的首字母都大写,中间不使用任
2016-03-21 16:01:21 632
转载 圣思源-张龙-Java SE 第九讲(面向对象之封装)
Java SE 第九讲1.面向对象程序设计的三大基本特征:继承( Inheritence)、封装( Encapsulation)、多态( Polymorphism)2. 封装:类包含了数据与方法,将数据与方法放在一个类中就构成了封装。3. 如何定义类?修饰符 class 类的名字{//类的内容( 包含了属性与方法)}4. 方法。如何定
2016-03-21 15:55:26 606
转载 圣思源-张龙-Java SE 第八讲(理解面向对象程序设计)
Java SE 第八讲1. break 语句: 经常用在循环语句中,用于跳出整个循环,执行循环后面的代码。2. continue 语句:经常用在循环语句中,用于跳出当前的这个循环( 或者是跳出本次循环),开始下一次循环的执行。3. break 与 continue 可以搭配标签使用, 在实际开发中,根本没有人会将 break 与 continue搭配标签
2016-03-21 15:51:59 883
转载 圣思源-张龙-Java SE 第七节(流程控制语句 续 Flow Control Statement Cont.)
Java SE 第 7 讲1. Java 中的循环控制语句一共有 3 种,分别是 while,do… while 以及 for 循环。2. while 循环,形式为:while(布尔表达式){//待执行的代码}3. do…while 循环,新式为:do{//待执行的代码}while(布尔表达式);4. whil
2016-03-21 15:48:45 471
转载 圣思源-张龙-Java SE 第六节(流程控制语句 Flow Control Statement)
Java SE 第六节1. 条件运算符( 三元表达式),其形式为:type d = a ? b : c;具体化形式为: int d = 2 2. 轻量级的文本编辑器:UltraEdit、Editplus、vi、vim、gvim3. 流程控制语句if 的用法为:第一种形式:if(布尔表达式){//待执行的代码}第二种形式:
2016-03-21 15:46:11 606
转载 圣思源-张龙-Java SE 第五讲(运算符续 Operator cont.).pdf
Java SE 第五讲:1. 关系运算符: 大于( >)、小于()、等于(==)、不等于(!=)、大于等于(>=)、小于等于( ),关系运算的结果是个 boolean 值。2. 逻辑运算符: 重点讲解两个,逻辑运算符本身也返回一个 boolean值。1) 逻辑与: 使用&&表示, 逻辑与是个双目运算符(即有两个操作数的运算符),只有当两个
2016-03-21 15:16:13 609
转载 圣思园-张龙-Java SE 第四讲(运算符 Operator)
Java SE 第四讲: 1. 当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。比如,参与运算的变量中,有整型int,有双精度浮点型double,有短整型short,那么最后的结果类型就是double。 2. int a = 1; int b = 2; double c = (double)a / b; 上面的代码中,a与b
2016-03-21 00:03:12 907
转载 圣思园张龙-Java SE 第三讲(原生数据类型使用陷阱 Pitfall of Primitive Data Type)
Java SE 第三讲: 1. Java中的原生数据类型共有8种: 1) 整型:使用int 表示。(32位) 2) 字节型:使用byte表示。(表示-128~127之间的256个整数, 8位)。 3)短整型:使用short表示。(16位) 4)长整型:使用long 表示。(64位) 5)单精度浮点型:使用float表示。所谓浮点型,指的就是小数,也叫做实数,比如1
2016-03-20 23:37:02 577
转载 圣思园张龙-Java SE 第二讲(原生数据类型 Primitive Data Type)
Java SE 第二讲: 1. Windows: notepad, editplus, ultraedit, gvim Linux: vi, vim, gedit 2. Java中的数据类型分为两大类: 1) 原生数据类型 (Primitive Data Type) 2) 引用类型(对象类型) (Reference Type) 3. 变量与常量:
2016-03-20 23:33:13 620
转载 Java SE 第一讲(Java SE入门、JDK的下载与安装、第一个Java程序、Java程序的编译与执行)
Java SE 第一讲: Java SE:Java Standard EditionJava ME: Java Mobile EditionJava EE:Java Enterprise Edition Java是由Sun公司推出的(今年初被Oracle公司收购)。 收购价格:74亿美金 J2SE、J2ME、J2EE JDK:Java Develop
2016-03-20 23:27:45 602
原创 非递归遍历二叉树小结
从步骤的难易程度看,先根非递归最简单了。中根非递归和后根非递归是类似的。非递归使用栈的出栈和进栈操作将递归的效果做出来了。左孩子和右孩子,根这3个对象的进栈顺序是独特的。不能随意改变。想起一句话:做一个优秀的工程师,你就成功了。
2016-01-20 17:27:35 400
原创 后根非递归遍历
因为有了中根非递归遍历的步骤,在最初设计的时候,考虑了“左右孩子与根“入栈的顺序。中根入栈的顺序是”右根左“,则后根入栈的顺序则是”根右左“。通过草稿模拟整个过程,发现后根遍历的步骤与中根遍历的步骤,仅仅在上面所说的入栈顺序上。这就避免了非递归遍历二叉树造成的思路不一致性。人们总想要一致的步骤去解决同一类型的问题。具体的设计步骤如下:根r入栈swhile
2016-01-20 17:13:08 474
原创 中根非递归遍历二叉树
在先根非递归中,根入栈后弹出,访问,右孩子与左孩子进栈,顺序很清楚。但是中根非递归与后根非递归中,根入栈后如果弹出不能访问,这是一个困惑的地方。为了更明晰地,更统一3种非递归设计思路。均可以采用入栈,弹出,左右子树入栈这种基本步骤。每个步骤需要仔细在纸上演示设计。经过一些例子演示。设计一种中根非递归的解决步骤:根r入栈swhile(s不空){栈顶he
2016-01-20 12:13:33 494
原创 先根非递归遍历二叉树
递归是自己调用自己,使用同一的办法解决子问题。非递归则不再自己调用自己了。使用栈模拟递归调用的过程。如对先根遍历,设计其非递归步骤:设置栈ss.enStack(root)//根入栈while(s不空){栈顶head出栈,访问栈顶s.enStack(head.right)//非空右子树入栈s.enStack(head.left)//
2016-01-20 11:42:14 437
原创 遍历二叉树小结
二叉树将其分为根(B,base),左子树(L,left),右子树(R,right)表示。则遍历树就是遍历B,L和R的过程,对3个组件进行排列,实际有3*2*1=6种。DLR,LDR,LRDRLD,RDL,DRL其本质类似。默认情况,将L和R的顺序确定下来,先L后R。则只剩下3种常说的,先根,中根,后根。递归的思路:递归就是自己调用自己,用同样办法解决子问题。如先根遍
2016-01-20 10:37:02 326
原创 二叉链表和三叉链表
前面创建二叉树时,Node的定义中包含左右连个后继,则这种链表就是二叉链表。三叉链表在二叉链表节点基础上,增加一个父亲前驱。这样给定任何一个节点,就可以访问到它的父亲。
2016-01-20 10:23:53 4794
原创 完全二叉树用数组存
完成二叉树因为其编号从上到下,从左到右依次排放节点。所以直观上节点是“紧密”存储在一起的。任何一颗二叉树当然可以使用链式存储。单完全二叉树因其紧密存储的特点,可以使用一位数组存储。只需要按照层序依次将节点放入队列中就ok了。按层访问二叉树在前面已经介绍,但是访问队列是临时的,采取了出队操作。这里要保存数据的话,就不要出队操作了。无论是链式存储还是数组存,都需要访问里
2016-01-20 10:10:40 6123
原创 两种常用特殊二叉树
二叉树中,每个节点有0或1或2个孩子。对孩子的个数限制:如果每个内节点都有2个孩子,那么这个数就是满二叉树。如果一个满二叉树,除了最后一层,其余各层都是满的,并且最后一层或者是满,或者仅右边缺少连续若干节点,那么称为完全二叉树。满二叉树和完全二叉树都对节点进行了统一、确定的编号。每个节点在树中都有确定的位置。这2种树的性质,通过画图、推到可以容易得出。主要是高度
2016-01-20 09:42:38 538
原创 层序遍历二叉树-测试
java代码://层序遍历public void levelOrder(){Queue q = new LinkedList();if(root!=null)q.add(root);//根入队列while(!q.isEmpty())//队列不空{Node n = q.peek();if(n.left!=null)q.add(n.left);//队头有
2016-01-19 20:37:45 433
原创 按照层序,从左到右遍历
给一个二叉树root,从root开始,按照层序从上到下,从左到右打印。对于先序创建的二叉树:124##5##3层序遍历节点的顺序为:12345设计一个能够完成这样的任务的执行步骤:由root,开始,打印root//第一层打印root.left打印root.right//第二层再打印root.left.left再打印root.left.right在
2016-01-19 20:11:50 472
原创 Node定义
package binarytree;public class Node {// 节点是一个包含“key-value”的对象K key;V value;Node left;Node right;boolean isNull = false;// 如果为true,则说明此节点是null节点。public Node(K k,V v){key = k;valu
2016-01-19 16:50:22 791
原创 注意-引用复制
在create(Node n)方法中,如果将树根root传入,变量n会复制root的值。n是树根,而root仍然是null。n和root是2个不同的变量。所以,方法需要返回树根,以此改变root的值。
2016-01-19 16:36:57 350
原创 二叉树创建-代码
package binarytree;import java.util.ArrayList;public class BinaryTree {// 二叉树本身的成员Node root;int size;// 操作// 初始化空树public BinaryTree() {root = null;size = 0;}// 建立的树的初始节点数组Arr
2016-01-19 16:33:55 2432
原创 测试创建 二叉树
package test;import java.util.ArrayList;import org.junit.Before;import org.junit.Test;import binarytree.BinaryTree;import binarytree.Node;public class TestBinaryTree {BinaryT
2016-01-19 16:29:59 1058
原创 二叉树创建-思路
输入数据的格式为: 124##5##3 其中#表示null节点。 采用先序创建,即根左右的方式递归。核心的递归方法包含一个Node参数。假设是这样的: Node create(root r) { //首先拿过来一个节点 Node n = getNextNode(); //判定这个是不是null节点 if(node.isNullNode)
2016-01-19 09:48:29 816
原创 二叉树创建-前言
如果我自己都理不清一个算法的步骤,什么时候开始,什么时候结束,那么就不可能写出正确的代码。解决一个算法或者操作的时候,首先想想,再拿出笔画一画,我的程序需要对输入数据做怎样的处理,我需要什么样的目标,通过哪些步骤才能最终形成这个目标呢?如果弄懂了这些步骤,那么一个正确的算法自然就出现了。所以,正确的算法或程序就是编程者的孩子,编写程序的人知道任何与自己孩子有关的事情。
2016-01-19 09:40:32 251
原创 二叉树定义--有序树
二叉树拥有的基本成员: 树根 左子树 右子树 元素个数 。。。 支持操作: 增删改查。。。二叉树是一种特殊的树,它的左右子树不能交换。为了方便表示二叉树,使用“括号”表示法如(A(B,C))表示包含3个节点的二叉树,A是跟,B是左孩子,C是右孩子。就像前面说的,二叉树重要的应用是作为一种符号表存储key-value.以便支持根据Key查找value 。从这里就把节点定义为包含一个key
2016-01-18 15:07:47 3482
原创 二叉树(binary tree)-重要性
二叉树是一种最简单、最基础、最重要的树结构。它能: 支持强大的搜索算法; 链式结构按照需要分配内存; 有规则的存储对象; ….能想到的讨论集中在搜索和存储方面;它同时是一种数据结构,或数据类型,或容器,面向对象的方式思考的话,作为一个类。二叉树存储元素涉及2个普遍的,所有容器都涉及的操作:增加和删除;二叉树之所以重要,是因为它支持或拥有的操作,包括增删改查重要的操作,复杂度比完成同样功能的其
2016-01-18 10:45:22 2840
原创 特殊容器:符号表-为查找而生的结构
符号表是一种非常常见的容器的一种,或者叫变体。符号表也是存储东西的结构。只不过符号表存储的东西有点特别。它存的就是大名鼎鼎的“键值对”!俗称:key-value符号表也就是key-value组成的集合。Key-value为什么不存在列表,栈和队列中? 因为使用的场景不同!key-value的使用场景很单纯(没错,我很单纯),只是针对一种操做而生的结构————-那就是—–查找,也称searc
2015-11-02 23:07:04 684
java个人笔记总结包含45个word,绝对的原创。
2012-09-24
学生成绩管理系统,配有pl/sql developer软件,oracle数据库所有表!详细步骤!myeclipse下直接运行!
2012-09-23
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人