方法的进一步学习
方法的进一步学习
主方法
JAVA虚拟机JVM的入口函数(个人理解加载完包类资源,识别main方法开始,所以 public(JAVA文件内可以有多个类,但是public类与JAVA文件同名,一个文件一个名所以只有一个public类,main方法的唯一性) + static(和类一起加载)+ 无需返回值语句直接执行void )
静态方法
和类一起加载(主要是static的修饰:static具有统一性,static方法只能调用static的属性和方法),在其他地方引用直接引用就行,(个人理解:在栈中和类加载,程序运行就存在,类加载,程序整体由类组成)
动态方法
没有static修饰的方法,只能调用无static修饰的方法和属性,再其他地方引用要new出实例化才能调用(个人理解静态和动态的区别吧,在堆中new出来才存在)
public class HaHa {
int c;
static int d;//和类一起加载,也叫类属性,类变量
public static void main(String[] args) {
//实际参数和形式参数要一一对应
//值传递:复制一份,别处引用修改,原来的值不变
//引用传递:复制地址,别处引用修改,原来值改变
int e= add(2,3);
//minus非静态方法不能调用
System.out.println(e);
}
public static int add(int a, int b){
// c=0 静态方法内不能用非静态的变量
d=a+b;
return d;
}
public int minus(int a,int b){
d=a+b;//可以用类变量
return d;
}
//在其他包下引用,要public加上注意static属性
public static void main(String[] args) {
int a= HaHa.add(2, 3);//直接调用,类加载就加载,程序运行就存在
HaHa haHa = new HaHa();
haHa.minus(2,3);//new以后才能调用,也可以理解为new以后才存在
System.out.println(a);
}

值传递
复制一份,别处引用修改,原来的值不变
引用传递
复制地址,别处引用修改,原来值改变(原本理解是一次改变就全变,但是后面发现在Java中对象传递具有空间性,就是改变值只是在某一空间内)
//引用传递
//产生一个对象
Person person=new Person();
System.out.println(person.name);//默认值null
//引用方法
LaLa laLa=new LaLa();
laLa.changeName(person);//调用改变名字方法,
// 方法内是person.name执行person类
System.out.println(person.name);//在这个包及类下(就是在这个空间下)person.name已经被改变
//值传递
//定义a
int a=1;
System.out.println(a);//1
changeNumber(a);//调用改变数字方法,
// 方法内就是单纯的数字参数赋值,没有指向
System.out.println(a);//1没有改变
}
static void changeNumber(int a){
a=10;
}

break和return
break:退出循环,直接退出方法等,中断作用 return:退出方法返回值,不再执行,由中断作用
前面忘了:运算符逻辑运算也有短路的作用:即且当第一个条件不成立,就不用判断后面的条件,if控制的条件语句就不用执行
思路:都是为了代码高效
浙公网安备 33010602011771号