java的一些基本概念
2008-01-05 09:06:40 来源:WEB开发网核心提示:最近想看看书,了解一下java的基本概念,java的一些基本概念,其实以前也看过,但是囫囵吞枣,this可以用于实例变量隐藏所谓实例变量隐藏,就是说当一个本地变量和一个实例变量同名时,实在有愧.然而温故以知新,学习本应就是理解深化的过程.主要看的书是《Java 2 参考大全》和《Java 2 核心技术:原理》Java基
最近想看看书,了解一下java的基本概念,其实以前也看过,但是囫囵吞枣,实在有愧.然而温故以知新,学习本应就是理解深化的过程.
主要看的书是《Java 2 参考大全》和《Java 2 核心技术:原理》
Java基本概念
一.字符类型
主要重温了一下各种字符类型占据的字节数。
short 短整型 16位 2字节
int 整型 32位 4字节
long 长整型 64位 8字节
浮点分单精度float和双精度double
float 单精度 32位 4字节
double双精度 64位 8字节
char 这一点比较非凡,java使用的不是ascii字符,也不是扩展的8位字符集,而是unicode字符集,unicode字符占据16位,2字节,可以表示人类所有发现的字符,也因为如此java可以比较方便的进行国际化,不知这个理解有无问题。
实际上char的值是个整数(0-65536),因此我们给char赋值可以用整数或者用单引号括起来的字符
顺便就看了一下UTF(unicode text format)格式,它是这样出来16位的unicode字符
前九位为0的unicode字符:一个字节
前五位为0的unicode字符:两个字节
其它:三个字节
对应的前缀编码:
0xxxxxxx Ascii码
10xxxxxx 第二或者第三个字节
110xxxxx 两字节序列中的第一个字节
1110xxxx 三字节序列中的第一个字节
二.类
类与对象:类是一个逻辑结构,对象拥有物理实体.也就是说类不占据内存空间,对象占据一定的内存空间.可以从类对象的获取说明这个问题。
Box aBox=new Box();
实际上这个过程分两步
Box aBox;
aBox=new Box();
第一步是创建一个对象,返回的aBox是一个对象的引用。
第二步才是调用构造函数,为对象分配内存空间,返回的是这个内存地址的引用,这个引用被赋给了aBox。
构造函数是如何工作的呢?
构造函数没有返回值,是因为其隐含的返回类型是类本身。
默认的构造函数自动将所有的实例变量初始化为0。
实例变量即是一个类中定义的数据或变量,类的成员是指类中定义的方法和变量。
引用是个很有意思的东西。
Box a=new Box();
Box b=new Box();
这个时候a和b对应各自的内存地址,假如
a=b;
这个时候a,b均指向同一个内存地址即b的内存地址。也就是说现在你更改a中的成员变量的值b的变量的值也随之改变;假如改变b中成员变量的值,a的对应变量也随之改变。引用只是一个内存的地址。
类中有个词语叫做抽象类,抽象类有很多含义和细节需要注重:
1。包含抽象方法的类必须声明为抽象类
2。抽象类的方法在子类中必须被覆盖,否则子类也必须声明为抽象类
3。抽象类不能有对象,不能new一个抽象类将其实例化
4。抽象类可以有抽象方法也可以有具体实现了的方法
5。抽象类可以创建对象引用
第五条非常有用,可以实现多态。李乾师兄曾讲解的设计模式中的工厂方法也就是抽象类的超类变量引用不同的子类对象。
由于接口都没有实现自身的方法,假如一个类没有实现接口中的方法,也必须定义为抽象类。
三.接口
接口只定义方法名,但是不实现方法。
接口可以声明变量,但是这些变量将是隐含的、最终的、静态的,不能由实现接口的类来改变。因此可以将共享常量在接口中定义,然后导入到多个类中。
可以使用接口引用来调用实现,这是什么意思呢?
inerface callback()
{
public void call(int p)
{
}
}
class client implements callback
{
public void call(int p)
{
}
}
public static void (String arg[])
{
<b>callback c=new client();</b>
c.call(1);
}
注重上面黑体字部分callback c=new client(), 创建了一个client对象,却声明为接口类型,这其中的意思就是c只是知道接口callback中方法,至于实现这个接口的client类还有什么其它的方法,c一概不知。这有些类似超类引用子类对象,很有用处的地方就是实现多态,很多实现这个接口的类可以用同一个接口的引用来调用。
四. 访问控制
五. 一些保留字的含义和运用
static:一般修饰类的成员,使该类成员独立于类的任何对象,使用类名即可调用。
使用static要注重:
1.static 方法仅可调用其它的static方法
2.只能访问static数据
3.不能以任何方式调用this或者super。(还不明白为什么)
this:在任何方法中都可以使用this来调用当前的对象,this总是当前对象的一个引用。
this可以用于实例变量隐藏
所谓实例变量隐藏,就是说当一个本地变量和一个实例变量同名时,实例变量就被隐藏了。比如Box的构造函数
Box( double aWidth,double aHeight , double aDepth )
{
width=aWidth;
更多精彩
赞助商链接