2008-02-18

Java中static、this、super、final用法

关键字: java中static、this、super、final用法
一、static   请先看下面这段程序: public class Hello{ public static void main(String[] args){ //(1) System.out.println("Hello,world!"); //(2) } }   看过这段程序,对于大多数学过Java 的从来说,都不陌生。即使没有学过Java,而学过其它的高级语言,例如C,那你也应该能看懂这段代码的意思。它只是简单的输出“Hello, world”,一点别的用处都没有,然而,它却展示了static关键字的主要用法。   在1处,我们定义了一个静态的方法名为main,这就意味 ...
2008-01-25

Java IO系统

关键字: java io系统
目录列表器 import java.io.*; public class DirList { public static void main(String[] args) { try { File path = new File("."); String[] list; if(args.length == 0) list = path.list(); else list = path.list(new DirFilter(args[0])); for(int ...
2008-01-21

对象的容纳

关键字: 对象的容纳
8.1 数组 8.1.1 数组和第一类对象 class Weeble {} // A small mythical creature public class ArraySize { public static void main(String[] args) { // Arrays of objects: Weeble[] a; // Null handle Weeble[] b = new Weeble[5]; // Null handles Weeble[] c = new Weeble[4]; for(int i = ...
2008-01-12

类再生

关键字: 类再生
我们将介绍两个达到这一目标的方法。第一个最简单:在新类里简单地创建原有类的对象。我们把这种方法叫作“合成”,因为新类由现有类的对象合并而成。我们只是简单地重复利用代码的功能,而不是采用它的形式。 第二种方法则显得稍微有些技巧。它创建一个新类,将其作为现有类的一个“类型”。我们可以原样采取现有类的形式,并在其中加入新代码,同时不会对现有的类产生影响。这种魔术般的行为叫作“继承”(Inheritance), class WaterSource { private String s; WaterSource() { System.out.println("WaterSou ...
2008-01-11

隐藏实施过程

关键字: 隐藏实施过程
包:库单元 编译一个.java文件时,我们会获得一个名字完全相同的输出文件;但对于.java文件中的每个类,它们都有一个.class扩展名。因此,我们最终从少量的.java文件里有可能获得数量众多的.class文件。 所以每个文件都有一个组件。如果想将所有这些组件(它们在各自独立的.java和.class文件里)都归纳到一起,那么package关键字就可以发挥作用)。 例如,假定文件名是MyClass.java。它意味着在那个文件有一个、而且只能有一个public类。而且那个类的名字必须是MyClass(包括大小写形式): package mypackage; public class ...
2008-01-10

数组初始化

关键字: 数组初始化
import java.util.*; public class ArrayNew { static Random rand = new Random(); static int pRand(int mod) { return Math.abs(rand.nextInt()) % mod + 1; } public static void main(String[] args) { int[] a; a = new int[pRand(20)]; prt("length of a = " + a.length); ...
2008-01-10

静态数据的初始化

关键字: 静态数据的初始化
static初始化只有在必要的时候才会进行。如果不创建一个Table对象,而且永远都不引用Table.b1或Table.b2,那么static Bowl b1和b2永远都不会创建。然而,只有在创建了第一个Table对象之后(或者发生了第一次static访问),它们才会创建。在那以后,static对象不会重新初始化。 初始化的顺序是首先static(如果它们尚未由前一次对象创建过程初始化),接着是非static对象。大家可从输出结果中找到相应的证据。 在这里有必要总结一下对象的创建过程。请考虑一个名为Dog的类: (1) 类型为Dog的一个对象首次创建时,或者Dog类的static方法/stat ...
2008-01-10

初始化和清除

关键字: 初始化和清除
class Rock { Rock() { // This is the constructor System.out.println("Creating Rock"); } } public class SimpleConstructor { public static void main(String[] args) { for(int i = 0; i < 10; i++) new Rock(); } } ///:~ class Rock { Rock(int i) { Syste ...
2008-01-09

执行控制

关键字: 执行控制
3.2.2 if-else if-else语句或许是控制程序流程最基本的形式。其中的else是可选的,所以可按下述两种形式来使用if: if(布尔表达式) 语句 或者 if(布尔表达式) 语句 else 语句 static int test(int testval) { int result = 0; if(testval > target) result = -1; else if(testval < target) result = +1; else result = 0; // match return r ...
2008-01-09

java移位

关键字: 移位
import java.util.*; public class BitManipulation { public static void main(String[] args) { Random rand = new Random(); int i = rand.nextInt(); int j = rand.nextInt(); pBinInt("-1", -1); pBinInt("+1", +1); int maxpos = 2147483647; pBinInt("maxpos", maxpos); ...
2008-01-08

检查对象是否相等与equals

关键字: 检查对象是否相等与equals
public class Equivalence { public static void main(String[] args) { Integer n1 = new Integer(47); Integer n2 = new Integer(47); System.out.println(n1 == n2); //false System.out.println(n1 != n2);//true } } ///:~ public class EqualsMethod { public static void main ...
2008-01-08

自动递增和递减

关键字: ++i, i++, --i, i--
public class AutoInc { public static void main(String [] args){ int i = 1; prt("i : " +i);// 1 prt("++i "+ ++i); // 2 prt("i++ "+i++);//2 prt("i : "+i);//3 prt("--i "+ --i);//2 prt("i-- "+i--);//2 prt("i : " + i);//1 } static void prt(String s){ System.ou ...
2008-01-08

java赋值

关键字: 主类型和对象赋值的区别
class Number { int i; } public class Assignment{ public static void main(String [] args){ Number n1 = new Number(); Number n2 = new Number(); n1.i = 9; n2.i = 47; System.out.println("1: n1.i: " + n1.i + ", n2.i: " ...