方法与方法重载

面向对象

方法与方法重载

如何使用带参数的方法

  • 定义带参数的方法
<访问修饰符>返回类型<方法名>(<形式参数列表>){
    //方法的主体

}
public class Juicer {
    String juice;

    //方法的声明处 如何定义形参 变量类型 变量名 多个形参中间用 , 隔开
    public void run(String type,int num){
        //带参方法如何使用参数
        //带参方法参数的作用域 就在本方法内
        //直接引用形参的参数名字
        //传参一定要按照顺序传
        System.out.println(type+num);

    }
   /* 访问修饰符     返回值类型   方法名(形式参数列表){
   * 方法体
   * }
   * public private protected ( )  四种访问修饰符 不写是默认的一种 public公共的(最大权限)
   * */

}
public class JuicerTest {
    public static void main(String[] args) {
        Juicer juicer=new Juicer();
        String type="苹果汁";
        int num=10;
        juicer.run(type,num);//带参方法的调用
        // 苹果汁 10 叫做实参 方法调用处的参数叫做实参
    }
}
  • 总结

    1. 形参和实参的参数名字可以不一样
    2. 实参必须有值
    3. 传递参数过程中必须按照顺序,对应顺序类型进行传参
  • 调用带参数的方法

对象名.方法名(参数1,参数2,......,参数n)//实参列表
  • 注意:
    1.调用方法时不能指定实参类型!
    2.形参和实参数据类型不一致!数量也要一致!
方法传参
  • 基本数据类型数据类型和引用数据类型数据在传参时区别

    • 基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用
  • 以下代码输出结果是什么?

public class Test{
    public void calc1(int num){
        num=num+1;
    }
    public void calc2(Student student){
        student.age=student.age+1;
    }
}
//测试类
Test test=new Test();
int n=8;
test.calc1(n);
Student stu=new Student();
stu.age=18;
test.calc2(stu);
System.out.println(n+"---"+stu.age);

输出结果:8—19

import java.util.Arrays;

/**
 * 2023年8月15日09:39:09
 * 学生类
 * 查找学生
 */
public class Student {
    String name;

    public String check(String[] nameList,int fromIndex,int toIndex){
        Arrays.sort(nameList,fromIndex,toIndex);
        int index=Arrays.binarySearch(nameList,fromIndex,toIndex,name);
        if (index >= 0) {
            return "存在";
        }else {
            return "不存在";
        }
    }

}

import java.util.Arrays;

public class StudentTest {
    public static void main(String[] args) {
        Student student=new Student();
        student.name="张三";//增加学生姓名
        String[] nameList=new String[7];
        nameList[0]="李四";
        nameList[1]="王五";
        nameList[2]="王五";

        nameList[3]="王五";
        nameList[4]="王五";
        nameList[5]="王五";
        nameList[6]="张三";
        String str=student.check(nameList,0,7);//排他 包头不包尾 toIndex=nameList.length
        System.out.println(str);
    }
}

构造方法

public class Student {
    String name;
    int score;//分数

    public Student() {
        // Student类的无参构造方法  构造方法不需要写返回值类型
        // 只要是类 无参构造方法是默认存在的
        // 构造方法的作用 用来创建对象
        System.out.println("开始创建");

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

//无返回值类型
//方法名与类名相同
//可以指定参数
  • 作用
    • 对象初始化
    系统提供默认无参构造方法
    

构造方法重载

  • 构造方法重载
    • 自定义构造方法
      • 方法名不同
      • 参数项不同
      • 与返回值、访问修饰符无关
    • 此时系统不再提供默认无参构造方法
    public Student(){
        public Student(String name,int age){
            this.name=name;
            this.age=age;
        }
    }
    /*带参构造方法this关键字是对一个对象的默认引用
    这里用以区分同名成员变量 */

this的用法

  • this关键字的用法
    • 调用属性
    this.health=100;
    this.name="大黄";
    
    • 调用方法
    this.print();
    
    • 调用构造方法
    this();
    
    this("小黑",100,100,"雄");
    //如果使用,必须是构造方法中的第一条语句
    

方法重载

  • 方法重载
    • 同一个类中
    • 方法名相同
    • 参数个数或类型不同
    • 与返回值、访问修饰符无关

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

  • 作用域不同
    • 局部变量的作用域仅限于定义它的方法
    • 成员变量的作用域在整个类内部都是可见的
  • 初始值不同
    • Java会给成员变量一个初始值
    • Java不会给局部变量赋予初始值
在同一个方法中,不允许有同名局部变量在不同的方法中,可以有同名局部变量
在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值