方法的修饰符
程序员文章站
2022-07-15 07:58:34
...
方法的修饰符分为访问控制修饰符和非访问控制修饰符。方法的访问控制修饰符与成员变量的访问控制修饰符用法是一致的,在此不再详细的讨论,下面讨论几种常用的非访问控制修饰符。
(1)abstract方法(抽象方法)
带有abstract修饰符的方法称为抽象方法,指没有方法体的方法。抽象方法只能出现在抽象类中。
(2)static方法(类方法或静态方法)
方法于成员类似,也分为类方法和实例方法。带有static的方法称为类方法,不加static的方法称为实例方法。
实例方法是属于某个对象的方法,即每个对象的实例方法都有自己的专用的内存空间。类方法是属于整个类的,它被该类的所有对象共享。
例;类方法与实例方法的使用
public class StaticDemo {
private int x; //声明实例变量
private static int y; //声明类变量
public static void setXY1(int newX,int newY){ //声明类方法
x=newX; //非法 ,报错
y=newY; //合法
}
public void setXY2(int newX,int newY){ //声明实例方法
x=newX; //合法
y=newY; //合法
}
public static void main(String[] args) { //声明类方法
StaticDemo t1=new StaticDemo(); //创建对象
StaticDemo.setXY1(10, 20); //合法
StaticDemo.setXY2(10, 30); //非法,不能直接引用类的实例方法
t1.setXY1(10, 20); //合法
t1.setXY2(10, 30); //合法
}
通过上例,我们可以得出以下结论:
1、类方法只能访问类变量,不能访问实例变量;而实例方法既可以访问实例变量,也可以访问类变量。
2、可以直接通过类名调用类方法,而不能调用实例方法,而通过对象名既可以调用实例方法也可以调用类方法。
(3)final方法(最终方法)
带有final修饰的方法称为最终方法,子类可以继承final方法,但不可以覆盖这个方法,这样可以防止子类对父类关键方法的修改,保证了程序的安全。
可以继承该方法,但不可以覆盖该方法。
(4)native(本地方法)
用其他语言编写的方法在Java程序中称为本地方法,编译成和处理器相关的机器代码。
Java方法是用Java语言编写的方法,编译成字节码,储存在class文件中。
(5)synchronized方法(同步方法)
同步方法用于多线程。
(6)throws异常类型列表
程序运行时可能发生异常,每个异常都对应一个异常类。如果希望方法忽略某种异常,可将其“抛出”,让它的“上级”(如调用它的对象等)来处理,从而使得程序性继续运行。