方法传参
当参数传递为基本数据类型时:
操作传递的参数为基本数据类型,改变一个变量的值不会影响另一个变量的值
当参数传递为引用数据类型时:
引用数据类型(类、数组和接口),赋值是把原对象的内存地址 传递给另一个引用
对象数组作参数
对象数组,就是数组里面存储了多个对象
定义语法和数组类似:
对象名 [] 数组名 = new 对象名[空间长度];
数组对象为参数时,和引用数据类型一样,数组也是一种引用数据类型,所以赋值时把对象的内存地址传递给了另一个引用。
构造方法
语法:
1、无返回值类型【注意,是不写返回值类型,不是void的无返回值】,
2、方法名和类名相同,
3、可以指定参数
作用:初始化对象
例:
我们创建学生对象时:
Student stu = new Student();
系统提供默认的无参构造方法
有参构造方法:
我们创建学生对象后需要赋值姓名和年龄,我们可以在创建对象时,直接通过参数的方式写在方法中
此时是把参数name,赋值给了属性name ,为了进行区分,我们使用关键字this
1.this调用属性
2.this调用当前方法
3.this调用构造方法
注:如果使用this,必须是构造方法中的第一条语句
系统默认提供无参构造方法,但是一旦定义了有参的构造方法,系统就不再提供无参的构造方法,需要手动声明无参构造方法
方法重载
方法重载一个方法名对应不同的功能
特点:
1、同一个类中
2、方法名相同
3、参数个数或类型不同
4、与返回值、访问修饰符无关
总结:同类中,同名不同参;
目的:让一个方法能实现的功能多一些,根据不同的参数都能实现功能
成员变量和局部变量
变量声明的位置决定变量作用域
作用域:起作用,生效的区域/范围
变量声明的位置不同,名称也不同,作用域也不同,初始值也不同
成员变量:类中方法外 作用域整个类 如果未赋值,系统默认初始值为空或0
扫描二维码关注公众号,回复: 12643094 查看本文章![]()
局部变量: 方法中 作用离他最近的大括号内 未赋值不能使用
例
使用学员对象数组作为参数,实现学员成绩修改
如果学员成绩小于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);
}
}
结果: