Java修饰符abstract与static及final的精华总结

yizhihongxing

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技术站

(0)
上一篇 2023年6月26日
下一篇 2023年6月26日

相关文章

  • Java知识梳理之泛型用法详解

    Java知识梳理之泛型用法详解 一、泛型概述 Java泛型是JDK 1.5版本中的新特性,是为了解决Java中的类型不安全问题而推出的重要特性。泛型可以让你写出更加安全,更加通用,更加简洁的代码。 二、泛型的基本使用 泛型的基本使用分为泛型类、泛型方法和泛型接口三个部分。 1. 泛型类 泛型类就是在类名后面加上(可以是任何字符,不一定是T),代表这个类是一个…

    other 2023年6月26日
    00
  • Android贝塞尔曲线初步学习第二课 仿QQ未读消息气泡拖拽黏连效果

    Android贝塞尔曲线初步学习第二课 仿QQ未读消息气泡拖拽黏连效果攻略 简介 本攻略将详细讲解如何实现仿QQ未读消息气泡拖拽黏连效果,使用Android贝塞尔曲线进行绘制。在这个效果中,用户可以通过拖拽气泡来改变其形状,并且气泡与手指之间会有黏连效果。 步骤 步骤一:创建项目和布局 首先,创建一个新的Android项目,并在布局文件中添加一个初始的气泡视…

    other 2023年8月24日
    00
  • js 实现图片预加载(js操作 Image对象属性complete ,事件onload 异步加载图片)

    JS实现图片预加载的过程中,需要使用Image对象,并结合其属性和事件来完成操作。下面是实现图片预加载的完整攻略: 创建Image对象 首先需要创建Image对象,可以使用 new Image() 语法完成: let img = new Image(); 监听onload事件 之后,需要监听Image对象的onload事件,来判断图片是否加载完成: img.…

    other 2023年6月25日
    00
  • 利用Android实现比较炫酷的自定义View

    实现自定义View可以通过继承View或者ViewGroup类的方式,然后在重写相应的方法并添加相应的逻辑来实现。 以下是实现比较炫酷的自定义View的完整攻略: 1.确定需求 在开始开发之前,首先要明确自己开发的自定义View的功能和用途,需要考虑以下几个问题: 自定义View的基本形态和样式是怎样的? 自定义View需要支持那些交互操作,例如点击、滑动等…

    other 2023年6月25日
    00
  • ppt2013菜单中没有控件工具怎么办?

    当用户在使用Microsoft PowerPoint 2013时,若发现菜单中没有控件工具,可能是由于某些原因显示方式被修改导致的。此时可按照以下步骤解决: 第一步:确认显示方式 确认“开始”选项卡下的“段落”中的“对齐方式”右侧是否有“显示方式”按钮。 如果没有“显示方式”按钮,则需通过“文件”选项卡下的“选项”菜单进入“自定义功能区”界面,并添加“开发工…

    other 2023年6月27日
    00
  • lvresize调整lvm逻辑卷的空间大小 可以增大空间和缩小空间

    lvresize调整lvm逻辑卷的空间大小 在使用Linux系统时,我们经常需要调整硬盘分区的大小来进行容量管理。在使用LVM(Logical Volume Manager)时,可以通过lvresize命令来调整LVM逻辑卷的大小,实现增加或缩小逻辑卷的空间大小。 增大空间 当需要增加lvm逻辑卷的空间大小时,可以通过以下步骤来实现: 执行命令lvdispl…

    其他 2023年3月29日
    00
  • WordPress中编写自定义存储字段的相关PHP函数解析

    在WordPress开发中,有时我们需要在文章,页面或自定义内容类型中添加自定义字段存储特定的数据。这些自定义字段也可以称为元数据。本文将详细讲解在WordPress中编写自定义存储字段的相关PHP函数解析。 1. add_post_meta()函数 add_post_meta()函数用于向文章,页面或自定义内容类型添加一个自定义字段。它有三个参数:$pos…

    other 2023年6月25日
    00
  • 加载gif动画的三种方式

    加载gif动画的三种方式 在网页设计中,动画是一个非常常用的元素。而其中一种最为常见的动画就是gif格式的动画。如何在网页中加载gif动画呢?本文将介绍三种常用的方式。 1. 直接使用gif图片 最为简单的方式便是直接使用gif图片。只需在html代码中插入如下代码即可: <img src="example.gif" alt=&qu…

    其他 2023年3月29日
    00
合作推广
合作推广
分享本页
返回顶部