package Xiaobai;
/**
* 1.static 声明的成员变量称为静态变量或类变量
* 2、使用static声明的方法称为静态方法
* 3、在类加载的时候,会将静态的内容加载到方法区中的静态域中,静态的内容先于对象的存在,
* 这个静态内容被所有该类的对象共享
* 4、普通变量被调用时使用 对象.变量 来进行调用
* 类变量或静态变量可以使用 对象.变量,也可以使用类名.变量来进行调用
* 5、调用静态的方式为:【推荐】 类名.方法(); 对象.方法();
*6、静态变量不能定义在方法中,在静态方法中不能直接调用非静态的属性和方法,但反之可以
* new TestStatic().tt();//间接调用非静态方法
* static 使用场景:
* 某些特定的数据想要在类中共享时,只有一块--》可以使用static
* 静态属性:(类变量)
* 非静态属性:(实例变量)
*/
public class TestStatic {
/*
//属性
int age;
String name ;
static char nation;
public static void main(String[] args) {
TestStatic.nation = '汉';
//创建对象
TestStatic t1 = new TestStatic();
//为属性赋值
t1.age = 12;
t1.name = "张三";
// t1.nation = '汉';
TestStatic t2 = new TestStatic();
//为属性赋值
t2.age = 8;
t2.name = "李四";
// t2.nation = '汉';
System.out.println(t1.nation);
System.out.println(t2.nation);
}*/
int a;
static int b;
static int widjh;
public static void gg() {
String nn;
System.out.println("gg");
// System.out.println(a);1、在静态方法中不能直接访问非静态的属性
//System.out.println(new TestStatic().a);
//static int n;静态变量不能定义在静态方法中
//new TestStatic().tt();//间接调用非静态方法
}
void tt() {
System.out.println("tt");
System.out.println(a);
System.out.println(b);
//static int w;静态变量不能定义在普通方法中
this.gg();
}
public static void main(String[] args) {
TestStatic hi = new TestStatic();
// System.out.println(this.a);2.在静态方法中,不能用this关键字
// hi.b = 20;//对象.静态属性
// TestStatic.b = 19;//类名.静态属性(推荐)
// //调用方法
// TestStatic.widjh = 2;
// //调用静态的方式为: 类名.方法(); 对象.方法();
//TestStatic.gg();
// hi.gg();
// gg();//调用静态方法 在同一个类中可以直接调用
hi.tt();
}
}
//声明一个静态属性
/* static int count;
public TestStatic() {//无参的构造方法
count++;
System.out.println("创建了"+count+"个对象");
}
/**
*匿名对象的特点:
* 一次性,只能使用一次
* 格式:
* new 类名();
* 匿名对象可以作为实际参数进行传递
public static void main(String[] args) {
new TestStatic();//创建匿名对象
new TestStatic();//创建匿名对象
new TestStatic();
}
}
*/
static
最新推荐文章于 2024-07-05 14:51:01 发布