在java中,成员初始化在使用之前应该都要保证已经完成初始化。对于在方法体中的局部变量,如果没有使用指定初始化的方法对成员变量进行初始化,编译器会提示一个错误。而对于类的数据成员,编译器会对这些成员赋予默认的初始值,下面这段代码反映了这一点。

 package test1;

 class InitialValue{
public int i;
public boolean b;
public char c;
public float f;
public String s;
public InitialValue iv; public void info(){
System.out.println("int + " + i);
System.out.println("boolean + " + b);
System.out.println("char + " + c);
System.out.println("float + " + f);
System.out.println("String + " + s);
System.out.println("reference + " + iv);
}
} public class test{
public static void main(String[] args){
InitialValue iv = new InitialValue();
iv.info();
}
}
 int + 0
boolean + false
char +
float + 0.0
String + null
reference + null

  输出表明,即使类中的成员变量没有进行指定初始化,编译器仍然会给成员变量赋予默认值。

Chapter5_初始化与清理_成员初始化的更多相关文章

  1. Chapter5_初始化与清理_构造器初始化

    一.构造器初始化的基本顺序 在使用构造器进行初始化时,最需要注意的是初始化的顺序,这种方法可以给初始化的顺序带来很大的灵活性.看如下的一个例子. class Window{ Window(int ma ...

  2. Chapter5_初始化与清理_数组初始化与可变参数列表

    一.数组初始化 数组是相同类型的,用一个标识符名称封装到一起的一个对象序列或基本类型数据序列.编译器是不允许指定数组的长度的,当使用语句int[] a时,拥有的只是一个符号名,即一个数组的引用,并不拥 ...

  3. C++:用成员初始化列表对数据成员初始化

    1.在声明类时,对数据成员的初始化工作一般在构造函数中用赋值语句进行. 例如: class Complex{ private: double real; double imag; public: Co ...

  4. Chapter5_初始化与清理_用构造器初始化

    接下来进入第五章,java中初始化和清理的问题,这是两个涉及安全的重要命题.初始化的功能主要是为库中的构件(或者说类中的域)初始化一些值,清理的功能主要是清除程序中不再被需要的元素,防止资源过分被垃圾 ...

  5. Chapter5_初始化与清理_方法重载

    方法重载是java中编译器在方法调用时采用的一个重要机制.起初方法重载的初衷是方便构造器的调用,比如对于一个类,可以实现用不同的方法来初始化它,又由于构造器的名称都是一样的,所以必须使用到方法重载的机 ...

  6. 浅谈Java中的初始化和清理

    引言 这篇文章我们主要介绍Java初始化和清理的相关内容,这些内容虽然比较基础,但是还是在这边做一个简单的总结,方便以后查阅. 初始化过程 Java尽力保证:所有变量在使用之前都会得到恰当的初始化(对 ...

  7. C++成员初始化顺序

    #include <iostream> using namespace std; int seti() {cout << "seti" << e ...

  8. C#中成员初始化顺序

    http://blog.csdn.net/huangcailian/article/details/25958967 一.成员初始化整体顺序 1.成员赋值初始化先于构造函数: 2.成员赋值初始先从子类 ...

  9. C++的成员初始化列表和构造函数体(以前未知)

    成员的初始化列表和构造函数在对成员指定初值方面是不一样的.成员初始化列表是对成员初始化,而构造函数,是对成员赋值 成员初始化列表使用初始化的方式来为数据成员指定初值, 而构造函数的函数体是通过赋值的方 ...

随机推荐

  1. python--对象实例化过程

    实例化过程: class luffy_stu: def __init__(self,name,age,sex): self.name = name self.age = age self.sex = ...

  2. TIMESTAMP(6)类型的时间差

    TIMESTAMP 数据类型 它包括了所有DATE数据类型的年月日时分秒的信息,而且包括了小数秒的信息. 以分钟为单位查询时间差 select ROUND(TO_NUMBER(to_date(to_c ...

  3. 多个Gesture响应原理

    默认情况下,一个响应链上只能响应一个Gesture,不过每个Gesture都可以设置一个delegate,当某个gesture的代理方法shouldRecognizeSimultaneouslyWit ...

  4. MFC 读写文件

    写文件: #include<fstream> CStdioFile file; file.Open(_T("parametertable.txt"), CFile::m ...

  5. Ubuntu 16.04下配置intel opencl环境

    一. 靠谱的安装教程 1. 官网教程 https://software.intel.com/en-us/articles/sdk-for-opencl-2019-gsg,打开后往下拉到[4. Prod ...

  6. Loadrunner回放https脚本时出现错误Error -27780 Connection reset by peer解决办法

    录制好的https协议的web脚本,在脚本回放时会出现Error -27780: [GENERAL_MSG_CAT_SSL_ERROR]connect to host "......&quo ...

  7. js,jquery备忘录

    1.var s = str.charCodeAt();转ASCII码 2.String.fromCharCode(65);转字母 3.es6 ... (扩展运算符),将一个数组转化成由逗号分割的队列. ...

  8. pyparsing自定义解析规则

    1.Word(token) 用于匹配由允许的字符集组成的单词,常见的错误是使用特定字符串Word("expr")匹配"expr" - L {alphas}  字 ...

  9. jmeter入门简介(一)

    简介 Apache JMeter是100%纯JAVA桌面应用程序,被设计为用于测试CS/BS的软件.它可以用来测试静态和动态资源的性能,可用于模拟大量负载来测试一台服务器,网络或者对象的健壮性或者分析 ...

  10. volatile和synchronized实现内存可见性的区别

    先看看synchronized实现内存可见性 加锁(synchronized同步)的功能不仅仅局限于互斥行为,同时还存在另外一个重要的方面:内存可见性.我们不仅希望防止某个线程正在使用对象状态而另一个 ...