zoukankan      html  css  js  c++  java
  • 第八篇 构造器和方法重载

    一、构造方法

    Java通过构造器创建对象,构造器又名构造方法,它是一个特殊的方法,为什么特殊呢?

    ① 通过new关键字调用,普通方法通过对象或者类(静态方法)调用

    ② 构造器的的方法名必须和类名一样

    ③ 构造器没有返回值。这与void返回值有区别,void返回值代码中可以运行return(中断程序),但是构造器中不能。

    ④ 如果我们没有定义构造器,则系统会自动定义一个无参构造。如果我们自定义构造器,则编译器不会再添加。(建议:如果我们自定义构造器,最好也写一个无参构造)

    public class TestConstructor {
        int i;
    
        public TestConstructor(){
            System.out.println("TestConstructor.TestConstructor");
        }
    
        public TestConstructor(int i){
            System.out.println("TestConstructor.TestConstructor" + i);
        }
    }

    二、方法重载

    1. 定义

    方法重载是指一个类中可以定义有相同的名字,但是参数不同的多个方法。调用的时候根据不同的参数列表调用对应的方法。

    public class TestOverLoad {
    
        public int  add(int a,int b){
            return a+b;
        }
    
        public int add(int a, int b, int c){
            return a+b+c;
        }
    }

    2. 区分方法重载

    这个在笔试中很常见。我们如何区分方法重载?在同一个类中,同一个方法名,每个重载方法都必须有独一无二的自变量列表(参数的类型,个数,顺序不同)。

    public class TestOverLoad {
    
        public long  add(int a,long b){
            return a+b;
        }
    
        //参数个数不同
        public long add(int a, int b, long c){
            return a+b+c;
        }
    
        //参数顺序不同
        public long add(long a, int b) {
            return a + b;
        }
    
    	//参数类型不一样
        public long add(long a, long b){
            return a+b;
        }
    }
    

    要注意的是,返回值不同不能构成方法重载,因为编译器不会根据上下文去区分调用的是哪个方法。

    public class TestOverLoad {
        public int add(int a, int b){
            return a+b;
        }
    
        //返回值不同 报错
        public long add(int a, int b){
            return a+b;
        }
    }
  • 相关阅读:
    UML学习
    A problem has been encountered while loading the setup components. VS2008
    C#获取资源中的图片文件
    [网络技巧]一个网线头来测试网络程序
    通过传递"窗体的名字"来实例化窗体
    [解决方案] Flex TypeError: Error #1007: 尝试实例化的函数不是构造函数。
    Flex编译器的一些参数
    ArcGIS 9.3安装流程(包括Desktop和Server)
    Oracle Wrong solution [整理中]
    What's DOM?(1)
  • 原文地址:https://www.cnblogs.com/duoluomengxing/p/6582820.html
Copyright © 2011-2022 走看看