12.Java基础概念-面向对象-static
欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
Facts speak louder than words!
一、static关键字的含义
- 在Java中,static关键字用于修饰类、方法和变量。
- static既可以用来修饰成员变量也可以用来修饰成员方法。
- static修饰的成员变量叫作静态成员变量(类变量),修饰的成员方法叫作静态成员方法(类方法)。
- static修饰后的成员变量可以被类的所有对象共享(访问,修改),但注意它不属于某一个对象。⭐
二、static修饰成员变量
static修饰的成员变量是静态成员变量,它是属于类的,只加载一次,内存中只有一份。
访问格式:
【类名.静态成员变量名】
使用场景:
静态成员变量:表示如班级等类的所有对象共享的信息时。
静态成员变量的特性:
不属于某个对象,是类的属性,所有对象共享的,不存储在某个对象的空间中
即可以通过对象进行访问,也可以通过类进行访问
类变量存储在方法区中
随类的加载而加载,随类的销毁而销毁
public class Person {
String name;
int age;
static String city = "苏州"; // 静态变量,属于类,所有对象共享。
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public void talk() {
System.out.println("我是:"+this.name + " 年龄:"+this.age+" 来自:"+city);
}
public static void main(String[] args) {
Person p1 = new Person("张三",18);
Person p2 = new Person("李四",19);
p1.talk();
p2.talk();
}
}
三、static修饰成员方法
static修饰的成员方法是静态成员方法,是属于类的方法。
访问格式:
【类名.静态成员变量】
使用场景:
该方法是一个公用的功能,比如说话talk。
静态成员方法的特性:
不属于某个对象,是类方法
即可以通过对象进行访问,也可以通过类.方法名进行访问
不能在静态成员方法中访问任何非静态成员变量
public class Person {
String name;
static String city = "深圳";
public void say(String name) {
this.name = name;
}
public static void talk() {
//say("张三");//静态方法不能调用非静态方法,编译不通过
//this. 不能使用this关键字
//super.不能使用super关键字
System.out.println("我来自:"+city);
}
public static void main(String[] args) {
talk(); //没有实例化对象,talk方法就可以直接使用
}
}
四、static修饰代码块
static 修改代码块称为静态代码块。静态代码块,是 Java 类中的 static{ } 修饰的代码。用于类初始化时,为类的静态变量赋初始值,提升程序性能。
public class Person {
static { // 静态代码块
}
}
五、static修饰内部类
static修饰内部类称为静态内部类,在创建内部类的实例时,不需要创建外部类的实例。
public class Outer {
static class Inner {
}
}
class OtherClass {
//在创建静态内部类的实例时,不需要创建外部类的实例
Outer.Inner inner = new Outer.Inner();
}
题外话:
觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥The road is long and the line is coming,让我们一起加油吧!🌙🌙🌙