静态关键字static和静态代码块、局部代码快、构造代码块
2017-04-18 21:29
218 查看
静态关键字static和静态代码块、局部代码快、构造代码块
一、静态什么时候使用?1、静态变量
分析对象中所具备的成员变量的值都相同时,而且这个成员不需要修饰,这时成员变量就可以被静态修饰
2、静态函数
该函数是否需要访问对象中的特有数据
二、static关键字的特点:用于修饰成员(属性和方法)
1、可以用类名直接调用,可以不用创建对象时就可以使用
2、可以使用对象的引用调用
3、被static修饰的成员可以被所有的该类的对象共享
三、static关键注意事项:
1、静态方法只能访问静态成员(非静态可以自由访问静态或非静态成员)
2、静态方法中不可以使用this和super关键字
3、主函数是静态的
四、成员变量和类变量(静态变量)的区别?
1、声明周期不同
成员变量随着对象的创建而创建,随着对象被回收而释放
静态变量随着类的加载而创建,随着类的消失而消失。
2、调用方式不同
成员变量只能被对象调用
静态变量可以被对象调用,也可以使用类调用(建议使用类调用)
3、别名不同
成员变量又叫实例变量
静态变量又叫类变量
4、数据存储位置不同
成员变量位于堆内存中
静态变量存储在方法区(数据区或者共享区)的静态区
<
4000
/span>注意:方法也放在方法区
静态方法:静态方法可以使用类来调用
五、三种代码块以及实例
静态代码块:
特点:1、随着类的加载而执行
2、只执行一次
作用:用于给类初始化(有的类不用构造函数,而需要初始化)
构造代码块: 在类中的代码块
特点:1、在创建对象时执行,每创建一个对象,就执行一次
2、在创建对象时执行,在静态代码块后执行,且在构造函数前执行
作用:可以给所有的对象进行初始化
局部代码块: 在函数中的代码块
作用:限定函数中的局部变量的生命周期
[java] view
plain copy
class StructureCode
{
private String name;
static int num;
<span style="color:#ff0000;">//构造代码块</span>
{
System.out.println("我是构造代码块");
cry(); //没创建一个对象就执行一次cry(),代替下边两个构造函数中的cry()
}
<span style="color:#ff0000;">//静态代码块</span>
static
{
num=10;
num*=num;
System.out.println("我是静态代码块");
}
StructureCode()
{
name="baby";
System.out.println("我是构造函数");
// cry();
}
StructureCode(String name) //构造函数是给对应的对象初始化
{
this.name=name;
System.out.println("我是构造函数");
// cry();
}
private void cry()
{
System.out.println("哇哇");
}
public void show()
{
<span style="color:#ff0000;">//局部代码块</span>
{
int i=55;
}
System.out.println("上边是局部代码块");
}
}
class StaticDemo1
{
public static void main(String args [])
{
StructureCode structureCode = new StructureCode("小强");
}
}
![](http://static.blog.csdn.net/images/save_snippets.png)
六、主函数
public static void main(String args [])
主函数的特殊之处:
1、格式是固定的
2、被JVM所识别
public:因为权限必须是最大的
static:不需要对象的 直接用主函数所属的类名调用即可
void:没有返回值
main:默认的方法名
String args [] 主函数的参数列表,是一个数组类型的参数,而且元素都是字符串类型的
args:arguments的缩写,可变
相关文章推荐
- 静态关键字static和静态代码块、局部代码快、构造代码块
- 局部代码块——构造代码块——静态代码块
- static 关键字 成员变量和静态变量的区别 静态使用的注意事项 静态代码块 构造代码块
- Java 基础一些代码练习笔记(static 静态代码块)
- Java中静态代码块、静态方法、static关键字详解
- JAVAEE第15天-static,final关键字,访问权限修饰符,内部类,静态代码块,包的声明和导入
- static静态代码块与非静态代码块 + 构造函数
- java基础之----静态代码块和静态方法、以及static 关键字
- 关于this和super关键字为什么不能再static方法中或者静态代码块中
- java--面向对象(static关键字、main、静态什么时候使用、静态代码块、对象的初始化过程)
- 什么是静态代码块?java中如何使用空参构造方法自动生成不同名字的对象,使用非静态的属性和静态属性有什么区别,原因是什么?如何理解static关键字
- java学习中static关键字,即静态的运用,及如何为代码写说明
- static静态代码块与非静态代码块 + 构造函数
- 08_面向对象【帮助文档的制作和作用、如何使用JDK提供的帮助文档、代码块概述(局部代码块,构造代码块,静态代码块)和讲解、继承】
- 牛客网Java刷题知识点之代码块(局部代码快、构造代码块、静态代码块)
- 黑马程序员——局部代码块、构造代码块和静态代码块
- static(c中定义的关键字1、被其修饰者 外部无法使用(相反的都可以使用extern在外部使用) 2、函数局部变量使用成为静态的放入静态池-生存期改变。c++进行了扩充,使它在类中有了特殊作用)
- JAVA自学日记1-构造代码块,静态代码块,局部代码块总结
- Java关键字(四)static关键字(静态代码块)
- JAVA基础第六天学习日记_static关键字、文档、静态代码块、单例开发模式