精华内容
下载资源
问答
  • 主要介绍了Java基础教程之构造器与方法重载,构造器可以初始化数据成员,还可以规定特定的操作,本文还对方法重载做了介绍,需要的朋友可以参考下
  • Java 方法重载构造器重载之间的区别 作者:邹爱红, 撰写时间:2019年05月08日 构造器重载:形参列表不同 public class Demo2 { String name; int age; //只是形参列表不同 public Demo2(){ System.out....

    Java 方法的重载跟构造器重载之间的区别

    作者:邹爱红,
    撰写时间:2019年05月08日

    构造器的重载:形参列表不同

    public class Demo2 {
    String name;
    int age;
    //只是形参列表不同
    public Demo2(){
    System.out.println(“无参构造方法”);
    this.name = name;
    this.age = age;
    }
    public Demo2( int age) {
    this.name = “小天”;
    this.age = age;
    }

    public Demo2(int age,String name) {
    this(age);//调用另外一个构造方法
    this.name = name;
    }
    public Demo2(String name, int age) {

    this(age,name);
    System.out.println(“有参构造方法3”);
    }
    public void say(String text){
    System.out.println(this.age +“岁的”+this.name+“说: “”+text+”"");
    }
    //构造器的调用
    public static void main(String[] args)
    {
    //构造器的申明实例化和使用
    //无参数构造方法
    Demo2 demo1=new Demo2();
    demo1.age=20;
    demo1.name=“允恩”;
    demo1.say(“积极向上的心态,是成功的最基本要素”);

    //有参构造方法1
    System.out.println();
    System.out.println(“有参构造方法1”);
    Demo2 demo2=new Demo2(19);
    demo2.name=“小美”;
    demo2.say(“生活总会给你另外一个机会,这个机会叫明天”);
    //有参构造方法2
    System.out.println();
    System.out.println(“有参构造方法2”);
    Demo2 demo3=new Demo2(19,“雨晴”);
    demo3.say(“青春是明知道错了,偏要任性到底!”);

    有参构造方法3
    System.out.println();
    Demo2 demo4=new Demo2(“芷琪”,19);
    demo4.say(“我们必须在失败中寻找胜利,在绝望中寻找希望”);
    }
    }
    在这里插入图片描述

    方法的重载(overload ): 返回类型可以相同 也可以不同。

    1. 区别是参数,必须形参列表不一样(参数个数或类型不一样);

    2. 被重载的方法可以改变返回类型

    3. 返回的类型不能作为重载的标准,形参类表才是

    4. 修饰符可以改变

    5. 可以声明新的或更广的检查异常也可以,不影响重载,相同的方法名,形参列表不同

    6. 方法能够在同一个类中或者在一个子类中被重载。

    方法的三个要素:调用者相同,方法名相同,形参列表不同

    调用者就是:本身那个类,然后变成要可以点出来的static,本来是要实例化的,

    所属的调用者不同,不构成方法重载。

    修饰符可以改,修饰符不影响方法的重载

    重载的例子:
    package baoming;
    public class
    Teacher {
    int age;
    String name;
    Public
    int getAge() {
    return age;
    }

    Public void setAge(int age) {
    this.age = age;
    }

    Public String getName() {
    return name;
    }

    public void setName(String name) {
    this.name = “啊娟”;
    }
    public void say(String text) {
    System.out.println(this.age + “岁的” + this.name + “说:”" + text + “”");
    }
    public void say(String text, String state) {
    System.out.println(this.age + “岁的” + this.name + state + “的说:”" + text

    • “”");
      }

    public String say(String text, String state, String location) {
    return this.age+ “岁的” + this.name + “在” + location + “”+ state+ “的说:”" + text + “”";
    }
    public static void main(String[] args) {
    Teacher teacher = new Teacher();
    teacher.setAge(19);
    teacher.setName("");// 调用那个阿娟
    teacher.getName();//获取使用
    teacher.say(“舞动生命的旋律,把握青春的脉搏”);
    teacher.say(“虽然我们无法阻拦时间的流逝,但是我们可以主宰自己的心情”, “激动”);
    String string=teacher.say(“用心吐字,用爱归音”, “激动”, “学校”);
    system.out.println(string);
    }
    }

    结果;
    在这里插入图片描述

    展开全文
  • 在介绍方法重载前要先了解一下什么是方法 方法:  概念:类的共同行为,封装了一段逻辑代码,在封装方法时,尽可能的只完成一项功能(避免将多个功能封装到一个方法内)  方法的使用:方法属于对象的行为,应该...

    在介绍方法重载前要先了解一下什么是方法

    方法:
       概念:类的共同行为,封装了一段逻辑代码,在封装方法时,尽可能的只完成一项功能(避免将多个功能封装到一个方法内)
       方法的使用:方法属于对象的行为,应该使用:引用.方法,这些方法动态绑定到对象上  
       方法签名:
               方法名+形参列表=方法签名
               形参列表:指的是形参的类型顺序列表
               
           如:public void  sum(int a,int b)    
                   方法签名是: sum + int,int   
                   public int   eat(String food)
                   方法签名是:eat +String  

    方法的重载(overload):在同一个类型中,方法名相同,参数列表不同     
               在方法调用时,编译器会检查类的信息中是否有此方法签名的方法c.sum(3,5):
               此时编译器检查类中是否有c.sum(int,int)这样的方法如果有,编译通过,没有,编译失败,并提示错误       

    public class Point {
    	int x;//横坐标
    	int y;//纵坐标
    	public double distance() {
    		int num = x*x+y*y;
    		return Math.sqrt(num);
    	}
    	/**横纵坐标移动整数s*/
    	public void move(int s) {
    		x+=s;
    		y+=s;
    	}
    	/**横纵坐标移动浮点数s*/
    	public void move(double s) {
    		/*
    		 * 扩展赋值运算符,类型不一致时
    		 * 会自动转成符号左边的类型
    		 * 
    		 * int  m = 10;
    		 * double s = 5.5;
    		 * m+=s;//相当于 m = (int)(m+s)
    		 */
    		x+=s;
    		y+=s;
    	}
    	/**横坐标平移x,纵坐标平移y*/
    	public void move(int x,int y) {
    		this.x+=x;
    		this.y+=y;
    	}

    这里我们再介绍一下java的内存管理机制

    jvm将内存分成三大主要区域。
       方法区: jvm将字节码文件加载到此区域,用来存储类的信息
       堆(heap):用来存储引用类型的对象
       栈(stack):用来存储方法内的局部变量
            栈帧:是栈中的空间。当程序执行到某一个方法时,jvm专门为此方法开辟的一块独有空间,此方法内的局部变量,都在此栈帧中,当此方法结束后,栈帧消失,释放内存

    构造方法(构造器):
          是特殊的方法,作用是用来给成员变量(Field,字段,属性)
          特点:
          (1)没有返回值这个位置
          (2)方法名与类型相同

        默认无参构造器:如果定义类时,没有添加构造方法,系统会默认提供一个公有的没有形式参数的构造方法
                   public Point(){}
                   
                   注意:如果定义期间,提供了构造器,系统不再提供无参构造器。
        有参构造器:因为构造器是用来给成员变量初始化的,为了方便,所以形式参数的名称都与成员变量一致。因此,在赋值时,this.不能省略。
                 
       构造器的调用:
                只能是new关键字来调用 。
                new 构造方法(有参传参)。
              
              对象的实例化:是由new完成的(对象此时就存在了,但是成员变量都是默认值)
              对象的成员变量初始化:是由new调用的构造器进行的(成员变量是第一次被赋值)             

    构造器的重载:
          一个类中,可以有多个构造器。
          方法名相同,参数列表不同 

    参考代码:

    public class Student {
    	String stuId;
    	String name;
    	String grade;
    	int age;
    	double score;
    	public Student(String stuId,String name,String grade,int age,double score) {
    		this.stuId = stuId;
    		this.name = name;
    		this.grade = grade;
    		this.age = age;
    		this.score = score;
    	}
    }

    可变参数:在Java 中提供了变长参数(varargs),也就是在方法定义中可以使用个数不确定的参数,对于同一方法可以使用不同个数的参数调用

            语法:public void sum(类型名称...类型名) { }

    练习代码

    public void sum(int...a) {
    		int sum=0;
            //可传入多个参数
    		for (int i = 0; i < a.length; i++) {  
    			sum+=a[i];
    		}
    		System.out.println(sum);
    	}

     

    持续更新中。。。。。

    展开全文
  • 构造器的重载构造器的重载和方法重载相似。只不过构造器要求必须和类名相同,所以当重载构造器的时候要求其参数列表必须不相同。 构造器中this()的使用 使用条件 public Person(){}//默认的构造函数 public Person...

    构造器的重载

    构造器的重载和方法重载相似。只不过构造器要求必须和类名相同,所以当重载构造器的时候要求其参数列表必须不相同。
    

    构造器中this()的使用

    1. 使用条件
    public Person(){}//默认的构造函数
        public Person(String name){ // 带一个参数的构造函数
             this.name=name;
         }
         public Person(String name,int age){// 带两个参数的
             this.name=name;
             this.age=age;
         }
    
         public Person(String name,int age,String address){
             this.name=name;
             this.age=age;
             this.address=address;
         }

    上面是一个简单的构造器的重载,我们发现了一个规律就是参数列表的特点。没错,只有这种情况才适合使用this()调用其他的构造器,如下

        public Person(){}//默认的构造函数
        public Person(String name){ // 带一个参数的构造函数
             this.name=name;
         }
         public Person(String name,int age){// 带两个参数的
             this(name);// 使用this();
             this.age=age;
         }
    
         public Person(String name,int age,String address){
             this(name,age);// 使用this();
             this.address=address;
         }

    使用this调用另一个重载的构造器的时候,当创建对象时候选择相对应的构造器,系统会先根据this()中的参数列表调用与之相对应的构造器,然后在执行余下的构造器的方法体。使用this();调用构造器的要求如下

    • 只能在构造器中使用
    • 必须作为构造器执行体的第一行使用
    展开全文
  • 构造器重载名字相同,而形参列表一定不同或者形参列表次序不同,构造器名和类名相同,并且没有返回值 例子如下: public class Dog { public Dog(){//类名 Dog作为构造器名 System.out.println(“无参构造方法”...

    开发工具与关键技术:Java
    作者:吴永旗
    撰写时间:2019年4月25日

    1. 什么构造器重载?
      构造器重载名字相同,而形参列表一定不同或者形参列表次序不同,构造器名和类名相同,并且没有返回值
      例子如下:
      public class Dog {
      public Dog(){//类名 Dog作为构造器名
      System.out.println(“无参构造方法”);
      }
      public Dog(String name,int age){//类名 Dog作为构造器名,带有参数
      System.out.println(“参构造方法1”);
      }
      public Dog(int age,String name){//类名 Dog作为构造器名,带有参数,次序不同
      System.out.println(“参构造方法2”);
      }
      }

    2. 认识什么是方法重载和方法重写
      方法重载:一个类中定义了多个方法名相同,而他们的参数的数量不同或数量相同 而类型和次序不同,则称为方法的重载(Overloading)。
      方法重写:在子类存在方法与父类的方法的名字相同,而且参数的个数与类型一 样,返回值也一样的方法,就称为方法重写(Overriding)。

    3. 方法重载的规则有哪些?

    4. 必须形参列表不一样(参数个数或类型不一样);

    5. 可以改变返回类型

    6. 可以改变访问修饰符

    7. 可以声明新的或更广的检查异常

    8. 法能够在同一个类中或者在一个子类中被重载。

    9. 返回值类型不能作为重载函数的区分标准。

    10. 方法重写的规则有哪些?

    11. 参数列表必须完全与被重写方法的相同

    12. 返回类型必须完全与被重写方法的返回类型相同

    13. 访问权限不能比父类中被重写的方法的访问权限更低,例如,父类方法被声明public修饰,则子类重谢该方法是不能声明为protected

    14. 父类的成员方法只能被它的子类重写

    15. 声明为final的方法不能被重写

    16. 声明为static的方法不能被重写,但是能够被再次声明

    17. 子类和父类在同一个包中,那么子类可以重写父类所有除了声明为private和final 的方法

    18. 子类和父类不在同一个包中,那么子类只能够重写父类的声明为public和 protected的非final方法

    19. 重写的方法不能抛出新的强制性异常,或者比被重写方法声明的更广泛的强制性异常

    20. 构造方法不能被重写

    21. 如果不能继承一个方法,则不能重写这个方法

    22. 重写与重载之间的区别
      区别点 重载方法 重写方法
      参数列表 必须修改 一定不能修改
      返回类型 可以修改 一定不能修改
      异常 可以修改 可以减少或删除,一定不能抛出新的或者更广的异常
      访问 可以修改 一定不能做更严格的限制(可以降低限制)

    23. 方法的重载示例如下:
      public class Dog{
      public void dog(){
      System.out.println(“这是重载的方法1”);
      }
      public String dog(){
      System.out.println(“这不是一个重载的方法”);
      }
      public void dog(String name){
      System.out.println(“这是一个重载的方法2”);
      }
      public void dog(String name){
      System.out.println(“这不是一个重载的方法”);
      }
      public void dog(String name,int age){
      System.out.println(“这是一个重载的方法3”);
      }
      public void dog(int age ,String name){
      System.out.println(“这是一个重载的方法4”);
      }

    24. 方法的重写示例如下:
      在这里插入图片描述在这里插入图片描述

    展开全文
  • 重载构造器的区别

    2018-02-02 16:03:28
    方法重载就是同一个类中,有多个方法方法名是一样的,但是形参不一样,调用的...构造方法也叫构造器,它也是一种方法,也可以重载,它的方法类名相同,不用写返回值,也不用加void。例如 class a{ public a()
  • 构造器重载方法重载基本相似:概况起来就是名称相同,参数列表不同。要求构造器的名字相同,这一点无须特别要求,因为构造器必须类名相同,所以同一个类的所有构造器名肯定相同。为了让系统能区分不同的构造...
  • 一、了解方法重载 1.方法重载:是指一个类中名字相同,参数不同(类型不同,或个数不同)。调用时会根 据不同的参数列表选择对应的方法 注意:返回值不同不构成...构造方法重载普通方法一样,构造方法也可以重载
  • 这个代码特别想在调用一个方法名为student的无参数方法,把这种特殊的方法称为构造器 但我们发现在student类中却找不到该构造方法; 编译器在编译源文件时会默认创建一个缺省的构造器: publiv Student()
  • Java构造方法 重载与重写

    万次阅读 多人点赞 2019-04-18 18:10:44
    内容部分引自《Java语言程序设计》...构造方法的作用是初始化对象,也可以重载(即-可以有多个同名的构造方法,但是需要有不同的签名) 一个类可以不定义构造方法,类中会隐含创建一个方法体为空的构造方法(类中...
  • 内容: 1、Scala主构造器 2、构造器重载 3、私有构造器 一、Scala主构造器&构造器重载 (1)无参的主构造器
  • 构造器:是一种和类名相同的方法,一个类中可以有多个不同不同参数的构造器;但是不能有返回值; 构造器和普通方法的区别:构造器是为了创建一个类的实例。这个过程也可以在创建一个对象的时候用到:...
  • 1.构造器注意的:如果我们没有显示提供构造器,编译器在编译时会创建一个缺省的构造器,但是如果我们显示定义了一个构造器,则编译器不再创建缺省构造器,可以推论出:一个类至少有一个构造器2.自定义构造器package ...
  • Swift 学习笔记 [3] 类 重载构造器

    千次阅读 2017-01-12 16:17:42
    类的重载、类的两种构造器、类的两段式构造、类构造方法重载
  • 方法重写、构造方法方法重载

    千次阅读 2016-12-24 14:53:59
    实现继承修饰符的访问权限要大于或等于父类方法名、返回值类型、参数列表必须相同构造方法 * 语法访问修饰符 类名(){} 使用 1、当一个类中没有定义构造方法,JVM会默认创建一个public修饰的无参数的构造方法;2、...
  • 构造器与私有构造器package kmust.hjr.learningScala08/** * Created by Administrator on 2015/7/14. */ class Teacher{ var name:String=_ private var age =25 private [this] val gender="male" def this...
  • 一、Scala主构造器实战 Scala构造器和Java构造器有很大的不同,若传入的参数以var或val来说明,那么这个参数会成为类的字段 class Teacher{ //这里省略了() 主构造器构造器的定义和类定义交织在一起 var name : ...
  • //定义Teacher类时,有个默认构造器Teacher(),是其主构造器,其他所有构造器都是他的重载构造器,任何一个重载构造器必须直接或间接调用主构造器 (2)有参的类构造器 def main(args:Array[String]{ Val p...
  • Swift 将为所有属性已提供默认值的且自身没有定义任何构造器的结构体或基类,提供一个默认的构造器。这个默认构造器将简单的创建一个所有属性值都设置为默认值的实例。
  • Java 匿名函数、构造方法、构造代码块、方法重载与方法重写
  • Java构造方法以及构造方法重载

    千次阅读 2018-12-23 08:49:02
    构造器的名称应类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。 声明格式:  [修饰符] 类名(形参列表){ //n条语句 } 要点:  1. 通过new关键字调用!!  2. 构造...
  • Swift构造器重载

    千次阅读 2014-08-30 20:04:57
    那么作为构造器的特殊方法,是否也存在重载呢?答案是肯定的。一、构造器重载概念Swift中函数重载的条件也适用于构造器,条件如下:函数有相同的名字;参数列表不同或返回值类型不同,或外部参数名不同;Swift中的...
  • 方法重载 可以使同一功能适用于各种类型的数据,它是声明两个以上的同名方法,实现对不同数据类型进行相同的处理 方法重载的要求 1、 重载方法名称必须相同 2、 重载方法,其形参个数或类型必须不同   ...
  • 主要介绍了Java重载构造原理用法,结合实例形式分析了java可变参数、方法重载、构造器等相关概念、原理及操作注意事项,需要的朋友可以参考下
  • 008-Scala主构造器、私有构造器构造器重载实战详解 Scala主构造器实战 无参数的主构造器   分析 1.name 需要赋初值,一般通过占位符来代表空值 2.private 声明私有的age 生成的getter/setter方法也是私有...
  • 方法签名 许多程序语言(C和C++)用函数这个术语来描述子程序,而在java中却常用方法这个词来表示“做某些事情的方式”。方法的基本的组成部分包括:名称、参数列表、返回值和方法体。形式如下: 权限修饰词 返回...
  • java构造器重载

    千次阅读 2019-05-07 17:29:42
    开发工具关键技术:java语言、MyEclipse 10 作者:邓李庆 撰写时间: 2019年4月30日 下面给大家讲一些java中的基础面向对象,我们来了解一下什么是面向对象;对象和类有什么区别。对象和类的概念:对象:对象是类...
  • 构造方法重载

    2019-04-28 07:51:36
    构造器重载 //构造方法重载 public class Constructor { String Weather; String Area; int num; String A="我是变量"; public Constructor() { System.out.println("一个无参构造器"); } .....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 174,330
精华内容 69,732
关键字:

方法重载与构造器