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 |