【奋斗第二天】菜鸟学Java之我的面向对象观续
昨天写了用面向对象的思想去分析一个实际的问题,呵呵,那么今天就就类和对象做一个详细的讨论。
昨天说了在CS中人物可能是一个抽象类或一个接口,而各种各样的人物就是继承或实现了这个接口,而说到这里我们还在讨论类,还没有涉及到对象,那么什么时候产生的对象呢?那是咱登陆了CS后选择了一个人物,然后再我们选好的同时就new出了一个对象,所以基于这个观点我们可以知道,类是一个广泛的概念,而对象是一个个体的概念,它对应了某个实体。比如说人类就是一个类,而我就是一个对象,嘿嘿。
在Java中可以通过new关键字来生成一个对象,而此时对应着这个对象应该有一个名字或者是别名,而这个就是这个对象的引用,如,Test t = new Test();这里面t就是对象的引用,可以通过t来访问这个新的对象。
今天还学了多态的概念,总结了多态的几个关键步骤:
1.要有继承:多态必须是伴随着继承的。没有继承多态无从说起。
2.要有重写:此处的重写即为方法的重写。
3.父类引用指向子类对象:即把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。也就是说,父亲的行为像儿子,而不是儿子的行为像父亲。
对于接口也有了不少新的认识,比如说有时候用接口来实例化一个对象,这样对于这个对象而言,此接口实例出的对象只暴露了这个对象的相关方法,屏蔽了一些对所需要操作无用的方法,避免了错误的发生,嘿嘿。
相关文档:
用C的人一定知道__FILE__和__LINE__,但是Java中 并没有这样的定义,有时候调试多线程就很不方便,没办法,自己动手,丰衣足食~用下面的函数取得当前行号。
函数:
/**
*得到Exception所在代码的行数
*如果没有行信息,返回-1
*/
public static int getLineNumber(Exception e){
StackTraceElement[] trace =e.getStac ......
1.
BufferedReader in = new BufferedReader(new FileReader("远程文件"));
in.readLine() ;
l 使用 Java 操作文本文件的方法详解
http://java.ccidnet.com/art/3737/20041108/523627_1.html
l FileReader 是什么类?和 FileInputStream 有什么不同???
ht ......
关于volatile
我们知道,在Java中设置变量值的操作,除了long和double类型的变量外都是原子操作,也就是说,对于变量值的简单读写操作没有必要进行同步。
这在JVM 1.2之前,Java的内存模型实现总是从主存读取变量,是不需要进行特别的注意的。而随着JVM的成熟和优化,现在在多线程环境下
volatile关键字的使用变得非常重 ......
package com.softeem.jbs.lesson4;
import java.util.Random;
/**
* 排序测试类
* 排序算法的分类如下:
* 1.插入排序(直接插入排序、折半插入排序、希尔排序);
* 2.交换排序(冒泡泡排序、快速排序);
* 3.选择排序(直接选择排序、堆排序);
* 4 ......