摘要: 在我们编写程序的过程当中,会遇到这种情况: 比如现在有一个狗,他的功能有跑,有跳,有吃,有叫,属性有雌雄,大小,颜色等等,同时现在我们也有一个猫,上述功能她也有。这个时候我们写代码的时候,就得分别把上述的功能给猫写一遍,也要给狗写一遍,这样合理么?这就违背了面向对象复用性的原则,为了解决这类问题,我们这里引入继承这个概念,那么什么是继承?继承的概念:继承就是把某几个类具有相同属性或者功能的代码单独抽象出来放到一个类当中,当编写这些类的时候继承抽象出来的类,可以提高复用性,这个就是继承。比如说,这里我们把猫和狗的相同属性和功能抽象出来放到动物这个类当中,这个时候猫和狗就被称为子类,而动物这个类. 阅读全文
posted @ 2013-09-24 22:01 stark_javac 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 就像上一节当中我们讲到的数组工具集一样,如果我们把他看作一个类,来应用,不阻止他new函数的话,这个类我们在整个过程当中我们只是用他来当一个工具。假如每次用都要new一下产生一个新对象的话,就会显得整体很浪费内存,那么能不能让这个对象在整个过程当中只产生一个实例供我们来使用呢,因为只要整个过程一个实例就够用了。有,那就是单例设计模式。在说单例设计模式之前,我们来看一下什么是设计模式。所谓的设计模式,就是前人在解决生活中常见问题时,抽象出来的一些思考的方法,这种思考的方法能够加快我们软件的构建速度。设计模式始源于建筑行业,我们都知道建筑行业,在建筑一个物体的时候,不可能重复的拆了盖,盖了拆。这样 阅读全文
posted @ 2013-09-23 21:22 stark_javac 阅读(241) 评论(0) 推荐(0) 编辑
摘要: java是一门面向对象的语言,我们也提到过,面向对象的一个优点就在于能够提高代码的复用性,前面我们详细讲过数组的查找,排序,等等,为了提高代码的复用性,我们何不自己写一个数组的工具集,来综合下前面所学的面向对象的知识呢,这一节,我们就来写一个实例来练练手,也来加深下我们对所学知识的理解。在写程序之前,我们来想一下需求需求: 1、根据所输入的数组,进行查找,排序。 2、能够单独封装成一个类来供其他用户使用思路: 1、首先要完成对方法的封装,我们把所有的方法都放到类当中,这个时候我们需要定义一个类Arrtool 2、此时类需要一个构造方法进行初始化。 3、对相应功能分离封装到函数当中,并... 阅读全文
posted @ 2013-09-22 14:10 stark_javac 阅读(238) 评论(0) 推荐(0) 编辑
摘要: 在我们之前学习语句的时候,我们讲过一种比较特殊的语句块,那就是局部代码块。局部代码块的作用是什么呢,就是把临时使用的变量放在里面,之后执行完之后,局部代码块中定义的变量会直接被释放,这样就避免了那些我们只用一次的变量的释放。那么类当中有么有一种比较特殊的代码块么?肯定是有的,我们现在就来看下,在类方法外部定义的类的代码块都有什么作用?代码实例:class ClassScop{ int num; String name; /** *类内部的代码块开始 */ { System.out.println("Hello World!"); } ClassScop(int num,St 阅读全文
posted @ 2013-09-21 20:55 stark_javac 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 上一节当中描述了static的用法,以及成员变量和静态变量的区别。但是static除了可以修饰成员变量使之成为静态变量外,他还可以同时修饰函数,使之成为静态函数,我们来看一个例子: class StaticDemo{ String name; int a ; static String xiangmu="xiangmu"; /** *这个方法被static关键词修饰之后,就变成了静态方法,这里我们需要注意的一点就是static声明的方法当中,只能够调用 *静态变量,因为他是在类没有被初始化为对象之前而存在的,所以这个静态方法当中不能使用this或者super之类的关键词 * 阅读全文
posted @ 2013-09-21 09:23 stark_javac 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 讲完了this这个关键字,我们继续前进,这节我们讲另外一个比较重要的东东,java当中的static,在main函数前面这个家伙都在那里一直挺着,你瞅见了么,你就不好奇么,你就不想知道他杵在那里做什么么?好,我们来看下,他到底是作什么的。看一下我们的代码:class StaticDemo{ int name; String country; void speak() { System.out.print(name+"sssss"+country); }}class StaticShowDemo{ public static void main(String[] args) 阅读全文
posted @ 2013-09-20 22:17 stark_javac 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 讲完了this这个关键字,我们继续前进,这节我们讲另外一个比较重要的东东,java当中的static,在main函数前面这个家伙都在那里一直挺着,你瞅见了么,你就不好奇么,你就不想知道他杵在那里做什么么?好,我们来看下,他到底是作什么的。看一下我们的代码:class StaticDemo{ int name; String country; void speak() { System.out.print(name+"sssss"+country); }}class StaticShowDemo{ public static void main(String[] args) 阅读全文
posted @ 2013-09-20 22:17 stark_javac 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 在我们讲构造函数的时候,我们知道,如果同时在java的堆内存当中,同时存在好几个刚进内存,但是又没来得及初始化的同一个类的对象。在这种情况下,那么如何去区分栈内存当中的构造函数是属于那个对象的呢,其实从底层上来讲的话,JVM已经为我们分好了,然后给了我们一个this,这个this是一个关键字,也是区分调用该构造函数的时候,此时的构造函数的所属对象是谁。示例:class ThisDemo{ int num; String name; ThisDemo(int n) { num = n; } ThisDemo(String s) { name = s; } ThisDemo(String... 阅读全文
posted @ 2013-09-20 19:27 stark_javac 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 在java当中目前我们学到的一个比较特殊的函数就是main函数,他是JVM执行的入口,所以书写的格式是固定的,现在我们来介绍java中另一个比较特殊的函数:构造函数:构造对象的时候调用的函数,作用,给对象进行初始化。 创建对象的时候必须用构造函数进行初始化,但不显示的声明构造函数的时候,默认会有一个空参数的构造函数: Person(){} 如果显式声明一个构造函数的时候,类就调用这个构造函数。同时,那个原来默认的构造函数也会被取消,函数的相同不相同就跟类名还有参数的个数和顺序决定的。 特点: 1、构造函数名与类名相同 2、不用定义返回值类型 3、没... 阅读全文
posted @ 2013-09-19 22:20 stark_javac 阅读(1767) 评论(0) 推荐(0) 编辑
摘要: 在以往几节当中我们讲到了什么是类,类就是对一类事物的描述,比如现在我们有一个人类class Person{ /** *这里我们分别在name和age上加上了元素的访问权限 *这里的private是指,这个变量只能被当前类访问,其他的地方是没法访问到的,即使是当前类的一个实例化对象 *也是没法访问的。那么这里就有一个问题了,我们定义了一个成员变量确没法访问: *这里举一个详细的例子来讲: *我们有一个房子,房子里面放了很多的钱,我们的房子有一个门。在我们没有给这个门加任何的限制的时候,任何人 *都是可以进出的,也就是说他默认的就是public修饰符,这样是不是很危险呢?此时为了安全期间,我们就用 阅读全文
posted @ 2013-09-19 20:51 stark_javac 阅读(160) 评论(0) 推荐(0) 编辑