• java中的构造方法与其作用


    • 什么是构造方法呢?

    1. 方法名和类名相同
    2. 没有返回值类型,连void都不能写
    3. 没有具体的返回值

    构造方法分为无参构造方法与有参构造方法。

    • 先来看一下最简单的无参构造方法:

    Student.java

    1 package com.pr;
    2 
    3 public class Student {
    4     public Student(){
    5         System.out.println("这是一个构造方法");
    6     }
    7 }

    StudentDemo.java

    package com.pr;
    
    public class StudentDemo {
        public static void main(String[] args){
            Student s = new Student();
        }
    }

    输出结果:这是一个构造方法

    把Student.java的4-6行删除了。可以发现StudentDemo.java没有报错。为什么呢?

    因为,如果我们没有给出构造方法时,系统会提供一个默认的无参构造方法供我们使用。

    • 有参构造方法

    Student.java

     1 package com.pr;
     2 
     3 public class Student {
     4     private String name;
     5     private int age;
     6     public Student(){}
     7     public Student(String name){
     8         this.name = name;
     9     }
    10     public Student(int age){
    11         this.age = age;
    12     }
    13     public Student(String name,int age){
    14         this.name = name;
    15         this.age = age;
    16     }
    17     public void show(){
    18         System.out.println("age:"+age+",name:"+name);
    19     }
    20 }

    StudentDemo.java

     1 package com.pr;
     2 
     3 public class StudentDemo {
     4     public static void main(String[] args){
     5         Student s = new Student();
     6         s.show();
     7         Student s1 = new Student("小明");
     8         s1.show();
     9         Student s2 = new Student(20);
    10         s2.show();
    11         Student s3 = new Student("小明",18);
    12         s3.show();
    13     }
    14 }

    输出结果为:

    age:0,name:null
    age:0,name:小明
    age:20,name:null
    age:18,name:小明

    把Student.java的第6行删除了,发现StudentDemo.java的第5行报错了。为什么呢?

    因为,当我们给出了构造方法时,系统就不再提供默认的构造方法供我们使用。

    所以,我们最好手动写一下无参的构造方法。

    还有需要注意的是,可以看出,构造方法可以被重载。

    • 构造方法的作用:

    有了类,就是有了可以重用的代码,但是我怎么产生这个对象呢。必须要实例化这个类(当然这不是唯一产生对象的途径,比如单例模式,但本质上说所有途径都是一样的)。那么就要用到构造方法。即告诉程序我现在要实例化一个对象了,你给我马上分配内存。将内存的首地址赋给我指定的类对象。而且有时候你需要传递参数到函数里面,有了构造函数就方便了。

  • 相关阅读:
    数据的艺术
    第十七篇 make的路径搜索综合实践
    第十六篇 make中的路径搜索
    第十五篇 make中的隐式规则概述
    第十四篇 自动生成依赖关系(终结)
    [SDOI2009]HH的项链解题报告
    欧几里德与扩展欧几里德算法的理解、实现与应用
    浅析强连通分量(Tarjan和kosaraju)
    deque-at
    plt.imshow()
  • 原文地址:https://www.cnblogs.com/chichung/p/10181549.html
Copyright © 2020-2023  润新知