构造方法重载

目录

1.this

2.重载

构造方法的重载

3.局部变量和成员变量的区别

4.package(包)

5.import(导包)

6.递归方法

6.1概念

6.2递归的三要素


1.this

当属性名和构造方法中的参数名发生同名的时候,就需要使用this关键字     本类对象
        ①this出现在构造方法中,代表的是这个构造方法创建的对象
        ②this出现在非静态方法中,代表的是调用这个方法的对象

2.重载

 方法的重载:指的是一个类中可以定义多个同名的方法,但参数列表不同
        参数列表:参数个数、参数的类型、对应位置的参数顺序
重载:两同一不同

注意:方法的重载与返回值类型、参数名字、访问修饰符无

public void method(){
        System.out.println(this.name);
    }
    //参数 个数
    public void method(int id){

    }
    //注意:我们在调用方法时,只需要关注方法名和参数列表
    public int method2(int id){
        return 0;
    }
    //参数类型
    public void method(String name){

    }
    //参数顺序
    public void method(int id,String name){

    }
    public void method(String name,int id){

    }

构造方法的重载

构造方法与方法的重载一样,也能在同一类中定义多个同名的构造方法,必须参数列表不一样

public Student(){

    }
    public Student(int id,String name,int age){
        //this
        this.id = id;
        this.name = name;
        this.age = age;
    }
    public Student(int id,int age,String name){

    }

3.局部变量和成员变量的区别

成员变量(全局变量)局部变量
定义的位置类里面方法外面方法和代码块里面,方法中参数也是局部变量
作用域范围整个类整个方法或代码块中,随着方法的执行结束而销毁
初始化可以不赋值,有默认值必须要手动赋值才能使用
内存存储区域属于对象,对象存储堆中

4.package(包)

在实际开发中由于一个大型软件项目由很多不同的文件、接口等组成,为了区分不同的功能模块,通常我们会将不同的代码存放到不同的目录或文件中。因此需要使用package的结构来分类存储,包还有一个功能就是可以防止重名。

包名:一般使用域名倒置写法 。例如:com.softeem.xxx com.baidu.xxx

包名全小写

5.import(导包)

一般情况下开发中涉及到多个类之间的互相调用,有可能这些类在不同的package包中,因此涉及到一些跨包访问的问题,所以在java中可以通过import关键字来将其他包的类导入到目标类中.

 package 和import 的定义必须放在类的定义之前,顺序:package > import > class

6.递归方法

6.1概念

方法直接或间接调用方法本身,则该方法称为递归方法

6.2递归的三要素

边界条件、递归前进段、递归返回段

当边界条件不满足时,递归前进,当满足时,则递归返回

例如:

if(边界条件){

递归返回

}else{

递归前进

}

package com.softeem.method_;

/**
 * @author zhengwen
 * @create 2022-01-13 14:14
 */
public class MethodDemo {

    public static void main(String[] args) {

        //求10!   1*2*3*4*5*6*7*8*9*10
        int result = 1;
        for (int i = 1; i <=5 ; i++) {
            result *= i;
        }
        System.out.println("result = " + result);

        MethodDemo demo = new MethodDemo();
        int fun = demo.fun(5);
        System.out.println("fun = " + fun);
    }

    //使用递归方法
    /*
        返回值类型:阶乘的结果  int
        参数:求几的阶乘  int类型
        方法名:fun

        5! = 5 * 4!
        4! = 4 * 3!
        3! = 3 * 2!
        2! = 2 * 1!
        1! = 1
     */
    public int fun(int num){
        if(num == 1){
            return 1;
        }else {
            return num * fun(num - 1);
        }
        //return num * fun(num - 1);
        /*
             num=5    5 * fun(4)
                            num=4   4 * fun(3)
                                        num=3  3 * fun(2)
                                                    num=2  2 * fun(1)
                                                                num=1

         */
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值