​一、

1.多行注释:CTRL + shift + /

2.当一个类中没有定义任何构造方法的话,系统默认给该类提供一个无参数的构造方法,这个构造方法被称为缺省构造器。

public class D39_ {

  public static void main(String[] args) {

    new User();

  }

}

编译通过,我们事先定义了一个类User,里面没有构造方法。

3.当一个类显式的将构造方法定义出来了,那么系统则不再默认提供缺省的构造器。建议开发中,手动的为当前类提供无参数的构造方法,因为无参数构造方法太常用了。

4.构造方法支持重载机制,在一个类中编写多个构造方法,这多个构造方法显然已经构成了方法重载机制。

5.构造方法的作用:

(1)创建对象

(2)创建对象的同时,初始化实例变量的内存空间

成员变量之实例变量,属于对象级别的变量,这种变量必须先有对象才能有实例变量。实例变量没有手动赋值的时候,系统默认赋值,那么这个西永默认赋值实在什么时候完成的呢​?

是在加载类的​时候吗?

不是,因为类加载的时候只加载了代码片段,还没有来得及创建对象,所以此时实例变量没有初始化。实际上,实力变量的内存空间实在构造方法执行的过程中完成开辟的,完成初始化的,系统在默认赋值的时候,也是在构造方法执行的过程中完成​的赋值。

实例变量默认值:

byte/short/int/long都是0

/float/double都是0.0

boolean是false

6.快捷键:

(1)CTRL + o :在一个类中,如果元素过多,可以通过这个快捷键来查找我们想要的元素。

(2)按住CTRL键,然后鼠标移动发到查看的元素上,出现下划线的时候开始单击,可以跳转到,代码行。

(3)快速生成构造函数​:右键-源码-使用字段生成构造函数

package com.bjpowernode.java_learning;

​

public class D39_ {

  public static void main(String[] args) {

    //创建User对象,调用User类的构造方法来完成对象的创建

    //以下程序创建了4个对象,只要构造函数调用就会创建对象,并且一定是在”堆内存“中开辟出来的内存空间

    String s1 = "jfsiauhf";

    int i1 = 5;

    User u1 = new User(s1);

    User u2 = new User(i1);

    User u3 = new User();

    System.out.println("fjisf");

    //调用带有static的方法

    u3.sum();

    //调用不带static的方法

    /**

     * javadoc的格式

     */

    u3.getAge();

    Account act1 = new Account();

    act1.getActno();

​

  }

}
package com.bjpowernode.java_learning;

​

public class Account {

  //账号

  private String actno;

  /**

   * @param actno

   * @param balance

   */

  public Account(String actno, double balance) {

    super();

    this.actno = actno;

    this.balance = balance;

  }

​

  //余额

  private double balance;

  public String getActno() {

    return actno;

  }

​

  public void setActno(String actno) {

    this.actno = actno;

  }

​

  public double getBalance() {

    return balance;

  }

​

  public void setBalance(double balance) {

    this.balance = balance;

  }

}

​

二、源码:

D39_construction_method

Account.java

地址:

https://github.com/ruigege66/Java/blob/master/D39_construction_method

https://github.com/ruigege66/Java/blob/master/Account.java

2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)

3.博客园:https://www.cnblogs.com/ruigege0000/

4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料

Java连载39-构造方法详解的更多相关文章

  1. Java连载72-String类详解、多个构造方法

    一.String类 1.String类是不可以变类,也就是说String对象声明后 2.java.lang.String:是字符串类型 (1)字符串一旦创建不可再改变,“abc”字符串对象一旦创建,不 ...

  2. Java连载86-List集合详解

    一.List集合 1.List集合存储元素的特点: (1)有序(List集合中存储有下标)​:存进去是这样的顺序,取出来还是按照这个顺序取出​. (2)可重复 2.深入ListJ集合 ArrayLis ...

  3. “全栈2019”Java第五十七章:多态与构造方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  4. “全栈2019”Java第五十章:继承与构造方法详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  5. java反射机制深入详解

    java反射机制深入详解  转自:http://www.cnblogs.com/hxsyl/archive/2013/03/23/2977593.html 一.概念 反射就是把Java的各种成分映射成 ...

  6. Java 8 Stream API详解--转

    原文地址:http://blog.csdn.net/chszs/article/details/47038607 Java 8 Stream API详解 一.Stream API介绍 Java8引入了 ...

  7. 国际化,java.util.ResourceBundle使用详解

    java.util.ResourceBundle使用详解   一.认识国际化资源文件   这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以:          轻松地本地化或翻译成不同的 ...

  8. java.util.ResourceBundle使用详解

    java.util.ResourceBundle使用详解   一.认识国际化资源文件   这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以:          轻松地本地化或翻译成不同的 ...

  9. java.util.ResourceBundle使用详解(转)

    java.util.ResourceBundle使用详解   一.认识国际化资源文件   这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以:          轻松地本地化或翻译成不同的 ...

  10. java并发编程 | 锁详解:AQS,Lock,ReentrantLock,ReentrantReadWriteLock

    原文:java并发编程 | 锁详解:AQS,Lock,ReentrantLock,ReentrantReadWriteLock 锁 锁是用来控制多个线程访问共享资源的方式,java中可以使用synch ...

随机推荐

  1. java基础 - 什么是hashmap的负载因子,hashmap的容量(即桶个数)为什么是2的幂次

    HashMap的负载因子是指,比如容量为16,负载因子为0.75,则当HashMap的元素个数达到16*0.75=12时,触发扩容.(16和0.75是初始默认的容量和负载因子). HashMap的容量 ...

  2. PHP如何开启swoole扩展

    swoole是一个PHP的异步.并行.高性能网络通信引擎,使用纯C语言编写,提供了PHP语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncT ...

  3. Go语言常见坑

    可变参数是空接口类型当参数的可变参数是空接口类型时,传人空接口的切片时需要注意参数展开的问题.func main() { var a = []interface{}{1, 2, 3} fmt.Prin ...

  4. 小程序 if else

    与js略有差异 (1).js中的数据 (2) .wxml  中的数据判断 (3)结果显示

  5. linux自建https证书

    一.生成单向认证的https证书 建立服务器私钥,生成RSA秘钥. 会有两次要求输入密码, 然后获得了一个server.key文件. 以后使用此文件(通过openssl提供的命令或API)可能经常回要 ...

  6. 源生JS实现点击复制功能

    之前在工作中,有位同事问过我一个问题,JS如何实现点击复制功能.给他解决后现在来总结归纳一下,顺便做个笔记. PS:此乃本人第一篇博客(跟着同事大佬学习),涉及知识尚浅,如有任何意见和建议请告知于我. ...

  7. ETCD:在容器中运行etcd集群

    原文地址:Docker container 以下指南显示了如何使用静态引导过程在rkt和Docker上运行etcd. rkt 运行单节点的etcd 以下rkt run命令将在端口2379上公开etcd ...

  8. Response to 16岁的篮球投手

    关于篮球,我想写的很多,被偏爱的运动,被赞美的运动,带着青春的万丈光泽. 我们对易建联的苛刻是因为想当然,对大侄子的溺爱是因为急功近利.过于娱乐化和商业化,让一项竞技体育变得像是豆瓣八组的吃瓜盛宴. ...

  9. Add a Parametrized Action 添加带参数的按钮

    In this lesson, you will learn how to add a Parametrized Action. These types of Actions are slightly ...

  10. NIO基础方法一

    1.remaining();返回当前位置与limit之间得元素数. int[] intArray={1,2,3,4}; IntBuffer intBuffer=IntBuffer.wrap(intAr ...