精华内容
下载资源
问答
  • Java构造方法构造方法重载
    2021-11-16 20:16:11

    1.构造方法

    构造器也叫构造方法(constructor),用于对象的初始化。Java通过new关键字来调用构造器,从而返回该类的实例

    声明格式:

    [修饰符]类名(形参列表){
    	//n条语句
    }

    构造器4个要点:

    • 构造器通过new关键字调用

    • 构造器虽然有返回值,但是不能定义返回值类型,不能在构造器里使用return返回某个值

    • 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数,如果已经定义则编译器不会自动添加

    • 构造器的方法名必须和类名一致

    举例

    class Point{
    	double x;
    	double y;
    	public Point(double _x,double _y) {
    		this.x = _x;
    		this.y = _y;
    	}
    	public double getDistance(Point p) {
    		return Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
    	}
    }
    
    public class TestConstructor {
    	public static void main(String[] args) {
    		Point p = new Point(3.0,4.0);
    		Point orgin = new Point(0.0,0.0);
    		System.out.println(p.getDistance(orgin));
    		
    		
    	}
    }

    2.构造方法重载

    public class User {
    	int id;
    	String name;
    	String pwd; //密码
    	public User() {
    		
    	}
    	public User(int id,String name) {
    		this.id = id;
    		this.name = name;
    	}
    	public User(int id,String name,String pwd) {
    		this.id = id;
    		this.name = name;
    		this.pwd = pwd;
    	}
    	public static void main(String[] args) {
    		User u1 = new User();
    		User u2 = new User(101,"fei");
    		User u3 = new User(102,"fei","123456");
    	}
    	
    }

    重载就是方法名相同,形参不同,通过方法名+形参列表一起调用的方式进行。

    通过this表示属性和形参。

    更多相关内容
  • Unit4Java语言程序设计编程面向对象4.5 构造方法4.5.1 类的创建过程4.5.2 默认构造方法主讲 张 红4.5.3 构造方法重载4.5.4 this浙江经贸职业技术学院4.5.3 构造方法重载构造方法重载 在同一类中定义了多个同名而不同...
  • Python:重载构造方法

    2021-03-06 14:18:28
    对于使用过C++的人来说,构造函数与析构函数不会陌生。构造函数在对象创建时被调用,析构函数在对象被销毁时被调用。而Python中也有类似的特殊函数:__new__,__init__,__del__。其中__new__与__init__共同构成了...

    对于使用过C++的人来说,构造函数与析构函数不会陌生。

    构造函数在对象创建时被调用,析构函数在对象被销毁时被调用。而Python中也有类似的特殊函数:__new__,__init__,__del__。

    其中__new__与__init__共同构成了C++中的构造函数,__del__为析构函数。

    __new__在对象被创建时被调用,而__init__在对象被初始化时被调用。

    __new__ 的第一个参数是对象本身,其他的参数是用来直接传递给 __init__ 方法。 __new__ 方法相当不常用,但是当继承一个不可变的类型(比如一个tuple或者string)时,它将派上用场。但这已经超出了基础的范围,所以暂且不提。

    __init__十分常见,用以初始化对象。当父类拥有该函数,而继承的子类想要调用父类的__init__,应该使用super().__init__()而不是父类名.__init__(),以此来避免多继承问题。

    __del__在对象被销毁时被调用,但它并不是实现del语法的内置函数。它定义的是对象被销毁时的行为,但由于Python的GC问题,所以对象销毁的时刻无法由编写者完全自控,所以用处也较少。

    附:多继承问题

    多继承问题是一个古老的 Feature(当一个Bug没法修的时候就叫 Feature)。让我们运行如下代码

    class A():

    def __init__(self):

    print("进入A…")

    print("离开A…")

    class B(A):

    def __init__(self):

    print("进入B…")

    A.__init__(self)

    print("离开B…")

    class C(A):

    def __init__(self):

    print("进入C…")

    A.__init__(self

    print("离开C…")

    class D(B, C):

    def __init__(self):

    print("进入D…")

    B.__init__(self)

    C.__init__(self)

    print("离开D…")

    d = D()

    结果如下

    进入D…

    进入B…

    进入A…

    离开A…

    离开B…

    进入C…

    进入A…

    离开A…

    离开C…

    离开D…

    可以看到,A的__init__被调用了两次。而这并不是我们期待的。为此在有些语言里,禁止了多继承。

    Python的解决方法是:使用super()调用父类方法。

    class A():

    def __init__(self):

    print("进入A…")

    print("离开A…")

    class B(A):

    def __init__(self):

    print("进入B…")

    super().__init__()

    print("离开B…")

    class C(A):

    def __init__(self):

    print("进入C…")

    super().__init__()

    print("离开C…")

    class D(B, C):

    def __init__(self):

    print("进入D…")

    super().__init__()

    print("离开D…")

    d = D()

    运行结果如下

    进入D…

    进入B…

    进入C…

    进入A…

    离开A…

    离开C…

    离开B…

    离开D…

    这样A的__init__只被调用了一次

    展开全文
  • 主要介绍了详解Java使用super和this来重载构造方法的相关资料,这里提供实例来帮助大家理解这部分内容,需要的朋友可以参考下
  • 构造方法 方法的定义 在java中称为‘方法’,在C中称为‘函数’ java方法是语句的集合 用于执行一个功能 包含于类和对象中 可以被引用 方法的格式 访问权限 [修饰符] 返回值类型 方法名(参数列表){ ... 方法体 .....
  • 主要介绍了Java基础教程之构造器与方法重载,构造器可以初始化数据成员,还可以规定特定的操作,本文还对方法重载做了介绍,需要的朋友可以参考下
  • class Print{ public Print(){ System.out.println(“Hello Constructor”); } public Print(String s){ ...this(参数)表示调用本类的...1.this调用本类的构造方法必须写在构造方法首行; 2.this调用构造方法...

    class Print{
    public Print(){
    System.out.println(“Hello Constructor”);
    }
    public Print(String s){
    this();
    System.out.println(“s”);
    }

    }

    在这里插入图片描述
    需要注意:
    this(参数)表示调用本类的构造方法。
    1.this调用本类的构造方法必须写在构造方法首行;
    2.this调用构造方法不能成环。

    展开全文
  • 2.再为这个类添加一个重载构造方法,令其接收一个字符串参数 3.并在这个有参构造方法中把“Hello Constructor”和接收的参数一起打印出来 难点:匿名对象,this调用本类方法class one{ public one(){//无参构造...

    步骤:
    1.创建一个带默认构造方法(即无参构造)的类,在构造方法中打印一条消息”Hello Constructor”
    2.再为这个类添加一个重载构造方法,令其接收一个字符串参数
    3.并在这个有参构造方法中把“Hello Constructor”接收的参数一起打印出来
    难点:匿名对象,this调用本类方法

    class one{
        public one(){//无参构造(1)
            System.out.println("Hello Constructor");
        }
        public one(String s){//方法重载,并接受一个字符串参数(2)
            this();//this调用本类方法(3.1)
            System.out.println(s);(3.2)
        }
    }
    public class Test{
        public static void main(String[] args) {
            new one(args[0]);//匿名对象
        }
    }

    这里写图片描述
    补充
    由于匿名对象不会有任何栈空间所指向,所以使用一次后就成为垃圾空间。
    调用普通方法:this.方法名称(参数)
    调用构造方法:this(参数)

    展开全文
  • 构造方法以及构造方法重载

    千次阅读 2019-07-19 17:19:34
    有参的构造方法需由自己手动创建,当自己手动创建有参构造方法时,如果需要无参构造方法,也需自己手动创建。构造器的名称应该与类名一致,JAVA通过new关键字来调用构造器,从而返回该类的实例,...
  • 再为这个类添加一个重载构造方法,令其接收一个字符串参数,并在这个有参构造方法中把"Hello Constructor"和接收的参数一起打印出来。 //Person类 class Person{ //无参构造 public Person(){ Sys...
  • 构造方法 1.概念:类中的特殊方法,用来创建对象。 new Dog(); 调用了Dog类中的无参构造 分为无参构造和有参构造 无参构造:每个类中都有一个默认的无参的构造方法 有参构造:主要是方便为属性赋值,参数名要见...
  • 构造方法重载

    千次阅读 2018-12-21 21:54:13
    构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一...
  • java构造方法重载

    千次阅读 2019-02-20 22:05:19
    构造方法负责对象成员的...4.一个类可能没有构造方法,但一定有系统隐蔽无参的构造方法,也有多个构造方法(他们之间构成重载) 5.定义了有参数的构造方法,就会屏蔽掉系统无参构造方法 6.构造方法不能被继承  ...
  • 再为这个类添加一个重载构造方法,令其接收一个字符串参数,并在这个有参构造方法中把"Hello Constructor"和接收的参数一起打印出来。 效果如下:   附上代码: class Person{  public Person(){  ...
  • Java的方法重载构造方法及其重载

    千次阅读 2020-12-07 23:15:31
    在讲Java的方法重载前,先说明一下什么是方法的签名! 方法的签名:方法名和参数列表 即 方法的签名=方法名+参数列表 一个类中,不可以有两个方法的签名 完全相同 ,即一个类中不可以有两个方法方法名和参数列表...
  • 如何在构造方法中调用另一个重载构造方法:案例: 编写汽车类 汽车类属性: int id; String brand; String color; int weight; 汽车类中的构造方法: Car(); Car(id,brand); Car(id,brand,color); Car(id,...
  • Java构造方法 重载与重写

    万次阅读 多人点赞 2019-04-18 18:10:44
    内容部分引自《Java语言程序设计》...构造方法的作用是初始化对象,也可以重载(即-可以有多个同名的构造方法,但是需要有不同的签名) 一个类可以不定义构造方法,类中会隐含创建一个方法体为空的构造方法(类中...
  • 构造方法的注意事项 以下代码17——19行是自定义的构造方法, 所以不会再默认赠送默认的构造方法,即第14、15行的代码 ,所以当使用无参数的构造方法的时候就会报错 ...
  • 构造方法重载的详细解释: 一.构造方法定义格式: class 类名称{ 访问限 类名称(类型1 参数1,... 类型N 参数N){ 程序语句; //构造方法没有返回值 } } 二.注意: ①构造方法的名称必须与类名称一致 ②构造...
  • ------------------构造---------------------什么是构造方法:1、是个方法2、在创建对象时,由new这个关键字自动调用,将属性初始化3、类中没写构造,java提供一个默认的无参构造,如果你写了,就以你写为准,默认的...
  • java代码-构造方法重载
  • TypeScript中的构造方法重载

    千次阅读 2020-06-11 17:47:57
    Has anybody done constructor overloading in TypeScript. 是否有人在TypeScript中完成了构造函数重载。 On page 64 of th
  • 普通方法(公开、私有、静态) 构造方法 重载方法 构造对象参数 修改对象属性
  • 面向对象 构造方法 方法重载 java
  • 构造方法三个条件:①、方法名和类名相同②、在方法名前面没有返回值类型的声明③、在方法中不能使用return语句方法重载三个条件:①、方法名相同,参数类型不同②、参数个数不同,参数顺序不同③、重载跟方法的...
  • 编写一个Java程序片断,以定义一个表示学生的类Student。...另,编写相关的构造方法及实现构造方法重载。 (2)定义一个测试类Test,其main方法中编写相应的代码来测试构造方法的调用情况。 ...
  • Java中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。 Java不支持像C++中那样的复制构造方法,这个不同点是因为如果你不自己写构造方法的情况下,Java...
  • 在回答这两个问题之前,首先先回顾:什么是构造方法构造方法的特点是什么? 概述:构造方法存在于类中,给对象数据(属性)初始化; 特点:方法名与类名一样;无返回值无void; 默认构造方法:我们不创建一个...
  • 同一个类中的2个或2个以上的方法可以一同一个名字,只是它们的参数声明不同即可,在这种情况下,该方法就被称为重载,这个过程称为方法重载构造方法可以重载
  • 回顾对象由属性数据和方法函数组成类是具有相同属性...明this这这个overloaded重载超载overloaded method方法重载本章目标方法重载重载构造方法对象在内存中的存放形式this关键字Java中的方法在Java中函数直接定义即可

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 302,966
精华内容 121,186
关键字:

重载构造方法