`
snoopy3384
  • 浏览: 12626 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

变量的初始化及默认值

F# 
阅读更多
关于初始化
--------------------------------------------------------------------------------------------------------------------------------
1  成员变量初始化
   
    1.1  自动初始化
   
       boolean   -----初始值---->  false
       char   -----初始值---->  (char)0
       byte     -----初始值---->  0
       short     -----初始值---->  0
       int       -----初始值---->  0
       long      -----初始值---->  0
       float     -----初始值---->  0.0
       double    -----初始值---->  0.0
       对象    -----初始值---->  null
       数组内部元素的初始值按上面的要求初始化.
      
    1.2  指定初始化
      
       指定初始化就是在变量后跟一个值.如:int i = 12;
      
    1.3  构造器初始化.
   
       构造器初始化就是在构造器中为成员变量赋值.
       如:
        class A{
         int i;
         A(int n){
          this.i = n;
         }
        }
   
2  局部变量初始化

    局部变量不能自动初始化,不能构造器初始化,一定要直接初始化.否则是不可用的.

--------------------------------------------------------------------------------------------------------------------------------

成员变量的初始化:  自动初始化先于直接初始化, 直接初始化先于构造器初始化.

--------------------------------------------------------------------------------------------------------------------------------

成员变量初始化顺序:
 
  在类的内部,变量定义的先后顺序决定了初始化的顺序.即使变量定义散布于方法定义之间,它们仍然会在任何
  方法(包括构造器)被调用之前得到初始化.
 
--------------------------------------------------------------------------------------------------------------------------------

静态成员变量初始化:

  静态成员变量初始化与非静态成员变量初始化是一样的.
  只是静态成员变量只初始化一次.而且静态成员变量的初始化先于非静态成员变量.
  静态成员变量的初始化前提是: 创建该类的对象时或引用该类的静态变量时或调用该类的静态方法时.
 
--------------------------------------------------------------------------------------------------------------------------------

测试代码
1.package test;  
2. 
3./**  
4. * 关于成员变量初始化  
5. *   
6. * @author fhd001  
7. */  
8.public class ValueTest {  
9. 
10.    int n = 2; // 指定初始化  
11.    boolean flag; // 自动初始化  
12.    static int n1;  
13.    static boolean flag2;  
14.      
15.    static{  
16.        //静态初始化先于非静态初始化.  
17.        System.out.println("静态初始化:  "+n1);  
18.        flag2 = true;  
19.        System.out.println("静态初始化:  "+flag2);  
20.    }  
21. 
22.    public ValueTest() {  
23.    }  
24. 
25.    public ValueTest(int k, boolean f) {  
26.        // 指定初始化先于构造器初始化  
27.        System.out.println(n);  
28.        // 自动初始化先于构造器初始化.  
29.        System.out.println(flag);  
30.        this.n = k;  
31.        this.flag = f;  
32.        System.out.println(n);  
33.        System.out.println(flag);  
34.        // 自动初始化先于指定初始化,无法测试.略.  
35.    }  
36. 
37.    public static void main(String[] args) {  
38. 
39.        ValueTest t = new ValueTest(38, true);  
40.    }  
41.} 
package test;

/**
* 关于成员变量初始化
*
* @author fhd001
*/
public class ValueTest {

int n = 2; // 指定初始化
boolean flag; // 自动初始化
static int n1;
static boolean flag2;

static{
//静态初始化先于非静态初始化.
System.out.println("静态初始化:  "+n1);
flag2 = true;
System.out.println("静态初始化:  "+flag2);
}

public ValueTest() {
}

public ValueTest(int k, boolean f) {
// 指定初始化先于构造器初始化
System.out.println(n);
// 自动初始化先于构造器初始化.
System.out.println(flag);
this.n = k;
this.flag = f;
System.out.println(n);
System.out.println(flag);
// 自动初始化先于指定初始化,无法测试.略.
}

public static void main(String[] args) {

ValueTest t = new ValueTest(38, true);
}
}


结果代码
1.静态初始化:  0 
2.静态初始化:  true  
3.2 
4.false  
5.38 
6.true 
分享到:
评论

相关推荐

    成员变量和局部变量

    局部变量:没有初始化值,必须手动初始化 生命周期不同 成员变量:随着对象的创建而存在,随着对象的消失而消失 局部变量:随着方法的调用而存在,随着方法的调用完毕而消失 特别注意 成员变量和局部变量的...

    c语言关键字volatile

    嵌入式系统开发中,经常用到volatile 和const关键字,本文针对这2个关键字的基本用法,进行讲解

    java基础非常典型的面试题目.wps

    如果在这两处都没有初始化,那么保留自动初始化时的默认值。final型的变量必须被显式初始化。 静态变量可以在定义处或者在静态代码块中被显式初始化。如果在这两处都没有初始化,那么保留自动初始化的默认值。final...

    设置默认值:一个非常简单的函数,用于初始化调用者函数中的缺失值或空值。-matlab开发

    为了设置变量的默认值,我发现我的函数的开头散落着 如果 nargin < 1 || 空(x) x = 1; 结尾 如果 nargin < 2 || 空(y) y = 3; 结尾等等。 这非常难看,所以我创建了一个包装器来美化它。 老实说,它是如此...

    C#不同类型的成员变量(字段)的默认值介绍

    创建类的一个实例时,在执行构造函数之前,如果你没有给成员变量赋初始值,C#编译器缺省将每一个成员变量初始化为他的默认值。 如果变量是方法的局部变量,编译器就会认为在使用该变量之前,代码必须给它显示的设定...

    sui-theme:基本主题,包含一组用于初始化默认值的通用变量

    用于初始化默认值和组件样式的通用变量。 一组占位符,可以为您的组件设置样式(按钮,选项卡,表单,网格系统...)。 函数和mixins助手。 用法 在您的项目中安装sui-theme : npm install @s-ui/theme --save 将...

    Java类初始化顺序

    Object会开辟一块内存,初始化所有数据为0、null、false等默认值 执行本类中的成员代码块。所有代码块是从上往下顺序执行的,所以代码块里面使用到的变量如果在块下面初始化会有问题 执行构造方法中内容。 所以...

    redis架构分析.docx

    1.初始化server变量,设置redis相关的默认值 2.读入配置文件,同时接收命令行中传入的参数,替换服务器设置的默认值 3.初始化服务器功能模块。在这一步初始化了包括进程信号处理、客户端链表、共享对象、初始化数据...

    【Java语言基础】final关键字

    类变量:当类初始化时,系统会为类变量分配内存,并赋默认值。 实例变量:当创建对象时,系统会为该对象的实例属性分配内存,并赋默认值。 final修饰局部变量 可以在定义时指定默认值,则后面代码中不能再对改变量...

    Python使用函数默认值实现函数静态变量的方法

    所以函数默认值在python中用到的很多,尤其是在类中间,类的初始化函数中一帮都会用到默认值。 使用类时能够方便的创建类,而不需要传递一堆参数。 只要在函数参数名后面加上 ”=defalut_value”,函数默认值就定义...

    C#中常量和只读变量的区别小结

    您可能感兴趣的文章:C#学习笔记整理_变量等基础语法(必看篇)C#把整个文件内容读入字符串变量的方法C#中static静态变量的用法实例C#不同类型的成员变量(字段)的默认值介绍C#类中属性与成员变量的使用小结C#中属性和...

    Vue中用props给data赋初始值遇到的问题解决

    主要介绍了Vue中用props给data赋初始值遇到的问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java面试题-附答案

    byte属于Java中的整型,长度为1字节8bit,取值10000000(-128)到 01111111(127),变量初始化默认值为0,包装类Byte 2.short short属于Java中的整型,长度为2字节16bit,取值10000000 00000000(-32768)到 ...

    PHP教程 变量定义

    PHP 中的变量 变量用于存储值,比如数字、文本字符串...未初始化的变量具有其类型的默认值 – FALSE,零,空字符串或者空数组。 复制代码 代码如下: <?php $var = ‘PHP’; $Var = ‘教程网’; echo “$var, $Var”

    【04-面向对象(上)】

    •与成员变量不同的是除了形参外,其他局部变量都必须显式地初始化, •Java 里允许局部变量和成员变量重名。这样局部变量会覆盖成员变量,这时通过this 来调用实例的属性. 成员变量的初始化 •当类被加载时,...

    天若OCR文字识别,按F4截图转文字准确率99%

    最小安全性保证对象默认初始化之后(设置成员域为0、u或false),会被任意线程使用。最小安全性“发生”在对象被任意线程使用之前。64位数据的非原子性写“发生”在对象被多个线程使用的过程中(写共享变量)。当...

    java操作符

    表达式中有一个操作元是long型,则结果是long型的问题总结; 应该调用String的equals()方法,而不用“==”操作符的注意; java虚拟机对变量初始化为默认值。

    了解JavaScript函数中的默认参数

    通过默认函数参数,你可以初始化带有默认值的正式参数。如果不初始化具有某些值的参数,则该参数的默认值为undefined。 请看下列代码: function foo(num1){ console.log(num1); } foo(); 在调用函数foo时,你没有...

    PHP专业基础教程 自学php的首选

    □PHP 3 教程 -- 安装 □PHP 3 教程 -- PHP3 设置 □PHP 3 教程 -- 从HTML中脱离 □PHP 3 教程 -- 语句的脱离方法 □PHP 3 教程 -- 变量类型 □PHP 3 教程 -- 变量的初始化 □PHP 3 教程 -- 初始化数组 □PHP 3 教程...

Global site tag (gtag.js) - Google Analytics