Java重载构造原理与用法详解

 更新时间:2020年02月12日 10:53:11   作者:扎心了,老铁  
这篇文章主要介绍了Java重载构造原理与用法,结合实例形式分析了java可变参数、方法重载、构造器等相关概念、原理及操作注意事项,需要的朋友可以参考下

本文实例讲述了Java重载构造原理与用法。分享给大家供大家参考,具体如下:

带参数方法

【1】无参数,无返回值

void 方法名(){方法体;}

 【2】无参数,有返回值

int 方法名(){方法体;}

 【3】有参数,无返回值

void 方法名(int num){方法体;}

【4】有参数,有返回值

int 方法名(int num){方法体;}

可变参数与数组参数的区别

【1】可变参数传参灵活,,可以无参,可以多个参数,可以数组;

    数组参数只能传递数组

【2】可变参数必须放在最后

    数组可以放在任意位置

【3】可变参数只能有一个;

    数组参数可以有多个。

递归算法

递归:程序调用自身的算法。

条件:1.调用方法本身。

      2.出口

嵌套for循环 和  用递归实现 的比较

栈 主要是用来存放栈帧的,每执行一个方法就会出现压栈操作,所以采用递归的时候产生的栈帧比较多,递归就会影响到内存,非常消耗内存,而使用for循环就执行了一个方法,压入栈帧一次,只存在一个栈帧,所以比较节省内存。

封装

封装定义:隐藏对象的属性和实现细节,仅对外提供公共的访问方式。

使用封装的好处

         1、良好的封装能够减少耦合。

         2、类内部的结构可以自由修改。

         3、可以对成员进行更精确的控制。

         4、隐藏信息,实现细节。

public class Husband {
  
  /*
   * 对属性的封装
   * 一个人的姓名、性别、年龄、妻子都是这个人的私有属性
   */
  private String name ;
  private String sex ;
  private int age ;
  private Wife wife;
  
  /*
   * setter()、getter()是该对象对外开发的接口
   */
  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public String getSex() {
    return sex;
  }

  public void setSex(String sex) {
    this.sex = sex;
  }

  public int getAge() {
    return age;
  }

  public void setAge(int age) {
    this.age = age;
  }

  public void setWife(Wife wife) {
    this.wife = wife;
  }
}

方法重载

在一个类中,方法名相同,参数列表(个数,顺序,类型)不同。与返回值无关。

作用:方便记忆和使用。

重载方法不同的方式

在java中重载方法有三种方式,它们分别是:

  • 通过改变参数的数量
  • 通过更改数据类型
  • 通过改变参数排列顺序

注意:在java中,只通过更改方法的返回类型来实现方法重载是不可以的。

构造器

系统会自动创建一个构造方法(构造器)默认构造。

如果没有显示的定义构造器,那么系统会自动定义一个构造器,叫默认构造器。

可以显示定义构造器,只要显示定义了构造器,那么系统调用的是显示定义的构造器

无参构造,只能在创建对象的时候才能调用

注意:1.没有任何返回值

      2.名字和类名必须一致

作用:初始化对象。

构造器和访问器的区别

1.构造器 创建完对象,所有的属性都初始化完成、

 访问器不能。

2.构造器 创建对象的时候初始化,可以一次给所有属性初始化

   访问器需要在创建对象后,逐个调用赋值

3.创建对象后,想要修改属性值那么需要用访问器。

构造器和普通方法的区别

1.构造器就是用来初始化对象的。

   普通方法是为了完成某个特定的功能

2.构造器只能在创建对象的时候调用new

   普通方法在使用的时候可以随意调用,不调用就不执行

初始化对象

1.成员变量默认初始化

2.声明处初始化或构造块初始化

3.构造器初始化

构造块

定义:在类中

class 类名{

  {
    构造块:
    作用:解决构造器中的属性值相同,代码重用的问题。
  }

}

本类构造器调用

this();//

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • java中lambda表达式的分析与具体用法

    java中lambda表达式的分析与具体用法

    这篇文章主要给大家介绍了关于java中lambda表达式具体用法的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java字段初始化的规律解析

    Java字段初始化的规律解析

    这篇文章主要介绍了Java字段初始化的规律解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • Java Bean 作用域及它的几种类型介绍

    Java Bean 作用域及它的几种类型介绍

    这篇文章主要介绍了Java Bean作用域及它的几种类型介绍,Spring框架作为一个管理Bean的IoC容器,那么Bean自然是Spring中的重要资源了,那Bean的作用域又是什么,接下来我们一起进入文章详细学习吧
    2022-09-09
  • 利用Spring Validation实现输入验证功能

    利用Spring Validation实现输入验证功能

    这篇文章主要给大家介绍了如何利用Spring Validation完美的实现输入验证功能,文中有详细的代码示例,具有一定的参考价值,感兴趣的朋友可以借鉴一下
    2023-06-06
  • SpringBoot+Netty+WebSocket实现消息发送的示例代码

    SpringBoot+Netty+WebSocket实现消息发送的示例代码

    这篇文章主要介绍了SpringBoot+Netty+WebSocket实现消息发送的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java邮件发送程序(可以同时发给多个地址、可以带附件)

    Java邮件发送程序(可以同时发给多个地址、可以带附件)

    不错的功能比较齐全的邮件发送程序源码
    2008-07-07
  • 深入了解Spring Boot2.3.0及以上版本的Liveness和Readiness功能

    深入了解Spring Boot2.3.0及以上版本的Liveness和Readiness功能

    这篇文章主要介绍了Spring Boot2.3.0及以上版本的Liveness和Readiness功能示例深入解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-10-10
  • HttpUtils 发送http请求工具类(实例讲解)

    HttpUtils 发送http请求工具类(实例讲解)

    下面小编就为大家带来一篇HttpUtils 发送http请求工具类(实例讲解)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 深入了解集合操作工具Guava Collect

    深入了解集合操作工具Guava Collect

    Guava Collect是Guava工具包中的一个子模块,主要对jdk中的集合操作添加了一些简易的API,同时也是对Collections工具类的扩展。本文将结合实例详细说说它的使用,需要的可以参考一下
    2022-10-10
  • 一文搞懂Spring中的JavaConfig

    一文搞懂Spring中的JavaConfig

    这篇文章主要介绍了Spring中的JavaConfig知识,包括事务注解驱动,properties配置文件加载方法,本文给大家介绍的非常详细,需要的朋友可以参考下
    2021-09-09

最新评论