Static关键字


 1 package OOP;
 2 
 3 public class Static {
 4     public static int age;//加了static 修饰符代表为静态变量=类变量,类可以直接调用赋值
 5     private  String name;//不加static 修饰符代表为非静态变量,只能通过创建对象调用赋值
 6     public static  void add(){//静态方法同上
 7         System.out.println("add");
 8     }
 9     public  void  test(){//非静态方法同上,
10         System.out.println("test");
11     }
12     public static void main(String[] args) {
13           int sum;
14         Static a=new Static();
15         sum=10;
16         //Static.age=10;
17         Static.add();
18        // Static.test();
19         a.test();
20         //a.age=10;
21         a.name="hpp";
22         System.out.println(a.name+"\t"+age);
23 
24 
25     }
26 }
 总结:静态变量静态或者方法可以直接使用类调用,非静态变量或方法必须new一个对象调用。
 1 /**
 2  * Static关键字
 3  *1 static修饰属性:静态变量
 4  *实例变量又称为成员变量:
 5  *实例变量必须对象实例化才能调用,
 6  *类变量用Static修饰也叫做静态变量,类名就可以直接调用
 7  *
 8  * 2 static修饰方法: 静态方法
 9  *和静态变量相同,可以在方法中直接通过类名调用,也可以通过创建对象进行调用
10  * 非静态方法,只能通过对象调用,无法通过类名直接调用。
11  * 静态方法中不可以使用this,super等关键字,因为没有实例的存在   ···
12  */
13 public class Demo3 {
14    static int age=1;
15 
16     @Test
17     public void add(){
18         int age=10;
19         Demo3 demo3=new Demo3();
20         demo3.age=8;
21         System.out.println(demo3.age);
22         System.out.println(age);
23         //变量声明在方法外成为实例变量,如果方法内定义了同名变量
24         // 对象想要调用必须通过demo3.age进行赋值(为了进行区分,此时age与demo.age不是同一个变量)
25         //如果没有定义同名变量,则age与demo3.age没有区别指的是同一个变量,
26         // 直接调用赋值或者通过对象调用都可以,一个类的每个对象都有一套自己的非静态类属性,
27         Demo3 demo31=new Demo3();
28         System.out.println(demo31.age);
29         //对于static修饰的静态类变量,一个类的多个对象共享这个静态变量,其中一个对象修改变量值,
30         // 则其他对象调用此变量,是为修改过的变量
31 
32     }
33 
34 
35 }

 

 
posted @ 2021-09-05 17:13  tiiiiii  阅读(34)  评论(0)    收藏  举报