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 ...
随机推荐
- 获取Wi-Fi的SSID
前几天做项目的时候,碰到一个问题,获取wifi的SSID,其实就是获取Wi-Fi的名字 iOS12以前 在iOS13之前获取wifi的SSID很简单,苹果提供了接口CNCopyCurrentNetwo ...
- 题目分享X
题意:一张票有n位数,如果这张票的前一半数字的和等于后一半数字的和(n一定是偶数),就称这张票为快乐票.有些数被擦除了,标记为’?’(’?‘的个数也是偶数),现在Monocarp 和 Bicarp 进 ...
- python模块之time and datetime
time # python3 # coding = utf-8 import time timestamp = time.time() print('timestamp:%s, type: %s' % ...
- java基础 之 从Class.forName()跟.class的区别看类的初始化
代码如下: public class Test { public static void main(String[] args) throws Exception { System.out.print ...
- Spring 学习 之 再探publish-event机制
之前的文章链接:https://blog.csdn.net/qq_41907991/article/details/88544777 我们要知道的是,Spring的publish-event使用的是监 ...
- PrintStream:打印流
package com.itheima.demo05.PrintStream; import java.io.FileNotFoundException; import java.io.PrintSt ...
- SQL注入和Mybatis预编译防止SQL注入
什么是SQL注入?? 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或页面请求url的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命 ...
- JUC之CountDownLatch源码分析
CountDownLatch是AbstractQueuedSynchronizer中共享锁模式的一个的实现,是一个同步工具类,用来协调多个线程之间的同步.CountDownLatch能够使一个或多个线 ...
- 超过百万的StackOverflow Flutter 问题-第二期
老孟导读:一个月前分享的<超过百万的StackOverflow Flutter 问题-第一期>受到很多朋友的喜欢,非常感谢大家的支持,在文章末尾有第一期的链接,希望此文能对你有所帮助. N ...
- Qt标准对话框按钮文字等设置为中文
问题描述:QMessageBox.QColorDialog等标准对话框按钮显示都是英文 设置中文方法如下: 1)拷贝Qt安装目录下的qt_zh_CN.qm和qt_zh_CN.ts文件到工程目录中 2) ...