File tree Expand file tree Collapse file tree 1 file changed +30
-2
lines changed Expand file tree Collapse file tree 1 file changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -741,9 +741,37 @@ public void f5(int a) {
741
741
742
742
### 静态方法和实例方法有何不同?
743
743
744
- 1 . 在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说, ** 调用静态方法可以无需创建对象。 **
744
+ ** 1、调用方式 **
745
745
746
- 2 . 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制。
746
+ 在外部调用静态方法时,可以使用 ` 类名.方法名 ` 的方式,也可以使用 ` 对象.方法名 ` 的方式,而实例方法只有后面这种方式。也就是说,** 调用静态方法可以无需创建对象** 。
747
+
748
+ 不过,需要注意的是一般不建议使用 ` 对象.方法名 ` 的方式来调用静态方法。这种方式非常容易造成混淆,静态方法不属于类的某个对象而是属于这个类。
749
+
750
+ 因此,一般建议使用 ` 类名.方法名 ` 的方式来调用静态方法。
751
+
752
+ ``` java
753
+
754
+ public class Person {
755
+ public void method () {
756
+ // ......
757
+ }
758
+
759
+ public static void staicMethod (){
760
+ // ......
761
+ }
762
+ public static void main (String [] args ) {
763
+ Person person = new Person ();
764
+ // 调用实例方法
765
+ person. method();
766
+ // 调用静态方法
767
+ Person . staicMethod()
768
+ }
769
+ }
770
+ ```
771
+
772
+ ** 2、访问类成员是否存在限制**
773
+
774
+ 静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),不允许访问实例成员(即实例成员变量和实例方法),而实例方法不存在这个限制。
747
775
748
776
### 为什么 Java 中只有值传递?
749
777
You can’t perform that action at this time.
0 commit comments