当参数传递为基本数据类型时,参数变化不保留,基本数据类型参数传值
当参数传递为引用数据类型时,参数变化会保留,引用数据类型参数传址
//基本数据类型在别处被重新赋值,则本体不受影响,其值不变
//引用型数据类型在别处被重新赋值,则本体随之改变,其值为改变后的值
使用基本数据类型,相当于将本体复制一份拿到别处用,本体不会受到影响:不会对本体重新赋值
使用引用型数据类型,则是把整个地址拿过去用,当改变其值时,首先这个地址不在指向原来的值,而是重新指向一个新的值;因此当我们再次查看这个地址时,其指向的值就是改变后的那个值
实参和形参的类型必须一致,名字可以一致,也可不一致
//使用带参方法时,1、传的参数类型要与定义的方法参数类型一致
// 2、传的参数个数要与定义的方法参数个数相同
// 3、多个参数时,传的参数顺序要与定于的方法顺序一致
构造方法
如何定义:访问修饰符 构造方法名(){//初始化代码}
作用:对象初始化(系统提供默认无参构造方法)
方法的重载:同名不同参
特点:在一个类中,方法名相同,参数列表不同,与访问修饰符和返回值类型无关
补充:参数列表不同:参数的个数不同或者参数的类型不同
成员变量和局部变量:
成员变量作用域:在整个类的内部
局部变量作用域:在定义它的方法中
成员变量的初始值:系统会给默认初始值
局部变量的初始值:需要我们自己给赋值
在同一个方法中,不能有同名的局部变量
在同一个类中,成员变量可以和局部变量名相同,但是局部变量优先级更高
作业:
1、
packagecom.jisunqi;/*** Counter.java
*@author陈
*2019.1.15*/
public classCounter {//定义计算器类
public int count(int num1, intnum2) {//定义计算器类的带参方法 实现两个整数相加
int sum = num1+num2;returnsum;
}public double count(double num1,double num2,doublenum3) {//定义相同名字不同参数的带参方法(方法重载) 实现三个浮点数相加
double sum = num1+num2+num3;returnsum;
}
}
packagecom.jisunqi;/*** TestCounter
*@author陈
*2019.1.15*/
public classTestCounter {//测试计算器
public static voidmain(String[] args) {
Counter bear= newCounter();//创建对象
int sum = bear.count(9, 8);//调用第一个方法 使用对象
System.out.println("两个整数和为:"+sum);
System.out.println("*********************");double sum3 = bear.count(1.1, 1.5, 1.7);//调用第二个方法 使用对象
System.out.println("三个浮点数和为:"+sum3);
}
}
2、答案:发工资啦,快买一个苹果牌子的手机吧!
验证:
packagecom.lianxi;public classMobilPhone {publicString brand;publicMobilPhone() {this.brand = "诺基亚";
}publicMobilPhone(String bra) {this.brand =bra;
}publicString buy() {return "没发工资,买一个" +brand+"牌子的手机吧";
}publicString buy(String reason) {return reason+",快来买一个"+brand+"牌子的手机吧!";
}
}
packagecom.lianxi;public classMobilPhoneTest {public static voidmain(String[] args) {
MobilPhone mp= newMobilPhone();
mp.brand= "苹果";
String detail= mp.buy("发工资啦");
System.out.println(detail);
}
}