读书人

常见关键字总结

发布时间: 2012-10-24 14:15:58 作者: rapoo

常见关键字小结
1、访问限定符
public:是权限最大的限定符,只要是在同一个工程中,用public修饰的属性或方法都可以被使用
protected,默认的:访问权限介于public与private之间,限定范围都是在同包中。不同之处是,用protected修饰的属性或方法,如果针对的是子类对象,即使不在同一个包中,子类是可以访问父类的。而对于默认的限定符,就只能是同一个。这两种限定符一般很少用。
包才能访问
private:访问的权限最小,被private修饰的属性或方法,只能在同一个类中访问。
对于怎样选择访问限定符,没有一定的规定,具体项目,具体分析使用。

2、this与super
this有两个用法:是指当前类的对象;在构造方法中调用当前类的某一个构造方法,在构造方法中调用构造方法,只能调用一次。
如: public Student(String name){
this.name=name;
}

public Student() {
this("A");
}
如果在this("A")之后再次调用this("B"),就会出现错误。
super的用法与this的用法一致,只是super指的是父类的对象,调用的方法也是父类中的方法。
例如子类NUStudent调用父类Student的构造方法:
public NUStudent(){
super("未知大学生");//引用到父类的对象,调用父类的构造器
super.study();//调用父类的方法
}
3、final修饰类时,此类是不能被继承的,因此final不能修饰抽象类与接口类。
final修饰方法时,此方法可以被使用,但是不能被重写
final修饰属性时,此变量变成常量,在定义的时候必须初始化、赋初值,且只能赋一次值。
总的来说,可以保护数据资料不被改写。

4、static可以限定方法与属性,他限定的方法(属性)称为静态方法(静态属性)
static方法被调用时不需要通过创建该类的对象,可以直接使用 类名.静态方法名() 调用即可。
static修饰属性时,静态属性在类空间里,非静态属性在另辟的(对象)空间里。既装载,又执行。static属性可以在任何方法中调用。当类的某一个对象的static属性值被改变后,这个类所有对象的static属性值都会改变。
static修饰方法时,被装载,但不执行,必须调用之后再执行。static方法只能调用static属性,当需要调用非static属性时,必须通过创建对象调用。
例如:public class A {
{
System.out.println("A");
}

}
类B继承类A public class B extends A{
{
System.out.println("B");
}

}
public class C {
//定义静态变量
static A a=new A();------------------------1
B b1=new B();---------------------------2

public C(){ ---------------------------3
System.out.println("C");
}

public static void main(String[] args){
//调用非静态方法,必须创建对象
C c=new C();---------------------------7
c.work();
//调用静态方法
C.change();----------------------------4
//调用非静态方法,必须创建对象
}
public static void change(){---------------------5
B b=new B();

}
public void work(){
System.out.println("D");-------------6
}

}
程序运行时,先将静态的属性和方法装载在类的空间里,而非静态的装载在另辟的空间里,又因为静态属性,既装载又执行,而静态的方法只装载不执行,因此首先执行编号1输出A,编号5不执行,在进入main函数,调用change()方法,又因B继承A,故输出AB,最后结果是AAB.
当在main函数调用change()方法之前创建对象c,既添加编号为7的行。在编号5之后,编号4之前执行编号2、3、6,输出ABCD,其它运行操作与上述一致,即最后结果是AABCDAB.

读书人网 >编程

热点推荐