努力的去做好一件事,那也许就叫做成功^_^

发布新日志

  • java中的Object()类的一点认识.

    2007-09-20 12:08:01

    先讲一下:Object类,它是java中所有类的直接或者间接类的父类,是类库中所有类的父类,所以可以和任意类型的对象匹配.所以在有些场合可以使用它作为形式参数的类型.例如:equals()方法其形式参数就是一个object类型的对象.这样就可以保证任意java类都可以定义与自身对象直接相互比较的操作.在以下的例子中覆盖了equals()方法,example:

    class MyOkDate{

    int day,month,year;

    public MyOkDate(int i,int j,int k){

    day=i;

    month=j;

    year=k;

    }

    public boolean equals(Object obj){

    if(obj instanceof MyOkDate){

         MyOkDate m=(MyOkDate)obj;

         if(m.day==day&&m.month==month&&m.year==year)

         return true;

    }

    return false;

    }}

  • 内部类与匿名类

    2007-09-19 14:27:59

    Inner Class AND Anonymous Class

    内部类是定义在其他类中的类,主要作用是将逻辑上相关联的类放到一起.而匿名类是一种特殊的内部类,它没有类名,在定义类的时候就生成该对象的一个实例.由于在其他类中不会用到该类,所以不要取名字.

    在封装它的类的内部使用内部类,与普通类的使用方式相同,在其他地方使用内部类时,类名前要冠以外部类的名字才能使用,在用new创建内部类的时候,也要在new前面冠以对象变量.如:Parcle是外部类,而Destination是内部类.则可以如下方法使用内部类.

    Parcle p=new Parcle();

    Parcle.Destination d=p.new Destination("Hawaii");

    内部类与类中的域,方法一样是外部类的成员,所以在内部类中可以直接访问外部类的其他域及方法,即使它们是private的,这也是使用内部类的一个好处.如果内部类中与外部类有同名的域或者是方法,可以使用冠以外部类名.this来访问外部类中的同名成员.

    使用方法中的内部类要注意如下几点:

    1.同局部变量一样,方法中的内部类前面不能用public,private,protected,static,但可以用final and abstract.2.方法中的内部类,可以访问外部类的成员;若是static 方法中的内部类可以访问外部类的static成员.3.方法中的内部类不能访问方法的局部变量,除非是final的局部变量.4.方法中定义的内部类,在其他地方使用时,没有类的名字,正像上面的例子中一样,只能用其父类来引用这样的变量(例中用Object)

     例:Object ōbj=new Outer().makeTheInner(47);

     

  • java基本概念的理解

    2007-09-19 13:20:08

    1. 通常,在一个类中定义一个方法为static,那就是说,无需本类的对象也可调用 

    此方法.
     调用一个静态方法就是"类名.方法名"
     静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中 

     大量的静态方法正是出于此目的而定义的
      例:class Simple{
     static void go(){
     System.out.println("Go go");
     }
     public static void main(String args[])
     Simple.go();
     }
    2. 静态变量
     
       静态变量与静态方法类似。所有此类实例共享此静态变量,也就是说在类装载

    时,只分配一块存储空间,所有此类的对象都可以操控此块存储空间,当然对于final

    则另当别论了。static 变量有点类似于C中的全局变量.
    看下面这段代码:
    3.域变量和局部变量:
      从语法形式上看域变量属于类或者是接口,而局部变量是在方法中定义的变量或者是

    方法参变量.域变量可以被public ,private,protected,static 等词修饰.而局部变量

    则不能被这些词修饰,但是域变量和局部变量都可以被final词修饰.
      从内存的存储形式上来看,域变量是对象的一部分,而对象是存在于堆中的.但是局部

    变量却是存在于栈中的.
      从变量在内存中的存在的时间上看,域变量是对象的一部分随着对象的创建而被创建,

    而局部变量则随着方法的调用而产生,随着方法调用的结束而自动消失.
      域变量如果没有赋初值的话,会自动以该类型的默认值(0,false,null等)来赋值.当然

    也有例外,被final修饰但是又没有被static修饰的域变量必须显式的赋值.而局部变量

    必须显式的被赋.
    例:class LocalVarAndMemberVar{
    int a ;
    void m(){
    int b;
    System.out.println(a);//a 被赋为0;
    System.out.println(b);//编译不能通过;
    }
    }
    4.参数的传递:JAVA遵循的是值传递.也就是说,当调用一个方法时,是将表达式的值复制

    给形式参数.
    5.与变量的传递一样,方法的返回值可以是基本类型也可以是引用类型.
      如果一个方法返回的是一个引用类型,由于引用类型是一个引用,所以它可以存储对象

    的实体.
      例:Object GetNewObject(){
    Object ōbj=new Object();
    return obj;
    }在引用方法时候可以这样用,Object p=GetNewObject();
      由于JAVA中所有的东西都是引用(句柄),所以只需要做简单的传递或者返回引用即可.
    7.所谓多态是指一个程序中相同的名字表示不同的含义.
      简单情况下,可以通过子类对父类方法的覆盖(override)实现多态.也可以利用重载在

    同一个类中定义多个同名的不同方法.面向对象的程序中,多态还有更深刻的含义,就是

    动态的绑定(dynamic binding),称为虚方法调用.它能够使对象所编写的程序,不用做修

    改就可适应于其他所有的子类,如在调用方法时,程序会正确的调用子对象的方法.
    8.上溯造型
      类似于基本数据类型数据之间的强制类型转换,存在继承关系的父类对象引用和子类

    对象引用之间也可以在一定条件下相互转换.但须注意以下的原则::
    (1).子类对象可以被视为父类的一个对象,如一个student对象也可以是一个person对象
    (2).父类对象不能被当做某一子类对象.
    (3).如果一个方法的形式参数被定义的是父类对象,那么调用这个方法时,可以使用子类

        对象做为实参.
    (4).如果父类对象引用指向的实际上是一个子类对象,那么这个父类对象的引用 可以强

       制转换成子类对象的引用.
    把派生类型当作它的基本类型处理的过程,又称(upcasting)
      如果一个方法声明成final,它能防止覆盖该方法同时告诉编译器不需要动态的绑定.
      如果一个方法是static或private,它不能被子类所覆盖,自然也是final的,不存在虚 

    方法.

  • java中的static的理解;

    2007-09-12 17:50:35

    static:

    用static修饰符修饰的域仅属于类的静态域,又移称为静态量,类域,类变量.不用它修饰的域称为实例变量和实例域.

    静态域的本质特点是:它们的类域不属于任何一个类的具体对象实例.它不保存在某个对象实例的内存空间内,而是保存在类的内存区域的公共存储单元.也就是说静态域是一个公共的存储单元.任何一个类的对象访问它,取到的都是相同的数值,同样任何一个类去修改它,也都是对同一个内存进行操作.

    用static 修饰的方法仅属于类的静态方法,又称类方法.不用它修饰的为实例方法.

    声明一个方法为static有以下的意义;

    1.非static修饰的方法是属于某个对象的方法,在这个对象被创建,对象的方法在内存中拥有自己专用的代码段,而static方法属于整个类,它在内存中的代码段随着类的定义而进行分配和装载,不被任何一个对象所占有.

    2.由于static方法属于整个类,所以它不能操纵和处理属于某个对象的成员变量,而只能操作属于整个类的成员变量,即或static方法只能处理static域或者是static方法,.

    3.类方法中不能访问实例变量.在类方法中不能使用this 和super.

    4.调用这个方法的时候可以使用类名直接调用,也可以用某个具体的对象名.

    注:不能在类的方法中去存取实例变量.但是可以在实例方法中去存取类域.

    从类成员的特性可以看出,可用static来定义全局变量和全局方法.

    final:

    如果一个类被final修饰或者是限定的话,说明这个类不能被继承,也就是说不可能有子类.

    用它来修饰的类一般为了完成固定功能或是某种标准功能.用final修饰的方法不能被覆盖.

    一个域被static final修饰符所限定的话,它实际的含意也就是常量.

    synchronized:

    如果synchronized修饰的方法是一个类方法(即static方法),那么在被调用执行前,将把系统类Class中对应的当前类的对象加锁.如果修饰的是一个对象方法(未用static修饰),则这个方法在被调用执行前,将把当前的对象加锁,多用于多线程共存的程序中的协调与同步.

  • java学习之Calendar类的使用

    2007-09-11 17:04:31

      最近在学习java中的Calendar类的使用,感觉有点收获.一边看项目的代码一边学习JAVA感觉挺好的.

    不过里面有好多不懂的东西,里面还有HTML方面的东西.呵呵,碰到不懂就上网查查!

    明天看ZB8的代码,看看一下关于JAVA里面的工具类,ArrayList,Hashmap,map.

     就应该这样子,前几天没事做感觉好空虚,整天的没有收获,就像是在混日子,今天感觉好多了!

    希望自己加油.

     

     

  • java 中this 的理解;

    2007-08-28 17:25:19

    自学java 也有一段时间了,可是对java中的this关键字总是理解的不是那么产透.也许以前看的都是些理论的东西没有看到更多的实例.今天没事在网上搜了一下,发现一个例子能够清楚的说明一切,拿出来分享一下?

    this应用的最普遍的情况就是,在你的方法中的某个形参名与当前对象的某个成员有相同的名字,这时为了不至于混淆,你便需要明确使用this关键字来指明你要使用某个成员,使用方法是“this.成员名”,而不带this的那个便是形参。另外,还可以用“this.方法名”来引用当前对象的某个方法,但这时this就不是必须的了,你可以直接用方法名来访问那个方法,编译器会知道你要调用的是那一个。下面的代码演示了上面的用法:

    this也即是当前的对象.

    public class DemoThis{
    private String name;
    private int age;
    DemoThis(String name,int age){
    setName(name); //你可以加上this来调用方法,像这样:this.setName(name);但这并不是必须的
    setAge(age);
    this.print();
    }
    public void setName(String name){
    this.name=name;//此处必须指明你要引用成员变量
    }
    public void setAge(int age){
    this.age=age;
    }
    public void print(){
    System.out.println("Name="+name+" Age="+age);//在此行中并不需要用this,因为没有会导致混淆的东西
    }
    public static void main(String[] args){
    DemoThis dt=new DemoThis("Kevin","22");
    }
    }

  • java环境变量的配置

    2007-08-15 17:23:44

    假如你安装的JDK的路径是:D:\jdk1.5.0_06

    则你可以像如下配置,在我的电脑--》属性--》高级--》环境变量

    新建几个变量:classpath,java_base,java_home,path;

    则各个变量的值如下所示。

    CLASSPATH:
    .;%JAVA_HOME%\lib\tools.jar;
    JAVA_BASE
    D:\jdk1.5.0_06
    JAVA_HOME
    D:\jdk1.5.0_06
    path
    %JAVA_HOME%\bin;D:\jre1.5.0_06\lib\javaws.jar;

数据统计

  • 访问量: 7955
  • 日志数: 15
  • 建立时间: 2007-08-15
  • 更新时间: 2007-09-26

RSS订阅

Open Toolbar