在java开发中想过大家都有初始化成员变量,很简单,可是真正系统理解里面真正的过程是在今天,想想惭愧;让自己记得清楚点还是记录起来吧
1,在方法和类中成员变量初始化区别
例如:
void f(){
int i;
int j = i++;//报错
}
class c{
int i;//在这里进行基本数据的初始化
int j = i++;//没问题,会按照基本数据的原始值进行初始化(对象类型null)
}
2,指定初始化
class c {
int i=0;
double j = 0.0;
boolean k = f(i);
}
这样每一个对象都有相同值的成员变量。我们可以像k这个变量值通过函数进行赋值。
3,构造器的初始化
使用构造器的初始化可以给你的编程带来很大的方便,但是你永远不可能屏蔽编译器自动初始化的进行,它将在构造方法初始化前执行。
4,静态数据初始化
静态数据的初始化和先前提到的没有什么不同,值得注意的就是静态数据在类加载的时候初始化一次
class Bowl{
Bowl(int i){
System.out.println(i+"");
}
}
class Table{
static Bowl b1 = new Bowl(1);
Table(){
System.out.println("Table");
}
static Bowl b2 = new Bowl(2);
}
//在main方法中
Table t1 = new Table();
Table t2 = new Table();
//输出结果
1
2
Table
Table
总结对象的创建过程假设有个名为Dog的类
<1>,首次创建Dog对象,或者调用类中静态方法、静态域,java解析器查找类路径定位Dog.class
<2>,然后载入Dog.class有关静态初始化的动作执行(静态初始化只在类加载时候进行一次)
<3>,当你用new Dog的时候在堆上为Dog分配足够的存储空间
<4>,这块存储空间进行清0,类中的成员变量设置成了默认的值,应用设置成了null
<5>,执行所有域定义中的初始化动作
<6>,进行构造方法初始化
5,使用静态块进行初始化
类对象进行创建或者调用静态变量的时候初始化且只执行一次。
分享到:
相关推荐
本文档详细介绍了Java 成员初始化要注意的两种不同的情况,并对初始化的相关内容进行了一定的说明。希望能帮助到某些同学!
java 数组初始化 详解 doc
详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序
这是我获得的java的代码,这个主要关于成员的初始化顺序和多态性,这个代码主要用于学习和交流,希望大家喜欢。
如果有static,即静态成员定义,首先初始化static的变量,如,在类Cups中c3在c2前面,可是在输出的结果中,你可以发现,c2是在c3前执行的,这就是因为,所有的static都在第一时间被初始化。
主要介绍了简单了解Java类成员初始化顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
了解java中类各个成员的初始化顺序是非常重要的,这样你可以对类有全局的认识。不说太多,直接看下面的例子 class Father { static{ System. out.println("父类静态代码块初始化" ); } { System. out.println...
在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,网上关于Java中对象初始化顺序的文章很多,这篇文章我们将详细介绍Java中对象初始化顺序。有需要的可以参考学习。
今天小编就为大家分享一篇Java关于含有继承类的成员初始化过程讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
所有构造方法执行顺序如下: 执行父类的构造方法。没有继承默认继承的Object。... // 单独一行的初始化算一个代码块,这个是初始化a的代码块 private String a = "hello"; // 这个只是声明变量,并b不算代码块
初始化块是Java类里面可以出现的第四种成员。 优点: 和构造器很像,都是用于初始化信息 当多个构造器中有重复的语句,可以将这些重复的语句往上提取到初始化块中,提高代码的重用性 语法格式: class 类名1{ [修饰...
昨天看了一本叫做《突破程序员基本功的16课》的书,个人感觉还可以,主要对Java的技巧进行了一些深入的讲解,让我对类的初始化和对象的创建有了新的认识
java 构造器初始化成员变量 是否提供默认构造器 继承中构造器的调用
用简单几句话说明java成员初始化顺序,适合初学者
主要介绍了Java静态和非静态成员变量初始化过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
以下这段小程序对调用对象构造函数时,父类构造函数、成员变量初始化函数,以及非静态初始化块调用顺序进行验证,不考虑静态成员及静态初始化块
1 无继承情况下的Java初始化顺序: class Sample { Sample(String s) { System.out.println(s);... Sample sam1=new Sample(sam1成员初始化); static{ System.out.println(static块执行); if(sam==null)Sy
java代码-初始化时,把三个成员变量全部设置为10
(1) 定义一个Animal类,其中包括昵称、性别、体重属性,构造函数初始化各属性,显示各属性的成员函数、修改属性的成员函数。实现并测试这个类。 (2) 从上题的类中派生出Dog类,添加年龄属性。重载相应的成员方法...
※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。 构造方法的作用就是初始化。 (2) 静态对象的初始化 程序中主类的静态变量会在main方法执行前初始化。 不仅第一次创建对象时,类中的...