java 实例域_Java实例域初始化方法及顺序
Java实例域初始化方式
1.构造器
public class Employee {
private String name;
private String gender;
private int age;
private double salary;
public Employee() {
this.salary = 1000.0;
}
public Employee(String name, String gender, int age, double salary) {
this.name = name;
this.gender = gender;
this.age = age;
this.salary = salary;
}
}
2.域声明
public class Employee {
private String name;
private String gender;
private int age;
private double salary = 1000.0;
public Employee() {
}
public Employee(String name, String gender, int age, double salary) {
this.name = name;
this.gender = gender;
this.age = age;
this.salary = salary;
}
}
3.初始化块(initialization block)
public class Employee {
private String name;
private String gender;
private int age;
private double salary;
private static String test;
//静态初始化块:类第一次被加载时执行
static {
System.out.println("类加载");
test = "hello world!"
}
//初始化块
{
name = "xiao";
gender = "m";
age = 20;
salary = 1000.0;
System.out.println("初始化");
}
@Override
public String toString() {
return "Employee{" +
"name='" + name + '\'' +
", gender='" + gender + '\'' +
", age=" + age +
", salary=" + salary +
'}';
}
public static void main(String[] args) {
Employee employee = new Employee();
System.out.println(employee.toString());
}
}
初始化
Employee{name='xiao', gender='m', age=20, salary=1000.0}
Process finished with exit code 0
Java实例域初始化顺序
调用构造方法的具体处理步骤:
1. 如果类是第一次被使用,先执行静态初始化块
2. 所有数据域被初始化为默认值(0、false或null)
3. 按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块。
4. 如果构造方法调用了其他构造方法,先执行其他方法。
5. 最后,执行构造方法。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
java 实例域_Java实例域初始化方法及顺序相关推荐
- java桥_java 泛型--桥方法
因为 java 在编译源码时, 会进行 类型擦除, 导致泛型类型被替换限定类型(无限定类型就使用 Object). 因此为保持继承和重载的多态特性, 编译器会生成 桥方法. 本文最后附录所有源码. P ...
- java 实例域_Java实例域初始化
Java实例域初始化方式 1.构造器 public class Employee { private String name; private String gender; private int a ...
- java中初始化的顺序_Java中 初始化的先后顺序?
我们在java中 Java中初始化的顺寻? java代码: package sru.love.c; class Person { String name = "Person"; s ...
- arraylist java 排序_Java ArrayList排序方法详解
由于其功能性和灵活性,ArrayList是 Java 集合框架中使用最为普遍的集合类之一.ArrayList 是一种 List 实现,它的内部用一个动态数组来存储元素,因此 ArrayList 能够在 ...
- modifiers在JAVA中_Java Modifier.classModifiers方法代碼示例
import java.lang.reflect.Modifier; //導入方法依賴的package包/類 /** * Returns a string describing this {@code ...
- java中位数_java 计算中位数方法
最近工作需要 要求把python的代码写成java版本,python中有一个np.median()求中位数的方法,java决定手写一个 先说说什么是中位数: 中位数就是中间的那个数, 如果一个集合是奇 ...
- java writebytes()_Java ObjectOutputStream writeBytes()方法与示例
ObjectOutputStream类writeBytes()方法writeBytes()方法在java.io包中可用. writeBytes()方法用于将给定的字符串作为字节序列写入. writeB ...
- cdate在java中_Java Calendar.add方法代码示例
本文整理汇总了Java中java.util.Calendar.add方法的典型用法代码示例.如果您正苦于以下问题:Java Calendar.add方法的具体用法?Java Calendar.add怎 ...
- java 二义性_Java接口默认方法带来的问题分析【二义性问题】
本文实例分析了Java接口默认方法带来的问题.分享给大家供大家参考,具体如下: 一 点睛 Java 8中,如果一个类实现两个或多个接口,即"变相"的多继承,但是若其中两个接口都包含 ...
最新文章
- “微信应用号对行业影响”之一,app开发速来围观
- 安装Adventure Works 2008 R2演示数据库
- protobuf简单序列化反序列化示例
- java ReentrantLock 锁相关笔记
- linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...
- 九、MySQL常见约束相关知识总结 学习笔记 + 强化复习(六大约束)
- 【C++、Matlab】VS2013 C++读写.mat文件
- gamma校正_Log与Gamma校正视频
- POJ-2456.Aggressivecows.(二分求解最大化最小值)
- JS读取Excel时日期转换问题:1900-2-29问题
- 剑指 Offer II 028. 展平多级双向链表
- PS经典教程:从零开始设计一个漂亮的网页
- (转载)你好,C++(6)2.3 C++兵器谱
- 零基础学Python--------第4章 序列的应用
- Matlab学习-基本介绍
- MinGW GCC 8.1.0 2018年5月2日 出炉啦
- Ubuntu1804安装Mysql
- 按键控制LED定时点亮c语言,单片机定时中断循环点亮LED灯,我有个51单片机的实验,要求51单片机的P1口外接发光二极管依。...
- sd协议SD卡发布RCA的流程
- 上海市计算机学会竞赛平台三星级挑战
热门文章
- vector,list deque三种容器对比
- linux l字符串,Linux shell 字符串常用操作
- DockerFile入门指南
- Windows配置Gtkmm开发环境(with codeblocks)
- AI实战 | Tensorflow自定义数据集和迁移学习(附代码下载)
- 从零开始学keras之多分类问题
- Octave教程(一)
- 【java基础知识】spring框架开发时,怎样解决mysql数据库中Timestamp到String的简单转换
- Windows + IDEA + SBT 打造Spark源码阅读环境
- jssdk信息验证失败_阿里云环境中TLS/SSL握手失败的场景分析