方法的定义
修饰符:public static
返回类型:可为其他类型,可不返回值(返回值为空void)
break 和 return 的区别:break直接跳出循环(switch的case穿透);return 结束方法,返回一个结果!(结果可能为空可能为其他类型)
方法名:注意规范——驼峰原则(首字母小写)、见名知意原则
参数列表:可多个参数:(参数类型 参数名,参数类型 参数名) 、可变参数(参数类型... 参数名)
异常抛出:
方法的调用
静态方法:static 修饰,直接通过 类名.方法名
非静态方法:先实例化 new ,再使用 对象名.方法名
static :和类一起加载的。非static方法在不实例化的情况下是不存在的。
形参和实参:方法在定义时是形参;调用方法时,传进来的数据参数是实参。
值传递和引用传递:在使用 对象为方法参数时,是引用传递;在使用 普通类型数据(int、String、double [ ] [ ] 等等)为参数时,是值传递,不改变原来的数据。
this 关键字
//静态方法和非静态方法 public class Demo02 { //main() 方法也是静态方法 public static void main(String[] args) { //类内调用测试 test01(); //类内静态方法可以直接调用静态方法 Demo02 demo02 = new Demo02(); demo02.test02(); //类内静态方法不可以直接调用非静态方法,要先实例化。 demo02.test01(); //静态方法也可以这样被调用 //其他类调用方法测试 Student.speak(); //类内静态方法可以通过 其他类名.方法名 调用其他类静态方法 Student student = new Student(); student.say(); //类内静态方法需要先实例化其他类,再通过 对象名.方法名 调用其他类方法的非静态方法。 student.speak();//静态方法也可以这样被调用 } //静态方法 static public static void test01(){ System.out.println(" 吴签 时期,你要忍一下 "); } //非静态方法 public void test02(){ test01(); //类内非静态方法可以直接调用静态方法 test03(); //类内非静态方法可以直接调用非静态方法 Student.speak();//类内非静态方法可以直接通过 类名.方法名 调用其他类静态方法 Student student = new Student(); student.say();//类内非静态方法需先实例化,才能通过 对象名.方法名 调用其他类非静态方法 System.out.println(" 还是 吴签 时期。电鳗:你要忍一下 "); } //非静态方法 public void test03() { System.out.println(" 还是 吴签 时期。电鳗:你要忍一下 "); } }
//值传递 public class Demo04 { public static void main(String[] args) { int a = 1; System.out.println(a);// 1 Demo04.change(a); System.out.println(a); // 1 } //返回值为空 public static void change(int a){ a = 10; } }
//引用传递:对象,本质还是值传递 public class Demo05 { public static void main(String[] args) { Person person = new Person(); System.out.println(person.name);// null Demo05.change(person); System.out.println(person.name);// wanggenji } public static void change(Person person){ person.name = "wanggenji"; } } //定义了一个Person类,有一个属性:name class Person{ String name;//null }