方法的重载

  概念:多个同名但是不同参数的方法称为方法的重载

  作用:编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法

  特点:方法名相同;同一作用域;参数不同:数量不同 类型不同 顺序不同

  注意:方法重载跟方法的返回值类型没有任何关系,所以只有返回值不同的方法不能构成重载

 

构造方法的重载

  作用:初始化对象时会传不同的参数,因此需要在一个类中定义多个构造方法,即进行构造方法重载

  注意:无参的构造方法,只有在该类没有声明任何构造方法的时候,才是默认存在的;

       只要声明了其他带参的构造方法,无参的构造方法将不会默认存在,而是必须声明才可以使用;

 

创建对象

  创建:使用new来创建类的对象

  作用:访问属性;调用方法

 

创建对象的过程

  假设存在一个类Person,创建对象语句如下所示 Person p=new Person(); 

  将上面的语句分为两个步骤: Person p;  p=new Person();

  创建一个对象后,其实有两个实体:

    对象引用变量,在栈空间,即p,称为引用,或句柄,存的是对象的虚地址;

    对象本身,即使用new Person()在堆空间里创建的实体,将对象的属性值存储到堆里

    可以使用引用变量操作对象的属性和方法;

 

调用方法

  类名  对象名 = new 该类的构造方法();   通过创建对象来调用无参的构造方法

  对象名.方法名(参数);             通过对象名调用有参方法

  方法名()                 方法名直接调用

  类名.方法名() 调用              类名.间接调用

 

代码示例

 1 package summary1;
 2 
 3 //构造方法、方法的重载以及调用
 4 public class Method 
 5 {
 6     Method()                                            
 7     {                                                        //创建一个无参的构造方法、没有返回值
 8         System.out.println("求任意两个数据类型的和");                //方法体:打印输出语句
 9     }
10     Method(String name)
11     {                                                        //构造方法重载:参数数量不同:有一个String类型参数、没有返回值
12         System.out.println(name+"准备用方法重载来实现");        //方法体、使用"+"连接符
13     }    
14     static void add()                                        //这是一个静态方法、可以直接调用
15     {                                                        //创建一个无参的方法:add
16         System.out.println("接下来准备传参计算");                //返回值类型是void
17     }
18     static int add(int a,int b)
19     {
20         int sum = a+b;                                        //方法重载:参数数量不同:定义两个整数的求和方法:add
21         System.out.println("两个整数的和是:"+sum);            //返回值是int
22         return sum;
23     }    
24     void add(double a,double b)                            
25     {
26         double sum = a+b;                                    //方法重载:参数类型不同:定义两个浮点数的求和方法:add
27         System.out.println("两个浮点数的和是:"+sum);            //返回值类型是void
28     }
29     double add(int a,double b)                            
30     {
31         double sum = a+b;                                    //方法重载:参数类型不同:定义一个整数和一个浮点数的求和方法:add
32         System.out.println("一个整数和一个浮点数和是:"+sum );    //返回值类型是double
33         return sum;                                        
34     }
35     double add(double b,int a)                                
36     {
37         double sum = a+b;                                    //方法重载:参数顺序不同:定义一个浮点数和一个整数的求和方法:add
38         System.out.println("一个浮点数和一个整数和是:"+sum );    //返回值类型是double
39         return sum;                                            
40     }
41     public static void main(String[] args)
42     {
43         Method m1 = new Method();            //创建对象时自动调用了无参的构造方法
44         Method m2 = new Method("张三");        //创建对象时传参调用了有参的构造方法
45         add();                                //静态方法无需创建可以直接调用
46         Method.add(1,2);                    //也可以用类名.方法名()来调用
47         m1.add(1.2,2.3);                     //创建对象后、传参用对象名调用有参方法
48         m2.add(4,5.5);                        //重载的作用:根据参数类型自动调用了一个整数和一个浮点数的求和方法
49         m2.add(6.6,7);                        //重载的作用:根据参数类型自动调用了一个浮点数和一个整数的求和方法
50     }
51 }