【Java笔记】第9章:三个修饰符

在这里插入图片描述
在这里插入图片描述

上期回顾:【Java笔记】第8章:面向对象的三大特性(封装、继承、多态)
个人主页:C_GUIQU
归属专栏:【Java学习】

在这里插入图片描述

前言

各位小伙伴大家好!上期小编给大家讲解了Java中面向对象的三大特性(封装、继承、多态),接下来讲讲Java中的三个修饰符!

1. abstract(抽象的)

在编程语言中,abstract关键字用于表示抽象类或抽象方法。抽象类是不能直接实例化的类,它可能包含未实现的方法(抽象方法)。抽象方法是一种没有实现体的方法,它只有方法的签名,没有大括号和方法体。抽象方法的实现必须在非抽象子类中提供。

在Java中,使用abstract关键字的类和方法有一些特定的规则:

  1. 抽象类:
    • 抽象类不能被实例化。
    • 抽象类可以包含抽象方法和非抽象方法。
    • 抽象类可以包含构造器、静态方法、属性等。
    • 抽象类可以有子类,这些子类必须实现抽象类中的所有抽象方法,除非这些子类也是抽象类。
  2. 抽象方法:
    • 抽象方法没有方法体,即没有大括号和实现代码。
    • 抽象方法只能存在于抽象类中。
    • 子类继承抽象类时,必须实现所有的抽象方法,除非子类也是抽象类。

示例:

abstract class Shape {
    abstract void draw(); // 抽象方法
}
class Circle extends Shape {
    void draw() {
        System.out.println("Draw a circle"); // 实现抽象方法
    }
}
public class Main {
    public static void main(String[] args) {
        Shape s = new Circle(); // 创建抽象类的子类实例
        s.draw(); // 调用实现的方法
    }
}

在上面的例子中,Shape是一个抽象类,它有一个抽象方法draw()Circle类继承了Shape类,并实现了draw()方法。在Main类的main方法中,我们创建了Circle类的实例,并调用了draw()方法。由于Shape是抽象的,我们不能直接实例化它,只能实例化它的具体子类。

2. static(静态的)

在编程语言中,static关键字用于定义静态成员,包括静态变量(类变量)和静态方法(类方法)。静态成员属于类本身,而不是类的任何一个对象实例。因此,静态成员被所有的对象实例共享,并且可以通过类名直接访问,而无需创建类的实例。

以下是static关键字的几个主要用途:

  1. 静态变量(类变量):
    • 静态变量是属于类的,它们在类的所有对象之间共享。
    • 静态变量在类加载时分配内存,只有一份拷贝,不管类的实例有多少个。
    • 静态变量通常用于定义常量或者类的全局状态。
  2. 静态方法(类方法):
    • 静态方法是属于类的,它们可以直接通过类名调用,而无需创建类的实例。
    • 静态方法只能直接访问类的其他静态成员(静态变量和静态方法),它们不能直接访问非静态成员。
    • 静态方法通常用于执行不依赖于对象状态的操作。

示例:

public class Utility {
    public static int count = 0; // 静态变量
    public static void printMessage() { // 静态方法
        System.out.println("This is a static method.");
    }
}
public class Main {
    public static void main(String[] args) {
        Utility.count = 10; // 通过类名访问静态变量
        System.out.println(Utility.count); // 输出静态变量的值
        Utility.printMessage(); // 通过类名调用静态方法
    }
}

在上面的例子中,Utility类有一个静态变量count和一个静态方法printMessage()。在Main类的main方法中,我们直接通过类名Utility来访问静态变量count和调用静态方法printMessage(),而无需创建Utility类的实例。

3. final(最终的)

在编程语言中,final关键字用于表示不可变的引用、方法和类。当final修饰一个变量时,表示该变量的值一旦被初始化之后就不能再改变。当final修饰一个方法时,表示该方法不能被覆盖(重写)。当final修饰一个类时,表示该类不能被继承。

以下是final关键字的几个主要用途:

  1. final变量(常量):
    • final变量可以是类变量(静态变量)或实例变量。
    • final变量必须在声明时或在构造器中初始化,一旦赋值后其值就不能被改变。
    • 如果final变量是一个对象引用,那么该引用本身不能被改变,但是对象的状态可以被改变。
  2. final方法:
    • final方法不能被子类覆盖。
    • final方法可以被继承,但是不能被重写。
    • final方法通常用于阻止子类对方法的改变,确保方法的行为保持不变。
  3. final类:
    • final类不能被其他类继承。
    • final类通常用于创建不可扩展的类,例如Java标准库中的String类。

示例:

public class FinalExample {
    private final int x = 10; // final实例变量
    private static final int Y = 20; // final静态变量(类变量)
    public final void finalMethod() { // final方法
        System.out.println("This is a final method.");
    }
}
public final class FinalClass { // final类
    // 类的实现
}
public class Main {
    public static void main(String[] args) {
        FinalExample example = new FinalExample();
        System.out.println(example.x); // 输出final实例变量的值
        System.out.println(FinalExample.Y); // 输出final静态变量的值
        example.finalMethod(); // 调用final方法
    }
}

在上面的例子中,FinalExample类有一个final实例变量x和一个final静态变量Y,以及一个final方法finalMethod()FinalClass是一个final类,不能被其他类继承。在Main类的main方法中,我们创建了FinalExample类的实例,并访问了它的final变量和方法。由于这些变量和方法都是final的,它们的值和行为都不能被改变或覆盖。

结语

至此,Java的三个修饰符讲解完毕。
感谢您的观看!互三必回!持续更新中~!

在这里插入图片描述
在这里插入图片描述

  • 54
    点赞
  • 56
    收藏
    觉得还不错? 一键收藏
  • 29
    评论
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值