• java基础-构造器


    或许你也曾经疑问,java的类是怎样new出来的

    那么就与本文的构造器有关,构造器也就是构造方法

    new的原理就是通过类的构造方法,而我们写类的时候如果没有写构造器,java会自动生成构造器,并且与类名是一致的

    比如很简单的一个demo

    public class demo {
        private int age;
        public void printAge(){
            System.out.println(age);
        }

    其实它的构造函数已经有了,就是下面这种形式

    public class demo {
        public demo(){};  //自动生成的
        private int age;
        public void printAge(){
            System.out.println(age);
        }

    public的demo类构造就是public的demo默认构造方法

    而class T0这只无修饰符的呢 ?     它就是默认T0(){};

    所以默认的构造方法与类的修饰符一致,与类名一致

    当然最常见的就是手动写构造那定义功能(默认构造就会无效)。如下

    (也可通过编辑器的IDEA等工具自动生成)

    public class demo {
        public demo(int age) {
            this.age = age;
        }
    
        private int age;

    这样的好处就是在new的时候就能给属性赋不同的值,如

    package yichang;
    
    public class demo {
        public demo(int age) {
            this.age = age;
        }
    
        private int age;
        public void printAge(){
            System.out.println(age);
        }
    
    }
    package yichang;
    
    public class test1 {
        public static void main(String[] args) {
            demo p =new demo(5);
            p.printAge();
        }
    }

    可以不用set一样可以了

    或者 直接赋值,这样写的话new出来的对象就是直接有值的

    public class demo {
        public demo() {
            age=6;
        }
    
        private int age;

    既然现在已经了解了构造方法了

    既然是方法,那么肯定也能重载(重载就是同名的方法,不同的参数)

    package yichang;
    
    public class demo {
        public demo(){}
    
        public demo(int age) {
            this.age = age;
        }
    
        public demo(int age, String name) {
            this.age = age;
            this.name = name;
        }
    
        private int age;
        private String name;
    
    
    
    }

    这样的好处是什么呢,就是对象创建的时候可以考虑不同的参数。

    方便调用,提供多个对象模板。

  • 相关阅读:
    (29)zabbix执行远程命令
    (28)zabbix用户宏变量详解macro
    CentOS7安装Nginx及配置
    Open-Falcon 监控系统监控 MySQL/Redis/MongoDB 状态监控
    Centos7安装ansible
    Centos7部署open-falcon 0.2
    Centos7安装redis
    vim常用命令
    CentOS7安装配置Bacula yum方法
    CentOS7时间同步
  • 原文地址:https://www.cnblogs.com/yangj-Blog/p/12964006.html
Copyright © 2020-2023  润新知