static
声明的成员变量
为静态成员变量,或者叫做:类属性,类变量。静态属性的访问形式:
public class StaticDemo {
String name = "zhangsan";
static int age = 30;
public static void main(String[] args) {
StaticDemo staticDemo = new StaticDemo();
//使用对象进行调用
System.out.println(staticDemo.name);
System.out.println(staticDemo.age);
//使用类名进行调用
// System.out.println(StaticDemo.name);//name无法引用,因为name为非静态变量
// System.out.println(StaticDemo.age);//age可以引用,age为静态变量
StaticDemo.age = 80;
System.out.println(StaticDemo.age); //结果为80
System.out.println(staticDemo.age);//结果为80
staticDemo.age = 70;
System.out.println(staticDemo.age); //结果为70
System.out.println(StaticDemo.age);//结果为70
}
}
public class StaticDemo {
String name = "zhangsan";
static int age = 30;
public static void main(String[] args) {
StaticDemo staticDemo = new StaticDemo();
//使用对象进行调用
System.out.println(staticDemo.name);
System.out.println(staticDemo.age);
//使用类名进行调用
System.out.println(StaticDemo.name);//name无法引用,因为name为非静态变量
System.out.println(StaticDemo.age);//age可以引用,age为静态变量
}
}
static
成员变量只有一份,被该类的所有对象共享static
变量置于方法区中的静态区,成员变量在堆中static
声明的方法为静态方法访问修饰符 static 返回值类型 方法名(){
}
访问形式:
static
方法中不可访问非static的成员this
和super
关键字public class StaticDemo2 {
String name = "zhangsan";
static int age = 30;
//静态方法
public static void test(){
System.out.println("静态方法");
}
//普通方法
public void test2(){
test(); //静态方法可以在非静态方法中调用
}
public static void main(String[] args) {
StaticDemo2 staticDemo2 = new StaticDemo2();
staticDemo2.test();
StaticDemo2.test();
staticDemo2.test2();
}
}
new
方法,但是不能直接new。如下代码:不能使用这种方式:
public class StaticDemo2 {
String name = "zhangsan";
static int age = 30;
//静态方法
public static void test(){
System.out.println("静态方法");
new StaticDemo2().test2();//使用new方法,错误 错误
}
//普通方法
public void test2(){
test(); //静态方法可以在非静态方法中调用
}
public static void main(String[] args) {
StaticDemo2 staticDemo2 = new StaticDemo2();
staticDemo2.test();
StaticDemo2.test();
staticDemo2.test2();
}
}
static
可以修饰方法和成员变量
思考:
什么时候需要我们定义static方法?
答:一般工具类中的方法定义为static
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。