精华内容
下载资源
问答
  • Java构造方法

    千次阅读 多人点赞 2019-09-09 19:26:39
    Java构造方法 当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,...

    Java构造方法

    当新对象被创建的时候,构造方法会被调用。每一个类都有构造方法。当类中没有定义构造函数时,系统会指定给该类加上一个空参数的构造函数。这个是类中默认的构造函数。当类中如果自定义了构造函数,这时默认的构造函数就没有了。

    Java中构造方法重载和方法重载很相似。可以为一个类创建多个构造方法。每一个构造方法必须有它自己唯一的参数列表。

    Java不支持像C++中那样的复制构造方法,这个不同点是因为如果你不自己写构造方法的情况下,Java不会创建默认的复制构造方法。

    构造方法的方法名必须与类名相同

    构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。

    构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。

    一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。

    构造方法可以重载,以参数的个数,类型,顺序。

    构造方法是一个特殊的方法。
    方法结构:
    访问修饰符 类名(参数列表){方法体}

    构造方法重载。
    在没写构造方法是 有一个默认的
    类名(){}构造方法

    this()是调用本类不带参构造方法;
    super()是调用父类不带参的构造方法;

    构造方法和方法的类似之处在于它们都包含可执行代码,区别在于,只有当Java类实例化时才执行构造方法。构造方法通常包含类属性初始化代码,从严格意义上说,构造方法并不是方法,因为它不会返回任何值。

    	public class A{
    		int i=0;
    		public A(){
    			i=2;
    		}
    		public A(int i){
    			this.i=i;
    		}
    	}
    

    默认构造方法
    如果没有任何的构造方法,编译时系统会自动添加一个默认无参构造方法
    1.隐含的默认构造方法

    public A(){}
    

    2.显示的默认构造方法

    	public A(){
    	System.out.print("显示的默认构造方法")
    	}
    

    重载构造方法
    比如原本的类里的构造方法是一个参数的,现在新建的对象是有三个参数,此时就要重载构造方法
    当一个类中有多个构造方法,有可能会出现重复性操作,这时可以用this语句调用其他的构造方法。

    public class A{
    	private int age;
    	private String name;
    	public A(int age,String name){
    		this.age=age;
    		this.name=name;
    	}
    	public A(int age){
    		this(age,"周杰伦");//调用 A(int age,String name)构造方法
    	}
    	public A(){
    		this(1);//调用 A(int age)构造方法
    	}
    	public void setName(String name) {this.name=name;}
    	public String getName() {return name;}
    	public void setAge(int age) {this.age=age;}
    	public int getAge() {return age;}
    }
    
    A a=new A(20,"邓紫棋");
    A b=new A(20);
    A c=new A();
    String name = a.getName();
    String name1 = b.getName();
    int age = c.getAge();
    System.out.println(name);
    System.out.println(name1);
    System.out.println(age);
    
    展开全文
  • [Java基础]-- 有参构造方法和无参构造方法

    万次阅读 多人点赞 2016-03-03 15:06:44
    java构造方法:有参构造方法和无参构造方法   一、无参构造方法 1、定义: 如果编写一个javaBean时没有添加无参构造方法,那么编译器会自动添加无参构造方法; 但是如果编写时添加了有参构造方法而未添加无参...

    java构造方法:有参构造方法和无参构造方法

     

    一、无参构造方法

    1、定义:

    如果编写一个javaBean时没有添加无参构造方法,那么编译器会自动添加无参构造方法;

    但是如果编写时添加了有参构造方法而未添加无参构造方法,那么编译器只认有参构造方法而不会默认添加无参构造方法!

    所以,如果需要使用无参构造方法,一定要在类里面添加

     

    2、举例:

    (1)有4个javaBean --------> NoParamInfo.java、 NoParamInfo2.java NoParamInfo3.java NoParamInfo4.java

    public void NoParamInfo{

    private String name;

    private String adrress;

    }

     

    public void NoParamInfo2{

    private String name;

    private String adrress;

    public NoParamInfo(){} //无参构造方法

    }

     

    public void NoParamInfo3{

    private String name;

    private String adrress;

    //有参构造方法

    public NoParamInfo(String name,String address){

    this.name=name;

    this.address=address;

    }

    }

     

    public void NoParamInfo4{

     

    private String name;

    private String adrress;

    public NoParamInfo(){} //无参构造方法

    //有参构造方法

    public NoParamInfo(String name,String address){

    this.name=name;

    this.address=address;

    }

    }

    (2)测试

    @Test

    public void testNoParamInfo(){

    //这样写,编译器不会报错

    NoParamInfo  np=new NoParamInfo();

    //这样写,编译器也不会报错

    NoParamInfo2  np=new NoParamInfo2();

    //这样写,编译器会报错,原因是无参构造方法被有参构造方法覆盖,编译器不能提供无参构造方法

    NoParamInfo3  np=new NoParamInfo3();

    //这样写,编译器不会报错

    NoParamInfo4  np=new NoParamInfo4();

    //这样写,编译器不会报错

    NoParamInfo4  np=new NoParamInfo4(“tina”,'地球村');

    }

    二、有参构造方法

    顾名思义就是在无参构造方法里面添加了一定的形式参数

     

     

     

    展开全文
  • Java构造方法和子类构造方法

    千次阅读 多人点赞 2019-07-21 23:50:09
    Java构造方法 构造方法是用于初始化一个新建的对象。 普通构造方法 方法名与类名相同 无返回类型 子类能继承父类的构造方法 能被static、final、abstract修饰(有final和abstract修饰的是能被子类继承的,...

    Java构造方法

    构造方法是用于初始化一个新建的对象。

    普通构造方法

    • 方法名与类名相同
    • 无返回类型
    • 子类不能继承父类的构造方法
    • 不能被static、final、abstract修饰(有final和static修饰的是不能被子类继承的,abstract修饰的是抽象类,抽象类是不能实例化的,也就是不能new)
    • 可以被private修饰,可以在本类里面实例化,但是外部不能实例化对象(注意!!!)
      参考文档:https://zhidao.baidu.com/question/502830408.html
    	public class A{
    		int i=0;
    		public A(){
    			i=2;
    		}
    		public A(int i){
    			this.i=i;
    		}
    	}
    

    默认构造方法

    如果没有任何的构造方法,编译时系统会自动添加一个默认无参构造方法

    1. 隐含的默认构造方法
    	public A(){}
    
    1. 显示的默认构造方法
    	public A(){
    	System.out.print("显示的默认构造方法")
    	}
    

    重载构造方法

    比如原本的类里的构造方法是一个参数的,现在新建的对象是有三个参数,此时就要重载构造方法

    当一个类中有多个构造方法,有可能会出现重复性操作,这时可以用this语句调用其他的构造方法。

    public class A{
    	private int age;
    	private String name;
    	public A(int age,String name){
    		this.age=age;
    		this.name=name;
    	}
    	public A(int age){
    		this(age,"无名氏");//调用 A(int age,String name)构造方法
    	}
    	public A(){
    		this(1);//调用 A(int age)构造方法
    	}
    	public void setName(String name) {this.name=name;}
    	public String getName() {return name;}
    	public void setAge(int age) {this.age=age;}
    	public int getAge() {return age;}
    }
    
    A a=new A(20,"周一");
    A b=new A(20);
    A c=new A();
    String name = a.getName();
    String name1 = b.getName();
    int age = c.getAge();
    System.out.println(name);
    System.out.println(name1);
    System.out.println(age);
    

    java子类构造方法调用父类构造方法

    首先父类构造方法是绝对不能被子类继承的。

    子类构造方法调用父类的构造方法重点是:子类构造方法无论如何都要调用父类的构造方法
    子类构造方法要么调用父类无参构造方法(包括当父类没有构造方法时。系统默认给的无参构造方法),要么调用父类有参构造方法。当子类构造方法调用父类无参构造方法,一般都是默认不写的,要写的话就是super(),且要放在构造方法的第一句。当子类构造方法要调用父类有参数的构造方法,那么子类的构造方法中必须要用super(参数)调用父类构造方法,且要放在构造方法的第一句。

    当子类的构造方法是无参构造方法时,必须调用父类无参构造方法。因为系统会自动找父类有没有无参构造方法,如果没有的话系统会报错:说父类没有定义无参构造方法。

    当子类构造方法是有参构造方法时,这时就会有两种情况。
    第一种:子类构造方法没有写super,也就是说你默认调用父类无参构造方法,这样的话就和子类是无参构造方法一样。
    第二种:子类构造方法有super(参数)时,就是调用父类有参构造方法,系统会找父类有没有参数一致(参数数量,且类型顺序要相同)的有参构造方法,如果没有的话,同样也会报错。
    但是这里会遇到和重载构造方法this一样问题,一个参数的构造方法可以调用多个参数构造方法,没有的参数给一个自己定义值也是可以的。

    展开全文
  • JAVA构造函数(方法)

    千次阅读 多人点赞 2018-12-27 14:47:11
    java构造函数,也叫构造方法,是java中一种特殊的函数。函数名与类名相同,无返回值。 作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。 构造函数是对象一建立就运行,给...

    一、什么是构造函数

    java构造函数,也叫构造方法,是java中一种特殊的函数。函数名与类名相同,无返回值。

    作用:一般用来初始化成员属性和成员方法的,即new对象产生后,就调用了对象了属性和方法。

    构造函数是对象一建立就运行,给对象初始化,就包括属性,执行方法中的语句。

    而一般函数是对象调用才执行,用".方法名“的方式,给对象添加功能。

     

     一个对象建立,构造函数只运行一次。

     而一般函数可以被该对象调用多次。

      

    二、构造函数的特点

    1、构造函数函数名与类名相同

    2、构造函数没有返回类型,如:String、void等

    3、构造函数在类中没有体现出来,则默认有一个不带形式参数的默认构造函数

     

    注:一般函数不能调用构造函数,只有构造函数才能调用构造函数。

     

     三、示例

    1、无参构造函数中只定义了一个方法。new对象时,就调用与之对应的构造函数,执行这个方法。不必写“.方法名”。 

    package com.example.constructor;
    
    public class ConstructorDemo {
    	public static void main(String[] args) {
    		Person person = new Person(); // 输出默认构造函数。new对象一建立,就会调用对应的构造函数Person(),并执行其中的打印输出语句。
    	}
    }
    
    class Person {
    	Person() { // 定义构造函数,输出"默认构造函数"
    		System.out.println("默认构造函数");
    	}
    }

    输出:

    默认构造函数

     

     2、有参构造函数,在new对象时,将实参值传给private变量,相当于完成setter功能。

    package com.example.constructor;
    
    public class ConstructorDemo {
    	public static void main(String[] args) {
    		// 实例化Person对象,传参name="zhangsan"、age=25
    		// 因Person类重载构造函数后,原来默认构造函数被覆盖,此时此处若不传形式参数,则会在编译时报错
    		Person person = new Person("zhangsan", 25);
    	}
    }
    
    class Person {
    	private String name;
    	private int age;
    
    	// 此处定义带有形参构造函数后,原来默认的无参构造函数则被覆盖掉
    	Person(String tname, int tage) {
    		name = tname;
    		age = tage;
    		System.out.println("名称:" + name + ",年龄:" + age);
    	}
    }

    输出:

    名称:zhangsan,年龄:25

     

    三、默认构造函数

    当一个类中没有定义构造函数时,系统会给该类中加一个默认的空参数的构造函数,方便该类初始化。只是该空构造函数是隐藏不见的。

    如下,Person(){}这个默认构造函数是隐藏不显示的。

    class Person {
    	Person() {
    		//默认构造函数,默认不显示,若对构造函数重载后需要调用默认构造函数,则需显示定义默认构造函数
    	}
    }


    当在该类中自定义了构造函数,默认构造函数就没有了。

    如果仍要构造函数,则需要自己在类中显示定义默认构造函数。

     

    四、构造函数的重载

    构造函数也是函数的一种,同样具备函数的重载(Overloding)特性。

    package com.example.constructor;
    
    public class ConstructorDemo {
    	public static void main(String[] args) {
    		Person person1 = new Person();
    		Person person2 = new Person("lisi");
    		Person person3 = new Person(30);
    		Person person4 = new Person("lisi", 28);
    	}
    }
    
    class Person {
    	private String name;
    	private int age;
    
    	Person() {
    		System.out.println("名称:" + name + ",年龄:" + age);
    	}
    
    	Person(String tname) {
    		name = tname;
    		System.out.println("名称:" + name + ",  年龄:" + age);
    	}
    
    	Person(int tage) {
    		age = tage;
    		System.out.println("名称:" + name + ",年龄:" + age);
    	}
    
    	Person(String tname, int tage) {
    		name = tname;
    		age = tage;
    		System.out.println("名称:" + name + ",  年龄:" + age);
    	}
    }

    输出:

    名称:null,年龄:0
    名称:lisi,  年龄:0
    名称:null,年龄:30
    名称:lisi,  年龄:28

    展开全文
  • java构造方法与重载

    千次阅读 2019-02-20 22:05:19
    构造方法负责对象成员的初始值化工作 1.方法名与类名相同 2.没有返回类型(void也不行) 3.构造方法是在创建实例时会被自动调用 4.一个类可能没有构造方法,但一定有系统隐蔽无参的构造...6.构造方法不能被继承  ...
  • Java 构造方法详解

    千次阅读 多人点赞 2021-02-20 16:07:23
    构造方法 我们对封装已经有了基本的了解,接下来我们来看一个新的问题,依然以Person为例,由于Person中的属性都被private了,外界无法直接访问属性,必须对外提供相应的set和get方法。当创建人对象的时候,人对象...
  • Java构造方法(超详细!)

    千次阅读 多人点赞 2021-04-10 17:58:48
    构造方法是一个比较特殊的方法,通过构造方法可以完成对象的创建,以及实例变量的初始化。 换句话说:构造方法是用来创建对象,并且同时给对象的属性赋值。 注意:实例变量没有手动赋值的时候,系统会赋默认值。 2....
  • Java构造方法 重载与重写

    万次阅读 多人点赞 2019-04-18 18:10:44
    内容部分引自《Java语言程序设计》一书,摘抄以便记忆和复习 1.Java中的构造方法 构造方法的特性: 必须具备和所在类相同的名字 ...一个类可以不定义构造方法,类中会隐含创建一个方法体为空的构造方法(类中...
  • Java构造方法的作用

    万次阅读 多人点赞 2019-04-19 22:58:59
    初学Java构造方法时,根本能理解构造方法有什么用,自己程序的时候也从来没有用过。于是刚开始我的程序是这样的: package test3; public class Student { private String name; private long ID; ...
  • JAVA构造方法可以用什么来修饰

    千次阅读 2019-08-29 19:38:22
    不同于普通方法,构造方法(器)能是abstract, static, final, native, strictfp, 或者synchronized的。原因如下: 构造器不是通过继承得到的,所以没有必要把它声明为final的。 同理,一个抽象的构造器将永远...
  • Java有参构造方法和无参构造方法

    万次阅读 多人点赞 2018-10-29 11:16:29
    Java有参构造方法和无参构造方法 1**、定义:** 编写一个类时没有添加无参构造方法,那么编译器会自动添加无参构造方法;(如果自己添加构造函数,无论有参数或是没参数,默认构造函数都将无效) 编写时添加了有参...
  • java构造方法

    千次阅读 2019-05-01 14:56:49
    1 构造方法可以被重载,一个构造方法可以通过this关键字调用另一个构造方法,this语句必须位于构造方法的第一行; 重载:方法的重载(overload):重载构成的条件:方法的名称相同,但参数类型或参数个数不同,才能...
  • Java有参构造方法和无参构造方法详解

    万次阅读 多人点赞 2020-12-09 12:05:16
    一:有参数构造方法 在之前我们要为一个...上面定义了四个有参数构造方法,发现了构造方法可以重载, 书写的习惯是重载的构造方法按照参数的个数进行升序排序。但是如何去调用有参数的构造方法呢? DEMO:调用...
  • 一文搞懂Java构造方法 和 访问权限

    千次阅读 多人点赞 2020-07-20 16:41:54
    Java是一门当今最火的编程语言之一,拥有很多现成可用的库,在我们编程生涯中,有着无比重要的地位。本文主要讲解Java中的构造方法和四种类的访问权限。
  • 构造方法中可不可以有return语句呢? 答案是:可以的。 通过上图可以看到,在构造方法的末尾加 return; 是不会报错的。 但是IDE工具会给出警告: 翻译过来就是: “return”作为构造函数中的最后一个语句是不必要的...
  • Java中的构造方法

    万次阅读 多人点赞 2018-08-10 10:54:20
    构造方法分为无参构造方法、有参构造方法。  概念:构方法是一种特殊的“成员方法”  1,构造方法作用:(1)构造出来一个类的实例 (2)对构造出来个一个类的实例(对象)初始化  2,构造方法的名字必须与定义他的...
  •   Java中类与对象的定义与使用 ...  通过以上分析可以得知,所谓的构造方法就是使用关键字new实例化新对象时来进行调用的操作方法。对于构造方法的定义,也要遵循以下原则: 方法名必须与...
  • Java私有构造方法

    千次阅读 2019-09-30 21:51:44
    提到私有构造方法之前,先来简单说明一下两个名词表示,一个是私有,一个是构造方法。私有用访问修饰符private表示。 Java 的访问修饰符是什么 访问权限修饰符是表明类成员的访问权限类型的关键字。使用这些...
  • 用private和public修饰构造器的区别示例代码:分析:用public修饰用private修饰总结: 示例代码: 在这里用private修饰无参数的构造器,用public修饰有参数的构造器。 public class test4 { public static void ...
  • 下面是关于父类构造方法调用的实验:当父类子类都没有定义构造方法时,系统为父类、子类提供一个无参构造方法,并在子类中隐式调用父类无参构造方法:class Father {} class Son extends Father {}我们可以自己...
  • 默认构造方法:我们创建一个构造方法时,系统默认提供一个无参构造;当我们创建一个构造方法时,系统不再提供无参构造,所以在实际项目中,全部手动给出无参构造 其次什么是重载?什么是重写?  重载:存在于...
  • Java构造方法的详细介绍

    万次阅读 多人点赞 2019-07-12 11:22:50
    构造方法是一个特殊的方法 它会在实例化对象时自动调用 构造方法的定义 必须同时满足下面的三个条件 方法名与类名相同 方法名前面没有返回值类型的声明 在方法中能使用return语句返回值 class Person{ public ...
  • Java构造方法和析构方法

    千次阅读 2018-04-26 17:15:47
    Java构造方法类有一个特殊的成员方法叫作构造方法,它的作用是创建对象并初始化成员变量。在创建对象时,会自动调用类的构造方法。构造方法定义规则:Java中的构造方法必须与该类具有相同的名字,并且没有方法的返回...
  • Java 构造方法的修饰符

    千次阅读 2017-10-07 10:37:08
    不同于普通方法,构造方法(器)能是abstract, static, final, native, strictfp, 或者synchronized的。
  • Java构造方法的相互调用

    千次阅读 2018-11-29 17:01:10
    Java中,当给一个类创建了多个构造方法时,有时想在一个构造方法中调用另一个构造方法以减少代码量。这时可以使用this关键字来实现。 通常,当使用this关键字时,它意味着“这个对象”或者“当前对象”,并且它...
  • 详谈java构造方法和权限

    千次阅读 2017-10-03 19:25:42
    1,java构造方法1)什么是构造方法? 名字和类名完全一样,没有返回值(可理解为返回一个对象), 用new来调,调用的结果是在堆内存中创建一个对象空间且返回它的堆内存首地址 public class MyDate_1 { private ...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...
  • 构造方法: public book(){ // 方法体 } 定义无返回值方法: public void book(){ //方法体 } 请问构造方法是否如void没有返回值的,还是有返回值但是能定义返回值类型而已。
  • Java构造方法的继承问题

    千次阅读 2018-09-26 14:13:05
    1.父类的构造方法是不会被子类继承的,但是子类的构造方法中会有一个隐式的super()来调用父类中的无参数构造方法。 验证代码如下: public class FatherClass { int a; int b; public FatherClass() { a ...
  • Java构造方法和成员方法

    万次阅读 2017-10-25 20:57:56
    构造方法和成员方法 1:构造方法 1:构造方法作用概述 ...如果你提供构造方法,系统会给出默认构造方法 如果你提供了构造方法,系统将不再提供 构造方法也是可以重载的 2:成员方法 1:概述

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,241,859
精华内容 496,743
关键字:

java构造方法可以不写

java 订阅