mirror of
https://github.com/Snailclimb/JavaGuide
synced 2025-06-20 22:17:09 +08:00
Update Java基础知识.md
This commit is contained in:
parent
e8d1e14392
commit
fb8eef291a
@ -741,9 +741,37 @@ public void f5(int a) {
|
||||
|
||||
### 静态方法和实例方法有何不同?
|
||||
|
||||
1. 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,**调用静态方法可以无需创建对象。**
|
||||
**1、调用方式**
|
||||
|
||||
2. 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。
|
||||
在外部调用静态方法时,可以使用 `类名.方法名` 的方式,也可以使用 `对象.方法名` 的方式,而实例方法只有后面这种方式。也就是说,**调用静态方法可以无需创建对象** 。
|
||||
|
||||
不过,需要注意的是一般不建议使用 `对象.方法名` 的方式来调用静态方法。这种方式非常容易造成混淆,静态方法不属于类的某个对象而是属于这个类。
|
||||
|
||||
因此,一般建议使用 `类名.方法名` 的方式来调用静态方法。
|
||||
|
||||
```java
|
||||
|
||||
public class Person {
|
||||
public void method() {
|
||||
//......
|
||||
}
|
||||
|
||||
public static void staicMethod(){
|
||||
//......
|
||||
}
|
||||
public static void main(String[] args) {
|
||||
Person person = new Person();
|
||||
// 调用实例方法
|
||||
person.method();
|
||||
// 调用静态方法
|
||||
Person.staicMethod()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**2、访问类成员是否存在限制**
|
||||
|
||||
静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),不允许访问实例成员(即实例成员变量和实例方法),而实例方法不存在这个限制。
|
||||
|
||||
### 为什么 Java 中只有值传递?
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user