博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础语法 - 面向对象 - static 关键字
阅读量:6566 次
发布时间:2019-06-24

本文共 2966 字,大约阅读时间需要 9 分钟。

使用static关键字修饰的变量、常量和方法分别被称作静态变量、静态常量和静态方法,也被称作类的静态成员

静态变量

使用static修饰过的类变量称为静态变量

该变量需要使用类名.变量名进行调用,不能使用对象名/this进行调用

在类方法中不能定义与静态变量同名的局部变量

 

1 package mingri.chapter_6; 2  3 public class Pool { 4  5     public static int water = 0;    // 定义一个静态变量 6  7     public void outlet() { 8         // String water = "";   // 在类方法中,不能定义与静态变量同名的变量名 9         if (water >= 2) {       // 在类方法中不能使用 this.water 进行调用,只能使用变量名进行调用10             water -= 2;11         } else {12             water = 0;13         }14     }15 16     public void inlet() {17         water += 3;18     }19 20     public static void main(String[] args) {21         Pool pool = new Pool();22         System.out.println("水池的水量:" + Pool.water);  // 只能通过类名.静态变量名进行访问23 24         pool.inlet();25         pool.inlet();26 27         System.out.println("水池的水量:" + Pool.water);28         System.out.println("水池放水一次");29         pool.outlet();30         System.out.println("水池的水量:" + Pool.water);31     }32 }

 

静态方法

静态方法与静态变量类似,使用类名.静态方法名即可调用

1 package mingri.chapter_6; 2  3 public class Pool2 { 4  5     // 定义静态变量 6     public static int water = 0; 7  8     // 定义静态方法 9     public static void outlet() {10         if (water > 2) {11             water -= 2;12         } else {13             water = 0;14         }15     }16 17     // 定义静态方法18     public static void inlet() {19         water += 3;20     }21 22     public static void main(String[] args) {23         System.out.println("水池的水量:" + Pool2.water);     // 调用静态变量24         System.out.println("水池注水两次。");25 26         Pool2.inlet();      // 调用静态方法27         Pool2.inlet();28 29         System.out.println("水池的水量:" + Pool2.water);    // 调用静态变量30         System.out.println("水池放水一次。");31 32         Pool2.outlet();     // 调用静态方法33 34         System.out.println("水池的水量:" + Pool2.water);     // 调用静态变量35     }36 }

 

静态代码块

在类的成员方法之外,用static修饰代码区域可以称之为静态代码块。定义一块静态代码块,可以完成类的初始化操作,在类声明时就会运行

语法如下:

1 package mingri.chapter_6; 2  3 public class StaticTest { 4  5     // 静态代码块 6     static { 7         System.out.println("静态代码块"); 8     } 9 10     public static void main(String[] args) {11         StaticTest st;12         System.out.println("main主方法");13     }14 }

 

代码块的执行顺序

1 package mingri.chapter_6; 2  3 public class StaticTest { 4  5     static String name; 6  7     // 静态代码块 8     static { 9         System.out.println(name + "静态代码块");10     }11 12     public StaticTest(String str){13         name = str;14         System.out.println(name + "构造方法");15 16     }17 18     public void method() {19         System.out.println(name + "成员方法");20     }21 22     public static void main(String[] args) {23         StaticTest s1;      // 声明变量的时候就已经运行静态代码块了24         StaticTest s2 = new StaticTest("s2");25         StaticTest s3 = new StaticTest("s3");26         s3.method();27         System.out.println("main主方法");28     }29 }30 31 /*32 * 输出结果33     null静态代码块34     s2构造方法35     s3构造方法36     s3成员方法37     main主方法38 * */

 

转载于:https://www.cnblogs.com/CongZhang/p/9956122.html

你可能感兴趣的文章
深入理解javascript原型和闭包系列
查看>>
第1个实验:用汇编语言点亮一盏LED
查看>>
1 Maven简介
查看>>
mongodb的学习-5-概念解析
查看>>
go标准库的学习-database/sql/driver
查看>>
SDOI2013 保护出题人
查看>>
@RestController注解下返回到jsp视图页面
查看>>
CCF NOI1118 序列第K小
查看>>
【BZOJ2752】【Luogu P2221】 [HAOI2012]高速公路
查看>>
HDU1282 回文数猜想
查看>>
HDU1563 HDU2095 Find your present!
查看>>
UVALive5910 UVA1641 POJ4022 ASCII Area【趣味程序+输入输出】
查看>>
Python-定时爬取指定城市天气(二)-邮件提醒
查看>>
01- APP移动端测试怎么测试?APP测试方法大全。
查看>>
Matlab画星座图
查看>>
Java基础学习
查看>>
11-02笔记图
查看>>
Scala学习笔记 - 特质
查看>>
关于WebAPI安全认证的问题
查看>>
HTML5本地存储实例页面
查看>>