其他分享
首页 > 其他分享> > 回顾方法的调用

回顾方法的调用

作者:互联网

 

 

 1 package oop.demo01;
 2 
 3 public class Demo02 {
 4 
 5     public static void main(String[] args) {
 6         //静态方法 + static   //类名.方法名
 7         Student.say();
 8 
 9         //非静态方法
10         //Student.say2();//此方法不能用
11         //解决办法:①先实例化这个类 通过new这个关键词
12         new Student().say2();
13         //②对象类型  对象名 = 对象值;
14         Student student = new Student();
15         student.say2();
16     }
17 
18     public void a(){
19         b();//若两个方法都是非静态的,可相互调用
20     }
21     public void b(){
22         a();
23     }
24     public static void a2(){//若两个方法都是静态的,也可相互调用
25         b2();
26     }
27     public static void b2(){
28         a2();
29     }
30     //若一个方法为静态,另一个方法为非静态,不可相互调用
31     //原因:static是和类一起加载的,而非静态的方法,类实例化,之后才存在
32 
33 }
 1 package oop.demo01;
 2 //学生类
 3 public class Student {
 4     //静态方法
 5     public static void say(){
 6         System.out.println("学生说话了!");
 7     }
 8     //非静态方法
 9     public void say2(){
10         System.out.println("学生又说话了!");
11     }
12 }
 1 package oop.demo01;
 2 
 3 public class Demo03 {
 4     public static void main(String[] args) {
 5         //非静态方法
 6         new Demo03().add(5,8);//方法1
 7         Demo03 demo03 = new Demo03();//方法2
 8         demo03.add(5,8);
 9         //静态方法
10         Demo03.add2(4,10);//实参
11     }
12     public int add(int a, int b){//形参
13         return a + b ;
14     }
15     public static int add2(int c , int d){
16         return c + d;
17     }
18     //实际参数和形式参数的类型要对应!
19 }

值传递:

 1 package oop.demo01;
 2 
 3 public class Demo04 {
 4     public static void main(String[] args) {
 5         int a = 1;
 6         System.out.println(a);//1
 7         Demo04.change(a);
 8         System.out.println(a);//1:值传递
 9     }
10     //返回值为空
11     public static void change(int a){
12         a = 10;
13     }
14 }

引用传递:

 1 package oop.demo01;
 2 //引用传递:对象 但本质还是值传递
 3 public class Demo05 {
 4     public static void main(String[] args) {
 5         Person person = new Person();
 6         System.out.println(person.name);//null
 7 
 8         Demo05.change(person);
 9         System.out.println(person.name);//yy
10     }
11     public static void change(Person person){
12         //person是一个对象 指向的 Person person = new Person(); 这是一个具体的人,可以改变属性!
13         person.name = "yy";
14     }
15 }
16 //一个类中可以有多个class,但只能有一个public  class
17 //定义了一个Person类,有个属性叫name
18 class Person{
19     String name;
20 }

 

标签:调用,回顾,int,void,class,person,static,方法,public
来源: https://www.cnblogs.com/Boss7yy/p/16685256.html