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);
}
}
在上面的例子中,我们定义了静态变量width
和height
,以及静态方法setWidth
、setHeight
和getArea
。在main
函数中,我们通过Rectangle
类调用静态方法setWidth
和setHeight
设置矩形的宽和高,并且我们通过调用静态方法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技术站