static

public abstract class ClassA {
int num;

//static属性可以被继承
// 可以和 final 联合使用
static int num2 = 10; //计数 有多少个ClassA 的实例被创建
final static int MON = 1;


//static 依然可被重写
//  final static 方法也不能被重写
static void fun(){
System.out.println("!!!");
}

//静态方法不能加abstract  
// public static abstract void fun2();

}


public class ClassB extends ClassA{
static final  int version;


/*---static 代码块 ---*/
static{
//整个程序只执行一次的操作
// 比如  设定 加载资源的路径
// 在预加载的时候执行  可以有逻辑  在main运行之前就去执行
int number = 10;
version = 20;
if (ClassA.num2 == 0) {

}
ClassB obj = new ClassB();

}



//若重复  则子类说了算
static int num2=-90;
static void fun(){
System.out.println("-----");
//static方法中不能使用
// (非static)成员属性/方法
// static 在静态区加载时  main还没有执行 
//   没有实例 自然就没有成员属性/方法
// age = 20;
// disp();
}

int age=0;

//成员方法中  可以直接使用 static方法/属性
void disp(){
fun();
num2 = 100;
}

}


public class ClassC {
//----工具类-------
// 仅仅负责逻辑处理
//  你给我条件 我去运算  
//  不需要用到 实例本身  那么之间简化为static方法

void add(int a, int b){

}

static void factorial(int x){

}

}




/*------
 * 类 (类对象  Class名) : 印花模子       预加载时创建
 * 在静态区中  一个class有且只有一个
 * 抽象类也有类对象
 * 
 * 实例 (实例对象): 月饼             程序运行阶段 时被创建
 * 引用在 栈区  实例本身在 堆区
 * 可以有很多个
 * -------*/




public class MainTest {
//成员属性  在实例对象的内部  有多少个实例 就有多少个num
int num=10;
void fun(){
System.out.println("成员 fun");
}

//静态属性(类属性)
//   静态属性放在类对象中   类对象只有一个   
//   不论有多少个实例   静态属性只有一个
static int num2 = 20;
static void fun2(){
System.out.println("static fun2");
}


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

MainTest obj = new MainTest();
MainTest obj2 = new MainTest();

//访问 static成员  用类名.成员
// eclipse 也支持  实例.static成员   但不推荐
// System.out.println(MainTest.num2);
// System.out.println(obj.num);
//
// obj2.num = -10;
// obj2.num2 = -20; //实际上 还是  MainTest.num2
//
// System.out.println(obj.num2); //MainTest.num2
// System.out.println(obj.num);

// MainTest.fun2();
// obj.fun2();


/*--------static 和继承----------*/
if (true) {
ClassB b = new ClassB();
System.out.println(ClassB.num2);
System.out.println(ClassB.class); 
ClassB.fun();
}



ClassC c = new ClassC();
c.factorial(10);
ClassC.factorial(10);






}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值