static用法

/*
 * 静态函数的生命周期:静态的成员变量数据是优先于对象存在的。
 * static什么时候修饰一个函数?
 *     如果一个函数没有直接的访问到非静态的成员时,那么就可以使用static修饰。一般用于工具类型的方法。
 * 
 * 没有使用static修饰的成员变量和方法都必须使用对象来调用。Java编程时不要使用对象去调用static修饰
 * 的成员变量和方法,而是应该使用类去调用static修饰的成员变量和方法。
 * 
 * 静态函数要注意的事项:
 *    1.静态函数是可以用类名或对象进行调用。而非静态的函数只能通过对象进行调用。
 *    2.静态函数可以直接访问静态的成员,但是不能直接访问非静态的成员。
 *         原因:静态函数是可以通过类名进行调用的,这时候还没有存在对象,而非静态的成员数据是随着对象的存在而存在的。
 *    3.非静态的函数是可以直接访问静态与非静态的成员。
 *         原因:非静态的函数只能由对象调用,当对象存在时,静态数据早就已经存在了,而非静态的数据也睡着对象的创建而存在。
 *    4.静态函数不能出现this或者super关键字。
 *         原因:因为静态函数是可以使用类名进行调用的,一旦使用类名调用这时候不存在对象,而this关键字总是指向调用该方法的对象。
 *静态成员变量和非静态成员变量的区别:
 *    1.作用上的区别:
 *       1.静态的成员变量作用是共享一个数据给所有对象使用。
 *       2.非静态的成员变量作用是描述一类事物的公共属性。
 *    2.数量与存储位置上的区别:
 *       1.静态的成员变量是存储在方法区的内存中,而且只会存在一份数据。
 *       2.非静态的成员变量是存储在堆内存中,有n个对象就会有n份数据。
 *    3.生命周期的区别:
 *       1.静态的成员变量数据是随着类的加载而存在,随着类文件的消失而消失。
 *       2.非静态的成员数据是随着对象的创建而存在,随着对象被垃圾回收器回收而消失。      

 * */


public class Demo{
       public static void main(String[] args){   
      Student.study();
     System.out.println(Student.country);
       }
}
class Student{
String name;
static String country="中国";
public Student(String name){
this.name=name;
System.out.println(this.name);
}
public static void study(){
System.out.println("好好学习");
}
}

运行结果:

   好好学习
   中国




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值