A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区
传智教育官网黑马程序员官网
只需一步,快速开始
张亚昆
中级黑马
黑马币:131
帖子:182
精华:0
© 张亚昆 中级黑马 / 2015-7-18 00:29 / 564 人查看 / 3 人回复 / 0 人收藏 转载请遵从CC协议 禁止商业使用本文
<P> </P> <P>这个是我个人的总结,我感觉我的导师说的很对,先用再学。</P> <P>/* static 关键字 原因:如果对象具有共同属性,我们希望内存中只有一份,而不用每次都给对象赋值,而且能被一个类中所有的实例对象共享。 作用:是一个修饰符,用于修饰成员(成员变量,成员函数).一个类中所有对象共享属性。 格式:当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用。类名.静态成员。 静态代码块。 格式: static { 静态代码块中的执行语句。 } 注意事项; 特点:随着类的加载而执行,只执行一次,并优先于主函数。 用于给类进行初始化的。 static特点: 1,随着类的加载而加载。 也就说:静态会随着类的消失而消失。说明它的生命周期最长。 2,优先于的对象存在 明确一点:静态是先存在。对象是后存在的。 3,被所有对象所共享 4,可以直接被类名所调用。 实例变量和类变量的区别: //成员变量,实例变量 静态的成员变量,类变量 1,存放位置。 类变量随着类的加载而存在于方法区中。 实例变量随着对象的建立而存在于堆内存中。 2,生命周期: 类变量生命周期最长,随着类的消失而消失。 实例变量生命周期随着对象的消失而消失。 静态使用注意事项: 1,静态方法只能访问静态成员。 非静态方法既可以访问静态也可以访问非静态。 2,静态方法中不可以定义this,super关键字。 因为静态优先于对象存在。所以静态方法中不可以出现this。 3,主函数是静态的。 静态方法只能访问静态的成员变量和静态的成员方法 静态方法: 成员变量:只能访问静态变量 成员方法:只能访问静态成员方法 非静态方法: 成员变量:可以是静态的,也可以是非静态的 成员方法:可是是静态的成员方法,也可以是非静态的成员方法。 简单记: 静态只能访问静态。 静态有利有弊 利处:对对象的共享数据进行单独空间的存储,节省空间。没有必要每一个对象中都存储一份。 可以直接被类名调用。 弊端:生命周期过长。 访问出现局限性。(静态虽好,只能访问静态。) static修饰成员变量和成员方法。 特点: A:随着类的加载而加载 B:优先于对象存在 C:为什么要使用静态呢? 如果某个内容是被所有对象所共享,那么,该内容就应该用静态修饰。 没有被静态修饰的内容,其实是属于对象的特殊描述。 举例: 饮水机和水杯的问题? D:可以直接被类名调用 */ class w2 { String name; int age; static String sex;//所有成员共享属性了。 /* static //静态代码块 { System.out.println("静态代码块"); } */ /* int num=10; public static w2(String name ) //错误的 静态方法中不能定义this { //this.name=name; System.out.println(num);//隐含了this ,相当于this.num 这是不可以的。隐含访问的是成员变量 System.out.println(this.num);//明确是搞告诉访问了成员变量。 } //静态只能访问静态 */ public w2(String name ) { this.name=name; } public w2(String name,int age) { this.name=name; this.age=age; } public w2(String name,String sex,int age ) { this.name=name; this.sex=sex; this.age=age; } public void show( ) { int num=10; System.out.println(name+sex+age+num); } } class w1 { /* static //静态代码块 //随着类的加载而执行,只执行一次,并优先于主函数。 { System.out.println("静态代码块"); } */ public static void main(String[] args) { System.out.println("哈哈"); w2 w=new w2("泥马"); w.show(); w2 w1=new w2("狗"+10); w1.show(); w2 w2=new w2("几把"+"妖"+20); w2.show(); w2.sex="男银"; w2.show(); w.show(); w1.show(); } }</P>复制代码
n361204357 发表于 2015-7-18 09:50
黑马币≧500个即可申领本勋章