-
当修改其中一个对象的非静态属性时,不会导致其他对象中同样属性的修改
-
静态属性:我们创建了多个对象,多个对象共享同一个静态变量。当通过某一个对象修改静态属性时,
-
会导致其他静态属性使用这个静态属性时使用的时修改过的
-
3.2 static修饰属性的其他说明
-
①静态变量随着类的加载而加载(放到内存中),可以通过“类.静态变量”的方式进行调用
-
②静态变量的加载要早于对象的创建
-
③由于类只会加载一次,则静态 变量在内存中也只会存在一份:存在方法区的静态区
-
④ 类变量 实例变量
-
类调用 yes no
-
对象调用 yes yes
-
3.3 静态属性举例 System.out;Math.PI
-
4.使用static修饰方法:静态方法
-
① 随着类的加载而加载(放到内存中),可以通过“类.静态方法”的方式进行调用
-
② 静态方法 非静态方法
-
类调用 yes no
-
对象调用 yes yes
-
③静态方法中只能调用静态方法和属性
-
非静态方法中既可以调用静态的方法(属性)又可以调用非静态的方法(属性)
-
5.static注意点:
-
在静态方法内,不能使用this关键字、super关键字
-
6.开发中,如何确定一个属性是否要声明为static的?
-
>属性是可以被多个对象共享,不会随着对象的不同而不同
-
>类中的常量也常常声明为static
-
开发中,如何确定一个方法是否要声明为static的?
-
>操作静态属性的方法,通常设置为static
-
>工具类中的方法,习惯上声明为static,比如:Math、Arrays
*/
public class StaticTest {
public static void main(String[] args) {
Chinese.nation = “中国”;
//编译不通过
// Chinese.name = “张继科”;
Chinese c1 = new Chinese();
c1.name = “姚明”;
c1.age = 40;
Chinese c2 = new Chinese();
c2.name = “马龙”;
c2.age = 30;
c1.nation = “CHN”;
c2.nation = “CHINA”;
System.out.println(c2.nation);
System.out.println(c1.nation);
c1.eat();
Chinese.show();
//编译不通过
// Chinese.eat();
技术学习总结
学习技术一定要制定一个明确的学习路线,这样才能高效的学习,不必要做无效功,既浪费时间又得不到什么效率,大家不妨按照我这份路线来学习。
最后面试分享
大家不妨直接在牛客和力扣上多刷题,同时,我也拿了一些面试题跟大家分享,也是从一些大佬那里获得的,大家不妨多刷刷题,为金九银十冲一波!
加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0
中…(img-GehBUGQf-1725652630260)]
[外链图片转存中…(img-Xwr3N91q-1725652630260)]
加入社区:https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0