java-传递参数、构造方法、this关键字、成员变量和局部变量

java-传递参数、构造方法、this关键字、成员变量和局部变量

一、方法传参

在这里插入图片描述
传递参数时:
如果参数类型是基本数据类型,传递的是值
如果参数类型是引用数据类型,传递的是地址

案例:
在这里插入图片描述
代码实现

package cn.kgc.kb11;
import java.util.Arrays;
public class Demo3 {
    
    
    /*
    *  要对数组进行分数求和,求平均值,判断平均值
    *  若小于60分,则对象数组中的每一个元素分数+2
    *  对象数组,数组中的每一个元素是该类型的对象
    *  正常需要判空
    */
    public void addScores(Student[] s){
    
    
        if(null==s){
    
    
            System.out.println("数组为空,没有成绩");
            return;
        }
        int sum=0;
        int cnt=0;
        for (int i = 0; i < s.length; i++) {
    
    
            //找出每个对象,找出对象中的成绩,累加求和
            if (null==s[i]) {
    
    
                continue;
            }
            sum+=s[i].score;
            cnt++;
        }
        double avg=sum/(double)cnt;
        if(avg<60){
    
    
            for (int i = 0; i <s.length ; i++) {
    
    
                if(null==s[i]){
    
    
                    continue;
                }
                s[i].score+=2;
            }
        }
    }

    public static void main(String[] args) {
    
    
        Demo3 d =new Demo3();
        Student[] ss = new Student[5];
        System.out.println(Arrays.toString(ss));
        for (int i = 0; i < ss.length; i++) {
    
    
            ss[i]=new Student();
            ss[i].score=(int)(Math.random()*60+40);
        }
        System.out.println(Arrays.toString(ss));
        for(Student s :ss)
        {
    
    
            System.out.print(s.score+",");
        }
        System.out.println();
        d.addScores(ss);
        for(Student s :ss)
        {
    
    
            System.out.print(s.score+",");
        }
    }
}

二、构造方法

构造方法:
1、系统默认提供无参构造方法
2、当类中定义了构造方法,原先系统默认提供的构造方法不再提供
3、构造方法的结构:
public 类型(){}//默认无参构造方法的结构
public 类名(参数列表){
一般来说,有参构造中的代码是给类中的属性赋值。
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、this关键字

this关键字:
this代表本类
this.属性名:可以指定当前类的属性(局部变量和属性名相同时)
this.方法名():等同于方法名()
this():构造器,必须出现在构造方法的第一行
在这里插入图片描述

四、成员变量和局部变量

成员变量和局部变量:
成员变量=属性
局部变量和成员变量同名时,在局部变量作用域内,局部变量优先级高
成员变量范围是全类
局部变量作用域只在结构体内
成员变量有初始值,局部变量没有初始值

猜你喜欢

转载自blog.csdn.net/wl20040124/article/details/112723287