Day6 重载构造

Posted 扎心了,老铁

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day6 重载构造相关的知识,希望对你有一定的参考价值。

带参数方法

【1】无参数,无返回值

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

 【2】无参数,有返回值

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

 【3】有参数,无返回值

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

【4】有参数,有返回值

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

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

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

    数组参数只能传递数组

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

    数组可以放在任意位置

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

    数组参数可以有多个。

递归算法

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

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

      2.出口

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

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

封装

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

使用封装的好处

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

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

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

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

技术分享图片
 1 public class Husband {
 2     
 3     /*
 4      * 对属性的封装
 5      * 一个人的姓名、性别、年龄、妻子都是这个人的私有属性
 6      */
 7     private String name ;
 8     private String sex ;
 9     private int age ;
10     private Wife wife;
11     
12     /*
13      * setter()、getter()是该对象对外开发的接口
14      */
15     public String getName() {
16         return name;
17     }
18 
19     public void setName(String name) {
20         this.name = name;
21     }
22 
23     public String getSex() {
24         return sex;
25     }
26 
27     public void setSex(String sex) {
28         this.sex = sex;
29     }
30 
31     public int getAge() {
32         return age;
33     }
34 
35     public void setAge(int age) {
36         this.age = age;
37     }
38 
39     public void setWife(Wife wife) {
40         this.wife = wife;
41     }
42 }
View Code

方法重载

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

作用:方便记忆和使用。

重载方法不同的方式

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

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

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

构造器

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

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

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

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

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

      2.名字和类名必须一致

作用:初始化对象。

构造器和访问器的区别

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

 访问器不能。

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

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

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

构造器和普通方法的区别

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

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

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

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

初始化对象

1.成员变量默认初始化

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

3.构造器初始化

构造块

定义:在类中

class 类名{

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

}

本类构造器调用

this();//

 

以上是关于Day6 重载构造的主要内容,如果未能解决你的问题,请参考以下文章

构造函数重载时重用代码? [复制]

构造方法的重载

当两个重载具有相同的签名时调用构造函数重载

C++复制构造函数和=号重载问题

导航架构片段重载问题

java使用this关键字调用本类重载构造器