java中静态方法与抽象方法的使用规则 ,及对象加载的顺序

静态方法:类方法 通过类名调用即可,不需要对象
  在静态方法中不可以使用this,原因是调用该方法不一定是对象
  由于成员方法和成员变量也需要对象调用,所以静态方法中不能直接调用成员方法和成员变量
  
  静态变量:类变量,通过类名调用即可
  静态变量是输入类的,他的初始化是在类加载时,
  静态变量是一个所有对象都可以共享的变量,某个成员对静态变量进行更改其他成员使用的是更改后的值
  成员变量是各个成员独有的
 
  静态变量只会在类加载时被初始化一次,无论我们new多少个对象
  成员变量每次new对象,新的对象都会初始化自己的成员变量
  
  类加载时,此时静态变量会进行初始化操作 如果我们给值了,按照我们给的值来,如果没有,就和成员变量规则一样
 
 类只会被加载一次
  
  当我们创建对象时,如果类加载过了,就不会再次加载,此时只会初始化成员变量  

//对一些数组进行操作
public class ArrayUtils {
	public static int a;
	public int b;
		//静态代码块
	static {
		//不用我们调用,在类加载时会自动执行,静态代码块只执行一次
		//作用是,在类加载时对类进行初始化操作,例如对静态变量进行初始化赋值等等
		System.out.println("静态代码");
	}
		//遍历数组
	public static void print(int[] array) {
		for(int v : array) {
			System.out.println(v +" ");
		}
		System.out.println();
	}
}

  抽象类和抽象方法
         当我们有些行为的实现无法统一,我们就可以将该行为定义为抽象方法
         抽象方法的形式;被abstract修饰,并且没有方法体
         抽象方法无法直接使用,只能是子类中重写(实现)了抽象方法之后才能使用
         1.抽象方法如果定义在类中,那么这个类一定是抽象类 被abstract修饰的类是抽象类
         2.抽象类中不一定有抽象方法
         3.抽象类和普通类相比较,普通类中可以定义的内容抽象类都可以定义
                所以抽象类从定义内容来看只是比普通类中多定义了抽象方法。
         4.抽象类不能被实例化(不能创建对象),所以抽象类一般作为基类,让普通类来继承
         5.普通类继承了抽象类,必须重写(实现)抽象类中的所以抽象方法

public abstract class Abstract {
	//·
	public void normal() {
		
	}
	//抽象方法
	public abstract void abs();
	
}
class sub extends Abstract{

	@Override
	public void abs() {
		
		
	}
	
}

 

 

对象的加载顺序
        类中可以定义的内容:
  成员变量 静态变量 成员方法 静态方法 构造方法 代码块 静态代码块
  如果是抽象类还可以在以上基础上定义抽象方法
  
 1.加载期间先加载静态代码块和静态变量(他们优先级相同谁在前面先执行谁)静态部分只加载一次
 2.再加载代码块和成员变量(自上而下)
 3.最后构造方法
  
  如果有父类时
  1.如果有父类时先加载父类静态部分,再加载子类的静态部份
  2.加载父类的代码块、成员变量加载父类构造方法
  3.再加载子类代码块、成员变量加载子类构造方法

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值