Java对于静态的理解

1、外部类是一个泛型类,里面定义了个静态内部类,那么静态内部类不能有泛型类的数据。

因为泛型是要在对象创建的时候才知道是什么类型的,而对象创建的代码执行先后顺序是static的部分,然后才是构造函数等等。所以在对象初始化之前static的部分已经执行了,如果你在静态部分引用的泛型,那么毫无疑问虚拟机根本不知道是什么东西,因为这个时候类还没有初始化。因此在静态方法、数据域或初始化语句中,引用泛型类型参数是非法的

2、静态方法

a.一般情况下,主方法是静态方法,所以JVM可以直接调用它,主方法为静态方法是因为它是整个软件系统的入口,而进入入口时系统中没有任何对象,只能使用类调用。

b.静态方法不需要有对象,可以使用类名调用(不需要实例也可以调用静态方法)。

c.静态方法中不能访问类的非静态成员,包括成员变量和方法;只能访问本类中的静态变量和其它静态方法。因为此时是通过类调用的,没有对象的概念。原因:从根本上说,静态变量不管类是否实例化都会存在,而实例变量只有类实例化了才存在。直接调用静态方法时并不确定实例变量是否存在。

d.静态方法不能被覆盖,如果子类中有和父类重名的静态方法,虽然编译通过,但它并不能实现多态,所以不能称作覆盖

public class Test1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Car car = new Jeep();
		car.sell();
		car.product();
		//car.quality();//父类没有这个方法,所以不能实现
	}

}
class Car{
	protected void sell(){
		System.out.println("price of car");
	}
	static void product(){
		System.out.println("car china");
	}
}
class Jeep extends Car{
	static void product(){
		System.out.println("jeep china");
	}
	protected void sell(){
		System.out.println("price of jeep");
	}
	void quality(){
		System.out.println("quality of jeep");
	}
}
3、静态代码块

静态代码块(修饰没有名字的代码块):
    1.只被执行一次;
    2.初始化块在类被加载后首先被运行,不管类是否实例化,而且只执行这一次
    3.作用:一般用来初始化一些复杂类型的静态变量。

public class Test1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Car car = new Jeep();
		System.out.println(car.size);//结果是2
		car.sell();
		car.product();
		Car car2 = new Car();
		System.out.println(car2.size);//结果是2
		//car.quality();//父类没有这个方法,所以不能实现
	}

}
class Car{
	static int size;
	static{
		size = 1;
		size++;
	}
	protected void sell(){
		System.out.println("price of car");
	}
	static void product(){
		System.out.println("car china");
	}
}
class Jeep extends Car{
	static void product(){
		System.out.println("jeep china");
	}
	protected void sell(){
		System.out.println("price of jeep");
	}
	void quality(){
		System.out.println("quality of jeep");
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值