zoukankan      html  css  js  c++  java
  • 关于Java中构造方法的问题以及回答

    构造方法

    概念

      又叫 构造器,区分于传统的方法,是一个在创建对象时被系统自动调用的特殊方法

    作用:

      一:为对象进行初始化(成员变量)的工作

      二:为对象在堆内存中开辟独立的内存空间

    定义格式:

      访问修饰符    方法名(){

        }

    用法:

      只能通过new关键字进行调用

    person{
      public person(){
        }  
    }
    //代码测试
    public static void main(String [] args){
         person per = new person();      
    }

    注意事项:

    一:方法名必须和类名保持一致

    二:当一个类中没有定义构造方法时,系统会自动加载一个无参的构造方法

    //一:不写构造方法,系统默认加载构造方法
    Construction con = new Construction();
    con.eat();
    
    运行结果如下:
    我是:null,今年:0岁,喜欢吃拉面

    三:如果用户重新定义了一个构造方法,那么Java提供的无参的构造方法会默认覆盖

    /**
     * 构造方法: 重写构造方法,初始化成员变量
     */
    public Construction(){
        username = "鸣人";
        garder = 19;
    }
    //一:重写构造方法,初始化成员变量
    Construction con = new Construction();
    con.eat();
    运行结果:
    我是:鸣人,今年:19岁,喜欢吃拉面

    四:返回值问题

    构造方法又叫构造器,不能把它等同于普通方法去对比,什么意思呢?

    就是,普通方法有返回值类型,有return语句,有访问修饰符,但是构造方法从本质上就不是普通方法

    构造方法:没有返回值类型,void也不能加

         没有返回值,但是有运行结果,运行结果就是创建一个对象,所以在构造方法内不能调用return。

           访问修饰符,只能是public,不能是其他的访问修饰符。

    五:构造方法之间可以使用 this() 相互调用 但是 this() 必须是构造方法内容的第一行  如果有参数 传入相应的参数

    /**
         * 构造方法:无参
         */
        public Construction(){
            this("佐助",19);
    //        username = "鸣人";
    //        garder = 18;
        }
    
    Construction con = new Construction();
    con.eat();
    运行结果:
    我是:佐助,今年:19岁,喜欢吃拉面

    六:当参数列表的参数名和成员变量同名时  要使用this.区分成员变量和 局部变量

    /**
     * 构造方法:有参
     * @param username:用户姓名
     * @param garder:用户年龄
     */
    public  Construction(String username,int garder){
        this.username = username;
        this.garder = garder;
    }
    //一:重写构造方法,初始化成员变量
    Construction con = new Construction("鸣人",19);
    con.eat();
    运行结果:
    我是:鸣人,今年:19岁,喜欢吃拉面
  • 相关阅读:
    Es spring data jpa 修改连接配置
    object转map类型
    记一次项目中yaml文档引发的惨案 (#yaml文档格式#yaml中'-'的作用)
    02-方法重载
    01-数据类型分类
    Centos 7 Sublime 安装 package control
    修改AdminLTE左侧菜单展开延迟
    【Flask】Flask Restful api
    【Flask】Flask常用信号
    【Flask】Flask上下文
  • 原文地址:https://www.cnblogs.com/ncl-960301-success/p/10601593.html
Copyright © 2011-2022 走看看