栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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.再加载子类代码块、成员变量加载子类构造方法

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/770344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号