Java修饰符abstract与static及final的精华总结
在Java中,修饰符用于描述类、方法或者变量的特性,包括访问权限、状态等。其中,abstract、static和final三个修饰符在Java编程中使用较多,并且常常存在于一个类或者方法声明中。本文将从这三个修饰符的定义、作用及用法等多个方面逐一讲解。
一、abstract修饰符
1.1 定义
abstract是Java中一个关键字,它用于修饰类、方法,表示这个类、方法是抽象的。抽象类不能被实例化,只有它的非抽象子类才能被实例化。
1.2 作用
- 抽象类不能被实例化,主要用于被子类继承和重写;
- 抽象方法没有实现,只有方法定义,具体实现由实现类来完成。
1.3 示例说明
//定义一个抽象类Animal
abstract class Animal{
public abstract void move();//move()方法为抽象方法
}
//定义一个动物类Animal的子类Dog
class Dog extends Animal{
public void move(){
System.out.println("狗在奔跑!");//重写move()方法的具体实现
}
}
//实例化Dog类,并调用它的move()方法
Dog dog=new Dog();
dog.move(); //输出:狗在奔跑!
上述示例中,Animal类为抽象类,其中move()方法是一个抽象方法,它没有实现,只有方法定义。Dog类继承Animal类后,重写了move()方法,并具体实现了“狗在奔跑!”这句话的输出,在实例化Dog类并调用move()方法后,输出了正确的结果。
二、static修饰符
2.1 定义
static是Java中一个关键字,它可以用于修饰类、方法、变量和代码块。当这个关键字用于修饰成员变量时,表示这个变量属于类而不是对象,在内存中只有一个。当用于修饰方法时,表示这个方法属于类,而不是属于对象,可以通过类名直接调用该方法。
2.2 作用
- 用于定义静态变量和静态方法;
- 静态变量和静态方法属于类,而不是属于对象。可以通过类名直接访问。
2.3 示例说明
class Employee{
private static int empNo=0; //定义了一个静态变量
private String name;
public Employee(String name){
this.name=name;
empNo++; //对静态变量进行累加操作
}
public static int getEmpNo(){ //定义了一个静态方法
return empNo; //返回静态变量
}
public String getName(){
return name;
}
}
public class StaticTest{
public static void main(String args[]){
Employee emp1=new Employee("小明");
Employee emp2=new Employee("小王");
System.out.println("员工编号:"+Employee.getEmpNo());//通过类名直接访问静态方法
System.out.println(emp1.getName()+"的编号是:"+Employee.getEmpNo());
System.out.println(emp2.getName()+"的编号是:"+Employee.getEmpNo());
}
}
在上述示例中,Employee类中定义了一个静态变量empNo和一个静态方法getEmpNo()。getEmpNo()方法返回了静态变量empNo的值,而它们属于类而非属于对象,因此可以通过类名直接访问静态方法。调用Employee类中的getEmpNo()方法,即可获取到当前Employee对象的编号。
三、final修饰符
3.1 定义
final是Java中一个关键字,它可以用于修饰类、方法、变量等内容。用final修饰的变量表示常量,一旦定义了其值,就不能再次修改。
3.2 作用
- 用于修饰类、方法、变量等内容;
- 用于定义常量。
3.3 示例说明
class Circle{
private final double PI=3.14; //定义常量PI
private double radius;
public Circle(double radius){
this.radius=radius;
}
public double getArea(){
return PI*radius*radius; //计算圆的面积
}
}
public class FinalTest{
public static void main(String args[]){
Circle circle=new Circle(1.0);
System.out.println("半径为"+circle.getRadius()+"的圆的面积是:"+circle.getArea());
}
}
在上述示例中,Circle类中定义了常量PI,表示圆的周长。由于PI是一个常量,因此在Circle类的定义中,只需要对它进行定义,而无需进行初始化。在getArea()方法中,计算圆的面积时,采用了final修饰的PI常量,从而可以有效保证程序的正确性和简洁性。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java修饰符abstract与static及final的精华总结 - Python技术站