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():构造器,必须出现在构造方法的第一行
四、成员变量和局部变量
成员变量和局部变量:
成员变量=属性
局部变量和成员变量同名时,在局部变量作用域内,局部变量优先级高
成员变量范围是全类
局部变量作用域只在结构体内
成员变量有初始值,局部变量没有初始值