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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑泽霖 中级黑马   /  2014-11-17 14:06  /  1014 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Java静态成员
1为什么要用静态成员
当调用类功能时,没有用到类对象中封装的数据,该对象的创建没有意义,浪费堆内存的空间,应置为静态成员
2静态变量在静态函数和静态代码块之前初始化
主函数也是静态函数,所以静态变量在主函数执行前初始化,此时对象还没有产生
static int x=9;
static void show()
{
System.out.println(x);
}

3静态成员先于主函数初始化
因为主函数尚未执行所以对象没有产生,所以在静态成员中不能使用非静态成员。
虽然静态成员不属于任何一个对象,但对象可以使用静态成员。
静态成员不允许出现this,super关键字,静态成员执行时对象还没有产生,this和super根本没有指向。、
java中MAIN函数必须是静态的
main函数不能访问非静态成员,main函数不能使用this和super关键字
C++中main函数和其他普通非类成员函数一样都是全局函数,所以可以调用其他的普通函数(全局函数)
4输出数组名
C++用cout输出数组名得到的是数组的首地址
java用System.out.println输出数组名,得到:
[Ljava.lang.String;@1afae45
前半部分表示数组元素的类型,后半部分是散列值

5C++静态成员的定义和声明
静态成员必须在类的头文件中声明,在类的源文件中定义,然后才能使用:
类的头文件中:
static int a;
类的源文件中:
int ClassName::a;
静态成员在头文件的声明中不能初始化!
可以在源文件的定义中初始化。
对象可以引用静态成员。

评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
1静态代码块static{}
public class TestStaticCon
{
public static int a=0;
static{
a=10;
}
//static{},在类加载时自动执行
......
2构造代码块{}
class Demo
{
{
......
}
//没有函数头
//当类的任何构造函数执行前,都会执行一次
//用不同的或相同的构造方法创建的不同对象都会执行相同的构造代码块
Demo()
{
......
}
Demo(int x)
{
......
}
}
3局部代码块
class X
{
public static void main(String args)
{
{
int x=5;
System.out.println(“局部代码块:”+x);
}
//控制局部变量的声明周期
//当代码块结束时立即释放栈中x的内存,而不是等到函数结束后
}
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马