对静态类到对静态方法和静态属性 static的初步理解
2018-03-12 21:13
330 查看
对于静态类我是这么理解的,static修饰的类没有构造函数(但是可以有静态构造方法对初始属性进行赋值),不能被实例化,不能被继承,它里面的static方法只能调用被static修饰的变量。
![](https://img-blog.csdn.net/20180312211556535)
要说的是静态类说是这么说,我试了一下不能直接新建一个静态类,这也就说明这个静态类其实只能出现在一个其他类里面,这时候叫静态内部类(听说过吧)
在继续说静态static这个意思,在一个类中被static修饰的东西(属性或者方法),在第一次被调用的时候就自动存在内存中了所以在Test被实例化的时候T已经自动运行了,而普通的类是实例化对象之后里面的属性和方法才会被放到内存中等待被引用。这就决定了在调用static修饰的属性或者方法时候可以直接用类名点(.)方法名调用,普通的类必须要先new一个实例才可以被调用里面的属性和方法。
在普通类中被static修饰的属性叫类属性同理方法叫类方法,属于类本身的,修改一个则这个类的实例对象中的static修饰的属性都变。
![](https://img-blog.csdn.net/20180312205146768)
如果你想用Test类中的方法或者属性就要先实例化new 一个,不管你new 了多少个Test的实例,一旦类属性变了,所有的实例里面的这个static修饰的类属性就都变了
关于什么用我的初步理解,就是你这个类里面要用一个方法,正好别的同级别的类里面都没有,你又不想这个方法影响程序其他地方(别的类无法调用这个Test类中的静态内部类T)。
要说的是静态类说是这么说,我试了一下不能直接新建一个静态类,这也就说明这个静态类其实只能出现在一个其他类里面,这时候叫静态内部类(听说过吧)
在继续说静态static这个意思,在一个类中被static修饰的东西(属性或者方法),在第一次被调用的时候就自动存在内存中了所以在Test被实例化的时候T已经自动运行了,而普通的类是实例化对象之后里面的属性和方法才会被放到内存中等待被引用。这就决定了在调用static修饰的属性或者方法时候可以直接用类名点(.)方法名调用,普通的类必须要先new一个实例才可以被调用里面的属性和方法。
在普通类中被static修饰的属性叫类属性同理方法叫类方法,属于类本身的,修改一个则这个类的实例对象中的static修饰的属性都变。
如果你想用Test类中的方法或者属性就要先实例化new 一个,不管你new 了多少个Test的实例,一旦类属性变了,所有的实例里面的这个static修饰的类属性就都变了
关于什么用我的初步理解,就是你这个类里面要用一个方法,正好别的同级别的类里面都没有,你又不想这个方法影响程序其他地方(别的类无法调用这个Test类中的静态内部类T)。
相关文章推荐
- 5.Static ,protect,属性和方法,静态方法(static)和实例方法,JAVA的静态变量、静态方法、静态类
- 对static 修饰符之静态变量和静态方法的理解
- 什么是静态(static)?什么是静态方法,静态变量,静态块和静态类?
- php面向对象中static静态属性与方法的内存位置分析
- static 关键字 静态属性与方法 -> :: self $this 区别 可见性的关键字区别
- 类实例化对象可以访问静态(static)方法,但是不能访问静态属性。
- 黑马程序员--对静态属性和静态方法的理解
- 什么是静态(static)?什么是静态方法,静态变量,静态块和静态类?
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- php面向对象中static静态属性和静态方法的调用
- Java关键字—static(静态变量、静态方法、静态类)
- 对static 修饰符之静态变量和静态方法的理解
- 静态方法 静态属性 静态类
- 静态代码块、代码块、构造方法、普通方法、static方法、 *静态属性、普通属性的加载顺序、执行顺序
- php面向对象中static静态属性和静态方法的调用
- 面向对象银角大王补充2-self就是调用当前方法的对象-静态字段,公有属性-封装的理解-继承的理解,普通方法,静态方法
- php面向对象中static静态属性和静态方法的调用
- PHP 类的静态成员属性与静态方法 static 关键字
- Javascript 面向对象(共有方法,私有方法,特权方法,静态属性和方法,静态类)示例讲解