大数据技术的基础技能包括什么(大数据技术的基础是什么)
542
2022-05-29
static 关键字
概述
定义和使用格式
类变量
静态方法
注意事项
调用格式
静态原理图解
静态代码块
概述
关于 static 关键字的使用, 它可以用来修饰的成员变量和成员方法. 被修饰的成员是属于类的, 而不是单单属于某个对象的. 也就是说, 既然属于类, 就可以不靠创建对象来调用了.
定义和使用格式
类变量
当 static 修饰成员变量时, 该变量称为类变量. 该类的每个对象都共享一个类变量的值. 任何对象都可以更改该变量的值. 但也可以在不创建该类的对象的情况下对类变量进行操作.
类变量: 使用 static 关键字修饰的成员变量.
定义格式:
static 数据类型 变量名;
1
举例:
static int numberID;
1
比如说, 基础班新班开班, 学员报到. 现在想为每一位新来报到的同学编学号 ( sid ), 从第一名同学开始, sid 为 1, 以此类推. 学号必须是唯一的, 连续的, 并且与班级的人数相符, 这样便知道要分配给下一名新同学的学号是多少. 这样我们就需要一个变量, 与单独的每一个学生对象无关, 而是与整个班级同学数量有关.
所以, 我们可以这样定义一个静态变量 numberOfStudent, 代码如下:
public class StudentPlus { private String name; private int age; // 学生的id private int sid; // 类变量, 记住学生数量, 分配学号 public static int numberOfStudent = 0; public StudentPlus(String name, int age){ this.name = name; this.age = age; // 通过 numberOfStudent 给学生分配学号 this.sid = ++numberOfStudent; } // 打印属性值 public void show(){ System.out.println("Student: name=" + name + ", age=" + age + ", sid=" + sid); } } class Demo{ public static void main(String[] args) { StudentPlus s1 = new StudentPlus("张三", 23); StudentPlus s2 = new StudentPlus("李四", 24); StudentPlus s3 = new StudentPlus("王五", 25); StudentPlus s4 = new StudentPlus("赵六", 26); s1.show(); // Student : name=张三, age=23, sid=1 s2.show(); // Student : name=李四, age=24, sid=2 s3.show(); // Student : name=王五, age=25, sid=3 s4.show(); // Student : name=赵六, age=26, sid=4 } }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
静态方法
当 static 修饰成员方法时, 该方法称为类方法. 静态方法在声明中有 static, 建议使用类名来调用, 而不需要创建类的对象. 调用方式非常简单.
类方法: 使用 static 关键字修饰的成员方法, 习惯称为静态方法.
定义格式:
修饰符 static 返回值类型 方法名 (参数列表){ // 执行语句 }
1
2
3
举例: 在 Student 类中定义静态方法
public static void showNum() { System.out.println("num:" + numberOfStudent); }
1
2
3
注意事项
静态方法可以直接访问类变量和静态方法
静态方法不能直接访问普通成员变量或者方法. 反之, 成员方法可以直接访问类变量或静态方法
静态方法中, 不能使用 this 关键字
注: 静态方法只能访问静态成员
调用格式
被 static 修饰的成员可以并建议通过类名直接访问. 虽然也可以通过对象名访问静态成员, 原因即多个对象均属于一个类, 共享使用同一个静态成员. 但是不建议, 会出现警告信息.
格式:
// 访问类变量 类名.类变量名; // 调用静态方法 类名.静态方法名(参数);
1
2
3
4
5
调用演示, 代码如下:
public class Test71 { public static void main(String[] args) { // 访问类变量 System.out.println(StudentPlus.numberOfStudent); // 调用静态方法 StudentPlus.showNum(); } }
1
2
3
4
5
6
7
8
静态原理图解
static 修饰的内容:
是随着类的加载而加载的, 且只加载一次
存储于一块固定的内存区域 (静态区), 所以, 可以直接被类名调用
它优先于对象存在, 所以, 可以被所有对象共享
静态代码块
静态代码块: 定义在成员位置, 使用 static 修饰的代码块 {}.
位置: 类中方法外
执行: 随着类的加载而执行且执行异常, 优先于 main 方法的执行
格式:
public class ClassName{ static { // 执行语句 } }
1
2
3
4
5
作用: 给类变量进行初始化赋值. 代码如下:
import java.util.ArrayList; public class Game { private static int number; private static ArrayList
1
2
3
4
5
6
7
8
9
10
11
12
13
14
注: static 关键字, 可以修饰变量, 方法和代码块. 在使用过程中, 其主要目的还是想在不创建对象的情况下, 去调用方法.
Java
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。