静态
来源:互联网 发布:实矩阵的奇异值分解 编辑:程序博客网 时间:2024/05/17 02:31
/*
* 静态static函数中的使用。
* 什么时候函数需要静态修饰?
* 该函数没有访问过对象中的属性时,就需要静态修饰。
*
*
* static 是什么?
* 成员修饰符
* 特点:
* 1.被静态修饰的成员,可以直接被类名所调用
* 2.静态成员优先于对象存在。
* 3.静态成员随着类的加载而加载,随着类的消失而消失,静态成员生命周期很长。
* 注意事项:
* 1.静态方法只能访问静态成员,不能访问非静态成员,这就是静态方法的局限性。非静态方法能访问静态成员
* 2.静态方法中不能出现this或者super关键字。
* 3.主函数是静态的。
*
* 怎么用?
* 直接用于修饰成员。
*
* 什么时候用?
* 成员变量:如果数据在所有对象中的都是一样的。直接静态修饰
* 成员函数:如果函数没有访问过对象中的属性数据,那么该函数就是静态的。
*
* 成员变量与静态变量的区别
* 1.名称区别:
* 成员变量也叫实例变量
* 静态变量也叫类变量
*
* 2.内存存储上的区别:
* 成员变量存储到堆内存的对象中。
* 静态变量存储到方法区的静态区中。
*
* 3.生命周期区别
* 成员变量随着对象出现而出现,随对象的消失而消失。
* 静态变量随着类的出现而出现,随着类的消失而消失。
静态代码块:随着类的加载而执行,而且只执行一次。
* 作用:给类执行初始化。
* 应用场景:类不需要创建对象,但需要初始化,这是将部分代码存储到静态代码块中。
*/
class Person{
private String name;
private int age;
static String country="china"; //静态变量
Person(String name,int age)
{
this.name=name;
this.age=age;
}
public void show()
{
System.out.println("name="+name+"age="+age);
}
// public void sleep()
// {
// System.out.println("呼呼");
// }
/*
既然sleep方法没有访问到对象中的特有数据
都可以不需要对象就可以使用该方法,只要在该方法上用static修饰即可。
*/
public static void sleep() //静态函数
{
System.out.println("呼呼呼");
}
}
public class Demo{
public static void main(String[] agrs)
{
/*创建对象调用sleep方法。
发现,sleep并没有使用对象中的数据。
该对象的建立是无意义的。
该方法属于Person.class,
可以通过类名的方式来访问。
*/
// Person p = new Person("jason",21);
// p.sleep();
Person.sleep(); //静态函数,通过‘类名.函数名’,直接使用
System.out.println(Person.country); //静态变量,通过 ‘类名.变量名’,直接使用。
}
}
- 静态
- 静态
- 静态
- 静态
- 静态
- 静态
- 静态
- 静态
- 静态
- 静态与非静态
- 静态与伪静态
- 静态&非静态问题
- 静态 非静态
- 静态字段、静态方法
- 静态和静态包含
- 静态成员&静态方法
- 静态单元格(静态cell)
- 静态方法静态字段
- jQuery——入门(一)JQuery的简介与基本选择器的使用
- string的入门研究
- [UVA]11021 Tribles
- kernel中的memtest
- Fragment防止自动清理 (ViewPager滑动时,滑出屏幕后被清理)(转)
- 静态
- idea部署踩坑: ibatis中配置文件载入错误org.xml.sax.SAXParseException: The string "--" is not permitted
- js继承 原型链+构造函数+组合继承法
- 道or悼?三分钟看懂史上最逆天的区块链众筹项目The DAO
- Visual Studio 2017 找不到 afxwin.h
- 9月12日笔记【中值滤波和均值滤波】
- 扎实基础----int默认为0----问答
- 前端校招面经
- HowTo Restore RMAN Disk backups of RAC Database to Single Instance On Another Node (文档 ID 415579.1)