JAVA面向对象基础(方法及方法重载3)

方法传参

当参数传递为基本数据类型时:
操作传递的参数为基本数据类型,改变一个变量的值不会影响另一个变量的值

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

对象数组作参数

对象数组,就是数组里面存储了多个对象
定义语法和数组类似:
对象名 [] 数组名 = new 对象名[空间长度];

数组对象为参数时,和引用数据类型一样,数组也是一种引用数据类型,所以赋值时把对象的内存地址传递给了另一个引用。

构造方法

语法:
在这里插入图片描述
1、无返回值类型【注意,是不写返回值类型,不是void的无返回值】,

2、方法名和类名相同,
3、可以指定参数
作用:初始化对象
例:
我们创建学生对象时:
Student stu = new Student();
系统提供默认的无参构造方法

有参构造方法:
我们创建学生对象后需要赋值姓名和年龄,我们可以在创建对象时,直接通过参数的方式写在方法中
在这里插入图片描述
此时是把参数name,赋值给了属性name ,为了进行区分,我们使用关键字this

1.this调用属性
2.this调用当前方法
3.this调用构造方法
注:如果使用this,必须是构造方法中的第一条语句
系统默认提供无参构造方法,但是一旦定义了有参的构造方法,系统就不再提供无参的构造方法,需要手动声明无参构造方法

方法重载

方法重载一个方法名对应不同的功能
特点:
1、同一个类中
2、方法名相同
3、参数个数或类型不同
4、与返回值、访问修饰符无关
总结:同类中,同名不同参;
目的:让一个方法能实现的功能多一些,根据不同的参数都能实现功能

成员变量和局部变量

变量声明的位置决定变量作用域
作用域:起作用,生效的区域/范围
在这里插入图片描述
变量声明的位置不同,名称也不同,作用域也不同,初始值也不同

成员变量:类中方法外 作用域整个类 如果未赋值,系统默认初始值为空或0

局部变量: 方法中 作用离他最近的大括号内 未赋值不能使用


使用学员对象数组作为参数,实现学员成绩修改
如果学员成绩小于60,集体提高2分

package alertScort;
//修改成绩学生类
public class AlertStudent {
    
    
//    2、新建修改成绩类
//    修改成绩方法:判断成绩小于60分的学生,参数要传学生对象,进行for循环,成绩小于60分则+2分
    //修改成绩方法
    public void  alert(Student [] stus){
    
    
        //判断成绩小于60分的同学
        for (int i=0;i<stus.length;i++){
    
    
            if (stus[i].scort<60){
    
    
                //每个加两分
                stus[i].scort+=2;
            }
        }
    }
    //展示学生信息 未修改前的
    public  void show(Student[] stus){
    
    
        for (int i=0;i<stus.length;i++){
    
    
            stus[i].show();
        }
    }
}
package alertScort;
//创建学生类
public class Student {
    
    
    //属性 姓名  成绩
    String name;
    int scort;
    //展示成绩
    public void show(){
    
    
        System.out.println("姓名:"+name+"成绩:"+scort);
    }
}
package alertScort;

public class Test {
    
    
    public static void main(String[] args) {
    
    
        //测试类
        //新建多个学生对象,进行赋值
        Student s1=new Student();
        s1.name="张三丰";
        s1.scort=42;
        Student s2=new Student();
        s2.name="灭绝师太";
        s2.scort=23;
        Student s3=new Student();
        s3.name="小昭";
        s3.scort=95;
        //把学生对象放进对象数组
        Student[] stus = new Student[3];//生成对象数组
        stus[0]=s1;
        stus[1]=s2;
        stus[2]=s3;
        //创建修改成绩对象,用来调用修改成绩方法和展示方法
        AlertStudent alStu = new AlertStudent();
        alStu.show(stus);
        //调用修改成绩方法
        alStu.alert(stus);
        System.out.println("======修改后的成绩======");
        alStu.show(stus);
    }
}

结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/yangyingjian123/article/details/113098414
今日推荐