static
具体对象的属性,称之为对象属性,成员属性,实例属性。
具体对象的方法,称之为对象方法,成员方法,实例方法。
静态:static
- 和具体对象无关,只和类相关的属性,称之为静态属性。
- 和具体对象无关,只和类相关的方法,称之为静态方法。
静态属性和静态方法,不用实例化对象,可直接通过类来使用。
先有类,再有对象。对象也可直接访问类的静态属性和静态方法。文章来源:https://www.toymoban.com/news/detail-430376.html
- 成员方法可访问类的静态属性和静态方法,也可访问成员属性和其他的成员方法。
- 静态方法只能访问类的静态属性和其他静态方法,不能访问成员属性和成员方法。
构造方法
- 构造方法没有 void 关键字
- 构造方法的名称和类名完全相同。
- 如果类中没有显式定义构造方法,JVM 会隐式创建一个无参的构造方法。
执行顺序: 静态代码块 -> 成员代码块 -> 构造方法文章来源地址https://www.toymoban.com/news/detail-430376.html
内存中数据的存储方式
- 元空间:存储的是类的结构信息、静态属性、静态方法、静态代码块。
- 栈空间:存储的是变量。
- 堆空间:存储的是具体对象的信息。
示例
class People {
String name;
String nationality = "china";
}
class Bird {
// 成员属性
String name;
// 构造方法
// 常用于成员属性的初始化操作
Bird(String a) {
name = a;
System.out.println("构造方法 " + name);
}
// 成员方法
void test() {
System.out.println("成员方法 " + name);
}
// 静态属性
static String type = "bird";
// 静态方法
static void fly() {
System.out.println("bird can fly");
}
// 静态代码块:当类的信息加载完成时,会自动优先调用静态代码块。
// 静态代码块可有多个,依次按顺序执行
// 静态代码块常用于静态属性的初始化操作
static {
System.out.println("静态代码块");
}
// 成员代码块:当创建对象(实例化类)时,成员代码块会自动执行。
// 成员代码块在静态代码块之后,构造方法之前执行。
{
System.out.println("成员代码块");
}
}
People a = new People();
a.name = "jack";
System.out.println("name:" + a.name + " nationality:" + a.nationality);
// System.out.println(Bird.type);
// Bird.fly();
Bird b = new Bird("b1");
到了这里,关于static 和构造方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!