`
zhaolei415
  • 浏览: 166089 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java成员初始化

阅读更多
在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,使用静态块进行初始化
类对象进行创建或者调用静态变量的时候初始化且只执行一次。

分享到:
评论
2 楼 zhaolei415 2010-12-15  
jkleeo 写道
# class c{ 
#    int i;//在这里进行基本数据的初始化 
#    i++;//没问题,会按照基本数据的原始值进行初始化(对象类型null) 
# } 

这句是错的.
i++不能在class block里写.

嗯,是错了,改正。谢谢
1 楼 jkleeo 2010-12-15  
# class c{ 
#    int i;//在这里进行基本数据的初始化 
#    i++;//没问题,会按照基本数据的原始值进行初始化(对象类型null) 
# } 

这句是错的.
i++不能在class block里写.

相关推荐

    Java 成员初始化要注意的两种不同的情况

    本文档详细介绍了Java 成员初始化要注意的两种不同的情况,并对初始化的相关内容进行了一定的说明。希望能帮助到某些同学!

    java数组初始化详解

    java 数组初始化 详解 doc

    关于Java静态成员变量和静态初始化块等的初始化顺序的详细介绍

    详细介绍了Java的静态成员变量、静态数据块、非静态成员变量和非静态成员变量等初始化顺序

    成员的初始化顺序和多态性

    这是我获得的java的代码,这个主要关于成员的初始化顺序和多态性,这个代码主要用于学习和交流,希望大家喜欢。

    java学习之神奇初始化

    如果有static,即静态成员定义,首先初始化static的变量,如,在类Cups中c3在c2前面,可是在输出的结果中,你可以发现,c2是在c3前执行的,这就是因为,所有的static都在第一时间被初始化。

    简单了解Java类成员初始化顺序

    主要介绍了简单了解Java类成员初始化顺序,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    Java类中各成员初始化的顺序

    了解java中类各个成员的初始化顺序是非常重要的,这样你可以对类有全局的认识。不说太多,直接看下面的例子 class Father { static{ System. out.println("父类静态代码块初始化" ); } { System. out.println...

    Java中对象初始化顺序的详细介绍

    在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和初始化,网上关于Java中对象初始化顺序的文章很多,这篇文章我们将详细介绍Java中对象初始化顺序。有需要的可以参考学习。

    Java关于含有继承类的成员初始化过程讲解

    今天小编就为大家分享一篇Java关于含有继承类的成员初始化过程讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    Java类初始化顺序

    所有构造方法执行顺序如下: 执行父类的构造方法。没有继承默认继承的Object。... // 单独一行的初始化算一个代码块,这个是初始化a的代码块 private String a = "hello"; // 这个只是声明变量,并b不算代码块

    【Java语言基础】初始化块

    初始化块是Java类里面可以出现的第四种成员。 优点: 和构造器很像,都是用于初始化信息 当多个构造器中有重复的语句,可以将这些重复的语句往上提取到初始化块中,提高代码的重用性 语法格式: class 类名1{ [修饰...

    Java类变量和成员变量初始化过程的应用介绍

    昨天看了一本叫做《突破程序员基本功的16课》的书,个人感觉还可以,主要对Java的技巧进行了一些深入的讲解,让我对类的初始化和对象的创建有了新的认识

    java 构造器的调用

    java 构造器初始化成员变量 是否提供默认构造器 继承中构造器的调用

    javase子类父类继承关系图解

    用简单几句话说明java成员初始化顺序,适合初学者

    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

    java代码-初始化时,把三个成员变量全部设置为10

    JAVA程序设计实验

    (1) 定义一个Animal类,其中包括昵称、性别、体重属性,构造函数初始化各属性,显示各属性的成员函数、修改属性的成员函数。实现并测试这个类。 (2) 从上题的类中派生出Dog类,添加年龄属性。重载相应的成员方法...

    Java开发者文档,分享日常学习的一些小知识点 .rar

     ※在所有类成员初始化完成之后,才调用本类的构造方法创建对象。  构造方法的作用就是初始化。  (2) 静态对象的初始化  程序中主类的静态变量会在main方法执行前初始化。  不仅第一次创建对象时,类中的...

Global site tag (gtag.js) - Google Analytics