Day 5 2021-08-01

方法与重载

一.定义带参数的方法
1.带参数方法的结构: 方括号代表可以不写
   [访问修饰符] 返回值类型 方法名([形式参数列表]){
   代码;
   [return 返回值];
   }
2.调用带参数的方法
   对象名.方法名(实际参数1,实际参数2,…实际参数n)
3.参数:创建方法时,定义的参数叫形式参数(形参),调用方法时传入的参数叫实际参数(实参)
   基本数据类型做参数时,不能出方法范围
   引用数据类型做参数时,传递的是地址,可以影响方法外部
   特殊:String做参数时,等同于基本数据类型
 

二.方法传参

如果参数类型时基本数据类型,传递的是值。
如果参数类型时引用数据类型,传递的是地址

基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值

引用数据类型(类,数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用

实现学员信息管理
需求:增加学员姓名,在保存了多个学生姓名的数组中,指定查找区间,查找某个学生姓名并显示是否查找成功

public class Students {
    public String[] names=new String[5];
    public void addName(String name){
        int flag=0;
        for (int i = 0; i < names.length; i++) {
            if (null==names[i]){
                names[i]=name;
                System.out.println(name+"成功进班,学号为:"+(i+1));
                flag++;
                break;
            }
        }
        if (flag==0){
            System.out.println("当前班级已满,请下次一定!");
        }
    }
    public void show(){
        System.out.print("[");
        for (int i = 0; i < names.length; i++) {
            if (null==names[i]){
                System.out.println("]");
                break;
            }else if (i==names.length-1){
                System.out.print(names[i]+"]");
                break;
            }
            System.out.print(names[i]+",");
        }
    }
    public int search(String name,int start,int end){
        if (name==null) return -names.length;
        int num=-1;
        if (start<0||end>=names.length||start>end){
            return -1;
        }
        for (int i = start; i <= end; i++) {
            if (name.equals(names[i])){
                num=i;
            }
        }
        return num;
    }
}
public class TestStudents {
    public static void main(String[] args) {
        Students ss=new Students();
        ss.addName("赵琪");
        ss.addName("王哲");
        ss.addName("黄哲");
        ss.addName("王磊");
        ss.addName("乔正超");
        ss.addName("卢常帅");
        ss.show();
        String a="王哲";
        int rst=ss.search(a,-1,4);
        System.out.println(rst==-1?"未找到该学员":rst==-1*ss.names.length?"输入不能为空值":"在下标为"+rst+"位置找到学员"+a);
    }
}

三.方法重载

1.定义:
指在一个类中定义多个同名的方法,但要求每个方法具有不同的参数类型或参数个数.
2.方法重载的特点
*在同一个类中
*方法名相同
*参数的个数或类型不同
*方法的返回值不能作为判断方法之间是否构成重载的依据

四.构造方法

在这里插入图片描述

访问修饰符 构造方法名(){
	//初始化代码
}

构造方法没有返回值
默认构造方法没有参数,因此参数列表可选
构造方法名与类名相同
示例:为Person类定义一个构造方法
关键代码:
public class Person{
String name;
public Person(){
this.name=“小明”;
}
}

五.构造方法的重载

自定义构造方法:
方法名相同
参数项不同
与返回值、访问修饰符无关
(1)系统默认提供无参构造方法
(2)当类中定义了构造方法,原先系统默认提供无参构造方法不再提供
(3)构造方法的结构:
public 类名(){}//默认无参构造方法的结构
public 类名(参数列表){
一般来说,有参构造中的代码主要目的是为了给类中的属性赋值
}
this关键字:
      this代表本类
      this.属性名:可以指定当前类的属性(局部变量和属性名相同时)
      this.方法名():等于与方法名()
      this():构造器,必须出现在构造方法的第一行
成员变量和局部变量:
      成员变量=属性
      局部变量和成员变量同名时,在局部变量作用域内,局部变量优先级高
      成员变量范围时全类
      局部变量作用域只在结构体内
      成员变量有初始值,局部变量没有初始值
方法重载:
      同一个类中
      方法名相同
      参数列表不同
      与返回值、访问修饰符无关
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值