static关键字修饰属性
static 静态的,可以修饰属性,方法,代码块(或初始化块) , 内部内
非static修饰的属性(实例变量):各个对象各自拥有一套各自的副本
static修饰属性(l类变量):
1.由类创建的所有的对象,都共用一个属性
2.当其中一个对象对此属性进行修改,会导致其他对象对此属性的一个调用。
3.类变量随着类的加载而加载的。而且独一份
4.静态的变量可以直接通过 “类.类变量” 的形式来调用
5. 类变量的加载要早于对象,所以当有对象以后, 可以 "对象.类变量" 的使用,但是 "类.实例变量" 是不行的
6.类变量存在于静态域
static修饰方法(类方法):
1.随着类的加载而加载,在内存中也是独一份
2. 可以直接通过 "类.类方法" 的方式来调用
3.内部可以调用静态的属性或者静态的方法,而不能调用非静态的,反之非静态的是可以调用静态的
4.静态的方法内不能有 this 或者 super 关键字
注意:静态的结构(static的属性,方法,代码块,内部类)的生命周期要早于非静态的结构,同时回收也要晚于非静态的结构。生命周期比较长
TestSportsMan:
package com.aff.wrapper; public class TestSportsMan {
public static void main(String[] args) {
SportsMan s1 = new SportsMan("苗苗", 25);
SportsMan s2 = new SportsMan("芳芳", 26);
s1.name = "文静";
s1.nation = "China";
System.out.println(s1);
System.out.println(s2);
System.out.println(SportsMan.nation);// 类变量随着类的加载而加载的。而且独一份
// SportsMan.show1();//无法直接调用
SportsMan.show2();
}
} class SportsMan {
// 实例变量
String name;
int age;
// 类变量
static String nation; public SportsMan(String name, int age) {
super();
this.name = name;
this.age = age;
} @Override
public String toString() {
return "SportsMan [name=" + name + ", age=" + age + ", nation=" + nation + "]";
} public void show1() {
System.out.println("我喜欢芳芳");
} public static void show2() {
System.out.println("我喜欢苗苗");
}
} 输出结果:
SportsMan [name=文静, age=25, nation=China]
SportsMan [name=芳芳, age=26, nation=China]
China
我喜欢苗苗
static关键字修饰属性的更多相关文章
- 使用static关键字修饰一个属性
//使用static关键字修饰一个属性 //static作用: //static:静态 //1.使用static关键字修饰一个属性,声明为static的变量本质就是一个全局变量; //2.静态变量或方 ...
- 静态static关键字概述和静态static关键字修饰成员变量
static关键字 概述 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属 于某个对象的.也就是说,既然属于类,就可以不靠创建对象来调用了 ...
- java中普通的顶级类是不能使用static关键字修饰的。只有内部类可以使用static修饰,也可以不使用staitc关键字修饰。
java中普通的顶级类是不能使用static关键字修饰的.只有内部类可以使用static修饰,也可以不使用staitc关键字修饰. java中的类可以是static吗?答案是可以.在java中我们可以 ...
- 静态static关键字修饰成员方法和静态static的内存图
当 static 修饰成员方法时,该方法称为类方法 .静态方法在声明中有 static ,建议使用类名来调用,而不需要 创建类的对象.调用方式非常简单 ~类方法:使用 static关键字修饰的成员方法 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第6节 static静态_12_静态static关键字修饰成员变量
创建一个学生类 定义成员变量,无参构造,全参构造.成员变量的getter和setter 所在教室必须是一样的,定义所在教室 下面来创建两个学生 只给one的room赋值了.two的教室并没有赋值.都输 ...
- 阶段1 语言基础+高级_1-3-Java语言高级_1-常用API_1_第6节 static静态_13_静态static关键字修饰成员方法
static关键字 用来修饰方法的情况 任何使用这个静态方法呢? 可以直接通过对象名称的方式进行调用. 更好的写法是通过类名称进行调用. 分别定义成员变量和静态变量 静态方法里面不能用this
- static 关键字 静态属性与方法 -> :: self $this 区别 可见性的关键字区别
1.声明类属性或方法为静态,就可以不实例化类而直接访问.静态属性不能通过一个类已实例化的对象来访问(但静态方法可以). 2.由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可 ...
- 用static关键字修饰类
Java里面static一般用来修饰成员变量或函数.但有一种特殊用法是用static修饰内部类,普通类是不允许声明为静态的,只有内部类才可以.被static修饰的内部类可以直接作为一个普通类来使用,而 ...
- static关键字修饰类
今天继续研究公司的新项目,据说是京东的架构,研究看了一番,果然很牛逼,大致是Maven+spingmvc+spring+mybatis+ehcache+velocity来搭建的,数据库用的是mysql ...
随机推荐
- 5分钟入门pandas
pandas是在数据处理.数据分析以及数据可视化上都有比较多的应用,这篇文章就来介绍一下pandas的入门.劳动节必须得劳动劳动 1. 基础用法 以下代码在jupyter中运行,Python 版本3. ...
- 自定义Element父子不关联的穿梭树
Element自身是有一个Transfer穿梭框组件的,这个组件是穿梭框结合checkbox复选框来实现的,功能比较单一,自己想实现这个功能也是很简单的,只是在项目开发中,项目排期紧,没有闲功夫来实现 ...
- 1年之后的拿高工资的资本,Java线程
只要开启线程,都会开启一块对应的栈内存,然后进行同步执行. -- 谈斌 线程是CPU用来处理程序的资源,线程的执行是抢占式的. 线程开启方式: 创建一个类,继承Thread类.重写 run(), 并在 ...
- qt creator源码全方面分析(4-5)
目录 Qt中的字符串 QLatinString 详细介绍 源码 小结 QStringLiteral(str) 详细介绍 源码 小结 Qt中的字符串 Qt中处理字符串最常用的肯定是QString,但是在 ...
- Owin Katana 的底层源码分析
最近看了一下开源项目asp.net katana,感觉公开的接口非常的简洁优雅,channel 9 说是受到node.js的启发设计的,Katana是一个比较老的项目,现在已经整合到asp.net c ...
- Properties集合与IO流
package com.itheima.demo07.Prop; import java.io.FileOutputStream; import java.io.FileReader; import ...
- DP之石子堆合并问题
相邻 环形 总结 (1)相邻:在一个圆形操场的四周摆放着n堆石子(n<= 100),现要将石子有次序地合并成一堆.规定每次只能选取相邻的两堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得 ...
- 推荐 10个 NB的 IDEA 插件,开发效率至少提升一倍
友情提示:插件虽好,可不要贪装哦,装多了会 卡 .卡 .卡 ~ 正经干活用的 分享一点自己工作中得心应手的IDEA插件,可不是在插件商店随随便便搜的,都经过实战检验,用过的都说好.可能有一些大家用过的 ...
- SpringMvc 你该知道如何在HandlerExceptionResolver中获取Model
在项目开发中,我们通常通过参数的形式注入Model对象,如: @RequestMapping("/demo") public String demo(Model model) { ...
- 【雕爷学编程】Arduino动手做(3)---微波雷达感应开关模块
37款传感器和模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器与模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备 ...