精华内容
下载资源
问答
  • 1、定义:编写一个类时没有添加无参构造方法,那么编译器会自动添加无参构造方法;(如果自己添加构造函数,无论有参数或是没参数,默认构造函数都将无效)编写时添加了有参构造方法而未添加无参构造方法,那么编译器...

    1、定义:

    编写一个类时没有添加无参构造方法,那么编译器会自动添加无参构造方法;(如果自己添加构造函数,无论有参数或是没参数,默认构造函数都将无效)

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

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

    2、举例:

    定义四个类(说明四种情况):

    类Person1 自己不手动添加任何无参或有参数构造方法 (实例化对象时:编译通过)

    类Person2 自己添加无参的构造方法 (实例化对象时:编译通过)

    类Person3 有参数的构造方法 (实例化对象时:不通过)

    类Person4 自己添加无参的构造方法,和有参数的构造方法 (实例化对象时:编译通过)

    //定义类Person1 自己不手动添加任何无参或有参数构造方法

    class Person1{

    private int age;

    private String name;

    private String sex;

    }

    //定义类Person2 自己添加无参的构造方法

    class Person2{

    private int age;

    private String name;

    private String sex;

    public Person2(){

    System.out.println("无参构造方法被调用");

    }

    }

    //定义类Person3 有参数的构造方法

    class Person3{

    private int age;

    private String name;

    private String sex;

    public Person3(String name, String sex, int age ){

    this.name = name;

    this.sex = sex;

    this.age = age;

    }

    }

    //定义类Person4 自己添加无参的构造方法,和有参数的构造方法

    class Person4{

    private int age;

    private String name;

    private String sex;

    //不带参数的构造函数,可以被重载

    public Person4(){

    System.out.println("无参构造方法被调用");

    }

    //带参数对的构造函数

    public Person4(String name, String sex, int age ){

    this.name = name;

    this.sex = sex;

    this.age = age;

    }

    }

    public class ObjectInit_2 {

    public static void main(String[] args) {

    Person1 person1 = new Person1();//编译通过;①实例化Person对象 ②自动调用构造方法Person( )

    Person2 person2 = new Person2();//编译通过;打印: 无参构造方法被调用

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

    Person3 person3 = new Person3();

    //Person4 person4 = new Person4();//编译通过;打印: 无参构造方法被调用

    Person4 person4 = new Person4("qzz", "man", 18);//编译通过;

    }

    }

    3.使用构造器时需要记住:

    1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)

    2.每个类可以有一个以上的构造器

    3.构造器可以有0个、1个或1个以上的参数

    4.构造器没有返回值

    5.构造器总是伴随着new操作一起调用

    父类有有参构造方法有两种情况,一只有有参构造,那么子类的构造方法中的第一句必须调用父类的有参构造方法,也就是“super(....);”,....为你传入的参数如:

    class Father {

    public Father(String lastname) {

    }

    }

    class Son extends Father {

    public Son() {

    super("aaaa");// 这句必须有

    // 可以写其他代码

    }

    }

    二有有参也有无参构造方法,这时子类不显示调用super,这会默认自动调用父类无参的构造方法,

    class Father {

    public Father() {

    }

    public Father(String lastname) {

    }

    }

    class Son extends Father {

    public Son() {

    super();// 这句可以有也可以没有,没有写的话会自动调用

    // 可以写其他代码

    }

    }

    展开全文
  • Java有参构造方法和无参构造方法

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

    Java有参构造方法和无参构造方法


    1**、定义:**
    • 编写一个类时没有添加无参构造方法,那么编译器会自动添加无参构造方法;(如果自己添加构造函数,无论有参数或是没参数,默认构造函数都将无效)
    • 编写时添加了有参构造方法而未添加无参构造方法,那么编译器只认有参构造方法而不会默认添加无参构造方法!
    • 如果需要使用无参构造方法,一定要在类里面添加
       
    2、举例:

    定义四个类(说明四种情况):

    类Person1 自己不手动添加任何无参或有参数构造方法            (实例化对象时:编译通过)

    类Person2 自己添加无参的构造方法                                        (实例化对象时:编译通过)

    类Person3 有参数的构造方法                                                   (实例化对象时:不通过)

    类Person4 自己添加无参的构造方法,和有参数的构造方法        (实例化对象时:编译通过)

    //定义类Person1   自己不手动添加任何无参或有参数构造方法
    
    class Person1{
        private int age;
        private String name;
        private String sex;
    
    }
    
    
    //定义类Person2   自己添加无参的构造方法
    
    class Person2{
        private int age;
        private String name;
        private String sex;
        
        public Person2(){
            System.out.println("无参构造方法被调用");
        }
    }
    
    
    //定义类Person3   有参数的构造方法
    
    class Person3{
        private int age;
        private String name;
        private String sex;
        
        public Person3(String name, String sex, int age ){
            this.name = name;
            this.sex = sex;
            this.age = age;
        }
    }
    
    
    //定义类Person4   自己添加无参的构造方法,和有参数的构造方法
    
    class Person4{
        private int age;
        private String name;
        private String sex;
        
        //不带参数的构造函数,可以被重载
        public Person4(){
            System.out.println("无参构造方法被调用");
        }
        
        //带参数对的构造函数
        public Person4(String name, String sex, int age ){
            this.name = name;
            this.sex = sex;
            this.age = age;
        }
    }
    
    
    public class ObjectInit_2 {
        public static void main(String[] args) {
            Person1 person1 = new Person1();//编译通过;①实例化Person对象    ②自动调用构造方法Person( )
    
            Person2 person2 = new Person2();//编译通过;打印: 无参构造方法被调用
    
    
            // 这样写,编译器会报错,原因是系统默认的无参构造方法被有参构造方法覆盖,编译器不能再提供无参构造方法
            Person3 person3 = new Person3();
    
            //Person4 person4 = new Person4();//编译通过;打印: 无参构造方法被调用
    
            Person4 person4 = new Person4("qzz", "man", 18);//编译通过;
        
    
        }
    }
    
    
                                                     2018.10.29/周一
                                                     by 922
    
    展开全文
  • 无参构造方法

    千次阅读 2017-09-22 09:08:06
    /*默认的无参构造方法  * 1,构造方法名称和类名一样  * 2,构造方法没有返回值,不能加上void  * 作用:完成成员变量的初始化*  *   * 带参数的构造方法,完成成员变量的赋值*/ public class Student ...

    /*默认的无参构造方法
     * 1,构造方法名称和类名一样
     * 2,构造方法没有返回值,不能加上void
     * 作用:完成成员变量的初始化*
     * 
     * 带参数的构造方法,完成成员变量的赋值*/

    public class Student {
    //直接在类中定义:成员变量
    //私有属性 在其他程序里面不能访问,
    private String name;//String 引用类型
    private char sex;
    private int age;
    private String moblie;
    //定义一个方法
    public Student(){
    System.out.println("默认的构造方法");
    }
    public Student(String _name,char _sex,int _age,String _moblie){
    name=_name;
    sex=_sex;
    age=_age;
    moblie=_moblie;
    }
    public void introduce(){
    System.out.println("我的手机号是"+moblie);
    System.out.println("我的姓名是"+name);
    System.out.println("性别"+sex);
    System.out.println("年龄"+age);
    }

    public void study(){

                    System.out.println("我在学习");

    }


    }


    test测试程序

    public class Test {


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    //构造方法,使用new关键字创建一个对象(实例化对象)
    Student stu1 = new Student("张三",'男',23,"135846795");
    //访问对象的方法:对象.方法名
    stu1.introduce();
    Student stu2= new Student("李四",'男',22,"159978563");
    stu2.introduce();
    Student stu3 =new Student();
    stu3.introduce();



    }


    }

    展开全文
  • 构造方法当中,主要有无参构造方法以及有参构造方法两种,下面的话就一起来看看详细代码示例吧。publicclassMyClass{...}}这个实例定义了两种构造方法,分别是无参构造方法和有参构造方法。在一个类当中,定义多...

    构造方法当中,主要有无参构造方法以及有参构造方法两种,下面的话就一起来看看详细代码示例吧。public class MyClass

    {

    private int m; // 定义私有变量

    MyClass()

    {

    // 定义无参的构造方法

    m = 0;

    }

    MyClass(int m)

    {

    // 定义有参的构造方法

    this.m = m;

    }

    }

    这个实例定义了两种构造方法,分别是无参构造方法和有参构造方法。

    在一个类当中,定义多个具有不同参数的同名方法,这个就是方法重载。

    这两个构造方法的名称都和类名相同,都是MyClass,在实例化这个类的时候能够调用不同的构造方法进行初始化。

    注意一下了,类的构造方法不是要求必须定义的,假如,在类当中没有定义任何的一个构造方法,那么java会自动为这个类生成一个默认的构造方法,默认的构造方法不包含任何参数,并且,方法体为空。

    假如,类当中显式的定义了一个或者是多个构造方法,那么java将不再提供默认构造方法。

    注意一下,无参数的构造方法也被叫做Nullary构造方法。

    只有编译程序自动加入的构造方法,才被叫做是默认构造函数。

    假如自行编写无参数、没有内容的构造函数,就不称为默认构造函数了(只是 Nullary 构造函数)。

    虽然只是名词定义,但是在进行认证考试的时候还是要区别一下这两个的不同之处。

    以上的内容就给你分享到这里了,更多java实例内容,请继续来奇Q工具网进行了解吧。

    推荐阅读:

    展开全文
  • [Java基础]-- 有参构造方法和无参构造方法

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

    2021-01-08 11:22:33
    无参构造方法的作用 1.无参构造方法一般是用来初始化:如为变量赋处置,初始化对象等。 2.无参构造方法可以去除,JAVA会给每个类一个默认的无参构造方法;当一个类中若存在有参构造方法,若想再使用无参的构造方法,...
  • java有参构造方法和无参构造方法

    千次阅读 2017-05-15 16:52:03
    一、无参构造方法 1、定义: 如果编写一个javaBean时没有添加无参构造方法,那么编译器会自动添加无参构造方法; 但是如果编写时添加了有参构造方法而未添加无参构造方法,那么编译器只认有参构造方法而...
  • 有参构造方法:alt+ins选择Constructor 无参构造方法:alt+ins选择Constructor然后选择下方的SelectNone
  • 在对对象成员变量初始化时,有输入时,通过有参构造方法进行赋值。当没有输入时,可以给个初始值,就通过无参写入默认的,无参调有参...// main方法中 new调用无参构造方法,再完成上面的无参调有参 new 类名(); ...
  • (7)无参构造方法 & 有参构造方法

    千次阅读 2019-07-16 16:07:46
    3.只定义了有参构造方法,默认一个无参构造方法会消失,如果无参构造方法要用到,记得写出来 4.构造方法名字与类名一样 package cn.sg.up; /** * 掌握封装的概念以及应用 把内容都private(封装)起来,只提供...
  • java构造方法:有参构造方法和无参构造方法   public class Student {  private String name;  private int age; public Student(){   } public Student(String name){  this.name=name; } public String ...
  • 一:有参数构造方法在之前我们要为一个对象赋值,先要创建好对象之后然后“对象名....DEMO:定义有参数构造方法上面定义了四个有参数构造方法,发现了构造方法可以重载,书写的习惯是重载的构造方法按...
  • 无参构造方法和有参构造方法的调用
  • public class TestTeacher{ public static void main(String[] args){ Teacher t1 = new Teacher(); t1.name = ""; t1.sex = ""; t1.salary = 1.1;... //无参构造方法 public Teacher(){ System.out
  • 如果父类拥有无参构造方法(无论隐式的还是显式的)且子类中的构造方法又没有明确指定调用父类的哪个构造方法,则子类中不必调用该子类其它构造方法的构造方法使用super()隐式调用父类的无参构造方法,...
  • 子类没有构造方法,但是其父类有个无参构造方法,那子类创建对象时用父类的构造方法还是编译器提供的无参构造方法? 答案: 是用父类的构造方法 下面测试: public class Father { public Father() { System....
  • Java无参构造方法的作用 class Person{ private String name ; // 表示人的姓名 private int age ; // 表示人的年龄 public void tell(){ // 定义说话的方法 System.out.println("姓名:" + this.getName() + ",...
  • 图1为父类的无参构造方法和有参构造方法,若是将无参构造方法删除,则子类的有参构造方法会报错。 如图2 ![图片说明](https://img-ask.csdn.net/upload/201907/30/1564493578_27738.jpg) 百度后听说父类...
  • 如果没有自定义的构造方法,会自动提供一个无参构造方法,但是一旦定义了构造方法,就不会提供无参构造方法, 这个时候如果想要使用的话需要自己创建。 ...
  • 刚学Java,定义有参构造方法和无参构造方法的有用是什么?一知半解,感觉在类中有属性的很多都定义,没有学明白
  • Java中子类在实例化的时候调用父类的无参构造方法容易混淆的大致分以下几种情况:1、子类和父类同时具有有参和无参的构造方法,子类有参构造方法中第一行写的有super.(xx),且子类实例化时用的是有参构造方法,那么...
  • new一次执行一次每个类都有构造方法,即使不写也有,编译时javac会自动检查类是否有构造方法,如果有,就执行,没有就自动添加一个如果父类有含参构造方法,则子类也必须添加含参构造方法如果父类没有含参构造方法,...
  • Java无参构造方法的作用 class Person{ private String name;// 表示人的姓名 private int age ;// 表示人的年龄 public void tell(){// 定义说话的方法 System.out.println("姓名:" + this.getName() + ",年龄:...
  • 一:有参数构造方法在之前我们要为一个对象赋值,先要创建好对象之后然后“对象名....DEMO:定义有参数构造方法上面定义了四个有参数构造方法,发现了构造方法可以重载,书写的习惯是重载的构造方法按照参数的个数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,914
精华内容 4,765
关键字:

无参构造方法