package se.oop; //Dome01就是类 public class Demo01 { //main方法 public static void main(String[] args) { } /*修饰符 返回值类型 方法名(形参) //方法体 return:返回值 */ //return:结束方法,返回一个值 //break:switch语句是跳出,循环语句是结束循环 //返回值类型必须与返回的值相同 public String sayhello(){ return "hello"; } public void test(){ return; } public static int max(int a,int b){ return a>b ?b:a; } }
public class Demo02 { public static void main(String[] args) { //静态方法 static //可以直接输入类名+方法名调用 Student.say(); //非静态方法 就是没有static //首先需要实例化类:new //再输入类名+方法名调用 //对象类型 对象名 = 对象值 Student student = new Student(); student.say2(); //实际参数与形式参数的类型要一样!!! Demo02 demo02 = new Demo02(); int add = demo02.add(1,2); System.out.println(add); } public void a(){ //当两个都是非静态方法时可以相互直接调用 //静态方法static是和类一起加载的,非静态是实例化之后才存在的,所有两者之间不能相互调用 b(); } public void b(){ a(); } public static void c(){ //当两个都是静态方法时可以相互直接调用 //静态方法static是和类一起加载的,非静态是实例化之后才存在的,所有两者之间不能相互调用 d(); } public static void d(){ c(); } public int add(int a,int b){ return a+b; } }
#值传递
public class Demo03 { public static void main(String[] args) { //值传递:只是把值赋给方法,由于返回值为空所以经过方法后的a还是等于主方法的a值 int a = 1; System.out.println(a); Demo03.change(a); System.out.println(a); } public static void change(int a ){ a= 2; } }
#引用传递
public class Demo04 { public static void main(String[] args) { //引用传递:引用对象,本质还是值传递 Perosn perosn = new Perosn(); System.out.println(perosn.name);//null Demo04.change(perosn); System.out.println(perosn.name);//贺前发 } public static void change(Perosn perosn){ perosn.name = "贺前发"; } } //定义了一个perrosn类,里面有一个属性name class Perosn{ String name; }