@@ -121,8 +121,8 @@ public class Sub extends Super {
121
121
122
122
调用格式:
123
123
124
- - 类名.静态变量名
125
- - 类名.静态方法名()
124
+ - ` 类名.静态变量名 `
125
+ - ` 类名.静态方法名() `
126
126
127
127
如果变量或者方法被 private 则代表该属性或者该方法只能在类的内部被访问而不能在类的外部被访问。
128
128
@@ -132,15 +132,15 @@ public class Sub extends Super {
132
132
public class StaticBean {
133
133
134
134
String name;
135
- 静态变量
135
+ // 静态变量
136
136
static int age;
137
137
138
138
public StaticBean (String name ) {
139
139
this . name = name;
140
140
}
141
- 静态方法
141
+ // 静态方法
142
142
static void SayHello () {
143
- System . out. println(Hello i am java);
143
+ System . out. println(" Hello i am java" );
144
144
}
145
145
@Override
146
146
public String toString () {
@@ -202,11 +202,11 @@ Example(静态内部类实现单例模式)
202
202
```java
203
203
public class Singleton {
204
204
205
- 声明为 private 避免调用默认构造方法创建对象
205
+ // 声明为 private 避免调用默认构造方法创建对象
206
206
private Singleton () {
207
207
}
208
208
209
- 声明为 private 表明静态内部该类只能在该 Singleton 类中被访问
209
+ // 声明为 private 表明静态内部该类只能在该 Singleton 类中被访问
210
210
private static class SingletonHolder {
211
211
private static final Singleton INSTANCE = new Singleton ();
212
212
}
@@ -230,12 +230,10 @@ public class Singleton {
230
230
```java
231
231
232
232
233
- Math . -- - 将Math 中的所有静态资源导入,这时候可以直接使用里面的静态方法,而不用通过类名进行调用
234
- 如果只想导入单一某个静态方法,只需要将换成对应的方法名即可
233
+ // 将Math中的所有静态资源导入,这时候可以直接使用里面的静态方法,而不用通过类名进行调用
234
+ // 如果只想导入单一某个静态方法,只需要将换成对应的方法名即可
235
235
236
- import static java.lang. Math . ;
237
-
238
- 换成import static java.lang. Math . max;具有一样的效果
236
+ import static java.lang. Math . ;// 换成import static java.lang.Math.max;具有一样的效果
239
237
240
238
public class Demo {
241
239
public static void main (String [] args ) {
@@ -291,44 +289,52 @@ class Foo {
291
289
292
290
一般情况下,如果有些代码比如一些项目最常用的变量或对象必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的。如果我们想要设计不需要创建对象就可以调用类中的方法,例如:Arrays类,Character类,String类等,就需要使用静态方法, 两者的区别是 静态代码块是自动执行的而静态方法是被调用的时候才执行的.
293
291
294
- Example
292
+ Example:
295
293
296
294
```java
297
295
public class Test {
298
296
public Test() {
299
- System.out.print(默认构造方法!--);
297
+ System.out.print(" 默认构造方法!--" );
300
298
}
301
299
302
- 非静态代码块
300
+ // 非静态代码块
303
301
{
304
- System.out.print(非静态代码块!--);
302
+ System.out.print(" 非静态代码块!--" );
305
303
}
306
- 静态代码块
304
+
305
+ //静态代码块
307
306
static {
308
- System.out.print(静态代码块!--);
307
+ System.out.print(" 静态代码块!--" );
309
308
}
310
309
311
- public static void test() {
312
- System.out.print(静态方法中的内容! --);
310
+ private static void test() {
311
+ System.out.print(" 静态方法中的内容! --" );
313
312
{
314
- System.out.print(静态方法中的代码块!--);
313
+ System.out.print(" 静态方法中的代码块!--" );
315
314
}
316
315
317
316
}
318
- public static void main(String[] args) {
319
317
320
- Test test = new Test();
321
- Test.test();静态代码块!--静态方法中的内容! --静态方法中的代码块!--
318
+ public static void main(String[] args) {
319
+ Test test = new Test();
320
+ Test.test();//静态代码块!--静态方法中的内容! --静态方法中的代码块!--
322
321
}
322
+ }
323
+ ```
324
+
325
+ 上述代码输出:
326
+
327
+ ```
328
+ 静态代码块!--非静态代码块!--默认构造方法!--静态方法中的内容! --静态方法中的代码块!--
323
329
```
324
330
325
- 当执行 `Test.test();` 时输出:
331
+ 当只执行 `Test.test();` 时输出:
326
332
327
333
```
328
334
静态代码块!--静态方法中的内容! --静态方法中的代码块!--
329
335
```
330
336
331
- 当执行 `Test test = new Test();` 时输出:
337
+ 当只执行 `Test test = new Test();` 时输出:
332
338
333
339
```
334
340
静态代码块!--非静态代码块!--默认构造方法!--
0 commit comments