Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Coudy Hou
JavaGuide
提交
432c9d9a
J
JavaGuide
项目概览
Coudy Hou
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
432c9d9a
编写于
4月 12, 2020
作者:
S
shuang.kou
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update final,static,this,super.md
上级
6e6d9da4
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
32 addition
and
26 deletion
+32
-26
docs/java/basic/final,static,this,super.md
docs/java/basic/final,static,this,super.md
+32
-26
未找到文件。
docs/java/basic/final,static,this,super.md
浏览文件 @
432c9d9a
...
...
@@ -121,8 +121,8 @@ public class Sub extends Super {
调用格式:
-
类名.静态变量名
-
类名.静态方法名()
-
`类名.静态变量名`
-
`类名.静态方法名()`
如果变量或者方法被 private 则代表该属性或者该方法只能在类的内部被访问而不能在类的外部被访问。
...
...
@@ -132,15 +132,15 @@ public class Sub extends Super {
public
class
StaticBean
{
String
name
;
静态变量
//
静态变量
static
int
age
;
public
StaticBean
(
String
name
)
{
this
.
name
=
name
;
}
静态方法
//
静态方法
static
void
SayHello
()
{
System
.
out
.
println
(
Hello
i
am
java
);
System
.
out
.
println
(
"Hello i am java"
);
}
@Override
public
String
toString
()
{
...
...
@@ -202,11 +202,11 @@ Example(静态内部类实现单例模式)
```
java
public
class
Singleton
{
声明为
private
避免调用默认构造方法创建对象
//
声明为 private 避免调用默认构造方法创建对象
private
Singleton
()
{
}
声明为
private
表明静态内部该类只能在该
Singleton
类中被访问
//
声明为 private 表明静态内部该类只能在该 Singleton 类中被访问
private
static
class
SingletonHolder
{
private
static
final
Singleton
INSTANCE
=
new
Singleton
();
}
...
...
@@ -230,12 +230,10 @@ public class Singleton {
```
java
Math
.
---
将Math中的所有静态资源导入
,
这时候可以直接使用里面的静态方法
,
而不用通过类名进行调用
如果只想导入单一某个静态方法
,
只需要将换成对应的方法名即可
//
将Math中的所有静态资源导入,这时候可以直接使用里面的静态方法,而不用通过类名进行调用
//
如果只想导入单一某个静态方法,只需要将换成对应的方法名即可
import
static
java
.
lang
.
Math
.;
换成import
static
java
.
lang
.
Math
.
max
;
具有一样的效果
import
static
java
.
lang
.
Math
.;
//换成import static java.lang.Math.max;具有一样的效果
public
class
Demo
{
public
static
void
main
(
String
[]
args
)
{
...
...
@@ -291,44 +289,52 @@ class Foo {
一般情况下,如果有些代码比如一些项目最常用的变量或对象必须在项目启动的时候就执行的时候,需要使用静态代码块,这种代码是主动执行的。如果我们想要设计不需要创建对象就可以调用类中的方法,例如:Arrays类,Character类,String类等,就需要使用静态方法, 两者的区别是 静态代码块是自动执行的而静态方法是被调用的时候才执行的.
Example
Example
:
```
java
public
class
Test
{
public
Test
()
{
System
.
out
.
print
(
默认构造方法
!
--
);
System
.
out
.
print
(
"默认构造方法!--"
);
}
非静态代码块
//
非静态代码块
{
System
.
out
.
print
(
非静态代码块
!
--
);
System
.
out
.
print
(
"非静态代码块!--"
);
}
静态代码块
//静态代码块
static
{
System
.
out
.
print
(
静态代码块
!
--
);
System
.
out
.
print
(
"静态代码块!--"
);
}
p
ublic
static
void
test
()
{
System
.
out
.
print
(
静态方法中的内容
!
--
);
p
rivate
static
void
test
()
{
System
.
out
.
print
(
"静态方法中的内容! --"
);
{
System
.
out
.
print
(
静态方法中的代码块
!
--
);
System
.
out
.
print
(
"静态方法中的代码块!--"
);
}
}
public
static
void
main
(
String
[]
args
)
{
Test
test
=
new
Test
();
Test
.
test
();
静态代码块
!
--
静态方法中的内容
!
--
静态方法中的代码块
!
--
public
static
void
main
(
String
[]
args
)
{
Test
test
=
new
Test
();
Test
.
test
();
//静态代码块!--静态方法中的内容! --静态方法中的代码块!--
}
}
```
上述代码输出:
```
静态代码块!--非静态代码块!--默认构造方法!--静态方法中的内容! --静态方法中的代码块!--
```
当执行
`Test.test();`
时输出:
当
只
执行
`Test.test();`
时输出:
```
静态代码块!--静态方法中的内容! --静态方法中的代码块!--
```
当执行
`Test test = new Test();`
时输出:
当
只
执行
`Test test = new Test();`
时输出:
```
静态代码块!--非静态代码块!--默认构造方法!--
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录