SCJP考点总结及SCJP考试要点分享[2]
文章作者 100test 发表时间 2007:03:14 17:38:00
来源 100Test.Com百考试题网
  目标2 声明类与变量
  声明类,内部类,方法,实例变量,静态变量,自动变量(局部变量),正确使用各种修饰符(public , private , static ,final, abstract)。
  在JAVA中万事万物皆对象,即使JAVA程序本身也是对象。
  类的定义和对象的生成
以下是引用片段:   public class MyClass{ //类定义    int i.    float f.      //类数据成员    void amethod(){  //方法    int i.     // 局部变量    }    }    MyClass aClass =new MyClass().  //创建类的一个实例(对象) | 
  修饰符说明
  private
  被了变量所在的类,其它任何类都不可以访问这个成员。
  无访问修饰符
  所谓的包访问权限,同一个包内的其它类可以访问这个成员。
  Protected
  与无访问修饰符具有权限外,还允许子类访问这个成员。
  Public
  具有全局可视性,任何其它类都可以访问这个成员。
  Static
  Static变量称为类变量,类的所有对象共享这个变量。
  Static方法称为类方法,它只能访问static变量。静态方法不能被子类overriding为非静态方法,但静态方法可以被子类静态方法所Hided.
  Native
  只用于方法,指明方法体是由其它编程语言编写的。它以.结尾不是以{}结尾。
  Public native void fastcalc().
  Abstract
  Abstract修饰符可用于类与方法前,在用于方法前时表明方法不具备方法体。只支类中包括了抽象方法则它必须声明为抽象类。如果一个类实现一个接口时,它没有为接口中所有的方法提供实现时,也必须声明为抽象类。
  Final
  Final修饰符可用于类,方法和变量,fianl类不能被继承,所有final类中的方法都是教学final方法。Final变量的值必须在创建时设定并具不能被修改。
  Synchronized
  防止多个线程同时访问相同的代码段。
  Transient
  表明类序列化时,变量不必序列化。
  Volatile
  表明变量由于线程可能异步修改。
  示例:
以下是引用片段:   abstract class Base{    abstract public void myfunc().  //抽象方法    public void another(){     //实例方法    System.out.println("Another method").    }    static void smethod(){   //类方法    System.out.println("base smethod").    }    }    public class Abs extends Base{    public static void main(String argv[]){    Abs a = new Abs().    Base b=new Abs().    a.amethod().  // 动态绑定,运行时调用    a.smethod().  //静态方法,编译时调用    b.smethod().    }    public void myfunc(){    System.out.println("My func").    }    public void amethod(){  //实现抽象方法    myfunc().    }    static void smethod(){ //hiding 父类静态方法    System.out.println("Abs smethod").    }    }    Objective 3, The default constructor    For a given class, determine if a default constructor will be created and if so state the prototype of that constructor |