A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

个人对于Static的总结!
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 int num=20;
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 总结
{
/*
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();
  */
  w2 w=new w2();
  

}
}

2 个回复

倒序浏览
总结的很全面!
回复 使用道具 举报
很全面啊!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马