Java 关键字static详解及实例代码

Java关键字static详解及实例代码

什么是Java的关键字static

Java的关键字static用于声明类、方法和变量,它可以用来标识一个类、方法和变量是否为静态的。

当我们把一个成员变量或成员方法定义为静态时,它可以被所有对象所共享,无需实例化对象就可以直接访问它们。而非静态的成员变量和成员方法必须通过实例化后才能进行访问。

Java关键字static的使用

类级别的静态变量

类级别的静态变量指的是在类中声明的变量,使用关键字static来标识。这种变量在所有实例化对象中都是共享的。

下面是一个静态变量的例子:

public class Person {
    static int count = 0;
    public Person() {
        count++;
    }
}

在上面的例子中,我们声明了一个静态变量count,每次实例化一个Person对象时,count都会自增。在程序中通过Person.count就可以访问count了。因为count是静态变量,所以在程序中的任意地方都可以使用它,不需要实例化一个Person对象。

类级别的静态方法

Java中的静态方法,必须使用关键字static来进行定义和修饰,静态方法可以在类没有实例化的情况下直接调用。

下面是静态方法的一个例子:

public class Person {
    static int count = 0;

    public Person() {
        count++;
    }

    public static void printCount() {
        System.out.println("Total Person objects: " + count);
    }
}

在上面的例子中,我们定义了一个静态方法printCount,它可以在没有实例化Person对象的情况下执行,用于打印已经创建的Person对象的数量。在程序中,我们可以通过Person.printCount()方法来直接调用printCount方法,而不需要新建一个Person对象。

静态代码块

静态代码块指的是在类中使用关键字static来定义的块。这个块在类被加载时执行,并且只执行一次。通常用于初始化静态变量。

下面是静态代码块的一个例子:

public class Person {
    static {
        System.out.println("Person Class Loaded...");
    }
}

在上面的例子中,我们定义了一个静态代码块,当类被加载时会执行System.out.println("Person Class Loaded...")方法。

示例说明

示例1:计算矩形面积

下面的例子是利用静态变量和静态方法计算矩形面积的示例代码:

public class Rectangle {
    static int width;
    static int height;

    public static void setWidth(int w) {
        width = w;
    }

    public static void setHeight(int h) {
        height = h;
    }

    public static int getArea() {
        return width * height;
    }

    public static void main(String[] args) {
        Rectangle.setWidth(10);
        Rectangle.setHeight(5);
        int area = Rectangle.getArea();
        System.out.println("Width: " + Rectangle.width);
        System.out.println("Height: " + Rectangle.height);
        System.out.println("Area: " + area);
    }
}

在上面的例子中,我们定义了静态变量widthheight,以及静态方法setWidthsetHeightgetArea。在main函数中,我们通过Rectangle类调用静态方法setWidthsetHeight设置矩形的宽和高,并且我们通过调用静态方法getArea计算矩形面积。

示例2:使用静态块在数字数组中查找最大值

下面的例子是使用静态块在数字数组中查找最大值的示例代码:

public class Maxium {
    static int[] nums = {10, 20, 30, 40, 50};
    static int max;

    static {
        max = nums[0];
        for(int i = 1; i < nums.length; i++) {
            if(nums[i] > max) {
                max = nums[i];
            }
        }
    }

    public static void main(String[] args) {
        System.out.println("Maxium: " + max);
    }
}

在上面的例子中,我们定义了静态变量nums表示数字数组,以及静态变量max表示最大值。在静态块中,我们通过遍历nums数组查找最大值并将其赋值给静态变量max。在main函数中,我们通过直接调用Maxium.max变量打印最大值。

总结

以上就是Java关键字static的详细攻略,static关键字可以使变量和方法在类加载的时候就被初始化,从而免去了频繁地初始化的麻烦。同时,静态变量可以实现数据的共享,静态方法可以实现代码的共享,静态块可以在类加载时执行一些初始化代码,这些特性都使得static关键字在Java编程中经常被使用。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java 关键字static详解及实例代码 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • SpringBoot整合Druid数据源的方法实现

    SpringBoot整合Druid数据源的方法实现,可以分为以下几个步骤: 步骤一:添加Druid和jdbc依赖 在pom.xml文件中,添加以下两个依赖 <!–Druid数据库连接池–> <dependency> <groupId>com.alibaba</groupId> <artifactId&…

    Java 2023年5月20日
    00
  • 详解JDBC的概念及获取数据库连接的5种方式

    JDBC概念介绍 Java数据库连结(JDBC)是用Java编写的一个API(应用程序编程接口),用于与数据库通讯及操作的一套规范接口。它可以让我们用Java语言访问各种不同的SQL数据库。 获取数据库连接的5种方式 前提条件 在使用JDBC连接数据库之前,需要首先导入mysql的JDBC驱动JAR包。这里以MySQL为例,我们需要在Maven或Gradle…

    Java 2023年6月1日
    00
  • Java构建JDBC应用程序的实例操作

    Java构建JDBC应用程序的实例操作涉及到以下步骤: 导入JDBC驱动 在Java应用程序中连接数据库前,需要导入相应的JDBC驱动,可以通过Class.forName()方法实现。 示例代码: Class.forName("com.mysql.jdbc.Driver"); 创建连接 在导入驱动后,应用程序需要创建一个数据库连接,可以通…

    Java 2023年5月30日
    00
  • java简单实现计算器

    下面是“Java简单实现计算器”的完整攻略: 1. 实现思路 Java简单实现计算器的核心是要实现对用户输入的表达式的计算,这可以通过将输入的表达式转化成中缀表达式,然后再将中缀表达式转换成后缀表达式来实现。转换成后缀表达式后,计算过程可以通过栈的数据结构来实现。 具体步骤如下: 接收用户输入的表达式。 将表达式转换成中缀表达式。 将中缀表达式转换成后缀表达…

    Java 2023年5月18日
    00
  • Ajax实现异步加载数据

    Ajax实现异步加载数据 什么是Ajax Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页内容的技术。它利用JavaScript在后台与服务器交换数据,实现局部更新网页的效果。 Ajax的优点 Ajax的优点主要有以下几个: 减少数据传输量:采用Ajax技术,仅需要更新页面的部分…

    Java 2023年6月15日
    00
  • Spring security登录过程逻辑详解

    我将详细讲解“Spring security登录过程逻辑详解”的攻略。具体内容如下: 标题 Spring security登录过程逻辑详解 介绍 Spring Security是基于Spring的安全框架,提供了认证和授权的功能,是保障应用系统安全的重要组成部分。本文将详细介绍Spring Security的登录过程,并结合代码示例进行演示。 正文 Spri…

    Java 2023年5月20日
    00
  • 全面详解Maven打包及其相关插件和高级特性

    全面详解Maven打包及其相关插件和高级特性 Maven打包概述 Maven 是一个基于项目对象模型(POM)的构建工具,能有效地管理项目的构建和依赖。Maven 提供了相应的插件,它们可以帮助我们更方便地进行项目的打包(package)。而打包也是 Maven 项目的必要过程之一,我们能够通过打包将项目打包成可执行的 jar 包、war 包、zip 包等等…

    Java 2023年5月20日
    00
  • android apk反编译到java源码的实现方法

    要将Android APK 反编译成 Java 源码,我们需要使用 apktool 工具和 jd-GUI 工具。 环境准备 安装 JDK 和 Android SDK 下载 apktool 工具,可在 https://ibotpeaches.github.io/Apktool/ 下载最新版本 下载 jd-GUI 工具,可在 https://github.com…

    Java 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部