一。值传(方法的形参的传递机制)
(普通的)方法里调方法,可以不用new对象
自己定义的对象为引用数据类型
1.形参:方法定义时,声明的小括号内的参数
实参:方法调用时,实际传递给形参的数据
如果参数是基本数据类型,此时实参赋给形参的是实参真实存在的数据值
如果参数是引用数据类型,此时实参赋给形参的是实参存储数据的地址值
举例:交换某两个数组元素的值
形参包含数组名,和两个数组的索引(下标)
println(char[])//打印出数组元素的值
ps:如果是以“对象.方法”更改属性时,即使传的是基本数据类型,对象的属性也会更改
package com.atguigu2.java;
public class AnimalTest {
public static void main(String[] args) {
Animal a = new Animal();
a.name = "kanjiagou";
a.age = 1;
a.legs = 4;
a.setLegs(-6);
a.show();
}
}
class Animal{
String name;
int age;
int legs;
public void eat(){
System.out.println("动物进食");
}
public void show(){
System.out.println("name ="+ name +",age=" + age +",legs=" + legs);
}
public void setLegs(int l){//赋值就完了,不需要返回值
if(l >=0 && l%2 == 0){
legs =1;
}
else{
legs = 0;
}
}
}
//结果为name =kanjiagou,age=1,legs=0
二。递归(能解决循环问题)
自己调用自己,但要像已知方向递归
比如求N的阶乘,斐波那契数列
三。封装性
(API?)
为什么降低权限?比如能防止客户调用属性瞎赋值导致出现不合理的情况(人既不是难也不是女)