java中什么时候需要初始化?java中,什么时候需要new来实例化
各位老铁们好,相信很多人对java中什么时候需要初始化都不是特别的了解,因此呢,今天就来为大家分享下关于java中什么时候需要初始化以及java中,什么时候需要new来实例化的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
什么时候进行java类的初始化
java中类的显示初始化会在首次被“主动使用”时执行初始化,为类(静态)变量赋予正确的初始值。在Java代码中,一个正确的初始值是通过类变量初始化语句或者静态初始化块给出的。而我们这里所说的主动使用包括:
1.创建类的实例
2.调用类的静态方法
3.使用类的非常量静态字段
4.调用Java API中的某些反射方法
5.初始化某个类的子类
6.含有main()方法的类启动时
初始化一个类包括两个步骤:
1、如果类存在直接父类的话,且直接父类还没有被初始化,则先初始化其直接父类
2、如果类存在一个初始化方法,就执行此方法
注:初始化接口并不需要初始化它的父接口。
java中,什么时候需要new来实例化
(1)同一个对象在不同时刻体现出来的不同状态。
(2)多态的前提:
A:有继承或者实现关系。
B:有方法重写。
C:有父类或者父接口引用指向子类对象。
多态的分类:
a:具体类多态
class Fu{}
class Zi extends Fu{}
Fu f= new Zi();
b:抽象类多态
abstract class Fu{}
class Zi extends Fu{}
Fu f= new Zi();
c:接口多态
interface Fu{}
class Zi implements Fu{}
Fu f= new Zi();
(3)多态中的成员访问特点
A:成员变量
编译看左边,运行看左边
B:构造方法
子类的构造都会默认访问父类构造
C:成员方法
编译看左边,运行看右边
D:静态方法
编译看左边,运行看左边
为什么?
因为成员方法有重写。
(4)多态的好处:
A:提高代码的维护性(继承体现)
B:提高代码的扩展性(多态体现)
(5)多态的弊端:
父不能使用子的特有功能。
现象:
子可以当作父使用,父不能当作子使用。
(6)多态中的转型
A:向上转型
从子到父
B:向下转型
从父到子
java里对象的初始化有什么作用,什么时候要用到
对象初始化的例子如:List<String> list;
list=new ArrayList<String>();//这样就将其初始化了。然后你可以调用它的方法如:list.add("dsafs");//正确的调用方法。
如果没有上述的初始化,list.add("dsafs");//运行这句话时将要产生NullPointerException(空指针)异常。
基本类型数据用着全局变量,声明后如果不初始化的话,java虚拟机将自动对其初始化,比如你在类的成员变量中声明:int age;//这里没有初始化,将产生默认值0;其他基本类型数据都有其默认值。但如果是声明局部变量,比如说在某个方法中,就必须先初始化再调用,如: void add(){
int a;
System.out.println(a);//这样编译时不能通过,必须要求你先初始化
}
如果你刚开始学习java的话,我建议你先看点java基础的书,还有就是多编程,java还是很有意思的,也挺好学的,希望我的回答对你有点帮助。
Java中所有变量在使用前都初始化吗
1、java中有两种变量,局部变量和成员变量。成员变量就是定义在类中,方法外,全局的变量。局部变量使用前必须初始化,否则编译报错。成员变量可以不初始化,虚拟机会给他默认值。
classtest{
//定义成员变量b
publicstaticintb;
publicstaticvoidmain(String[]args){
System.out.println("hellojava");
//局部变量i
inti;
//这里如果直接输出会编译报错
i=0;
System.out.println(++i);
//这里直接输出b是可以的,默认为0
System.out.println(b);
}
}
2、局部变量的初始化可以认为是分配初始空间,也就是在内存中要开辟一块区域来存这个东西,不初始化是没有内存空间的,也就不能使用。
java中什么时候需要初始化和java中,什么时候需要new来实例化的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!