构造方法

一个对象如果被创建在堆区,那么他的构造方法一定会被执行,构造方法可以用来初始化属性。

为什么要构造

当一个对象内的属性需要被初始化时,可以通过构造方法统一完成。例如下面的代码

  1. package com.yuque.phil616.construction;
  2. public class Human {
  3. String name;
  4. int age;
  5. /*
  6. * a constructor is to initialize the properties.
  7. * you can do other things inside, because it just a
  8. * methods. nothing different from other methods.
  9. * */
  10. Human(){
  11. name = "Null";
  12. age = 0;
  13. }
  14. /**
  15. *
  16. * @author phil616
  17. * @param name name of a human
  18. * @param age age of a human
  19. */
  20. Human(String name,int age){
  21. this.name = name;
  22. this.age = age;
  23. }
  24. }

重载

先来看下方法重载(Overloading)的定义:如果有两个方法的方法名相同,但参数不一致,哪么可以说一个方法是另一个方法的重载。 具体说明如下:

  • 方法名相同
  • 方法的参数类型,参数个不一样
  • 方法的返回类型可以不相同
  • 方法的修饰符可以不相同
  • main 方法也可以被重载

以下实例演示了如何重载 MyClass 类的 info 方法:

  1. class MyClass {
  2. int height;
  3. MyClass() {
  4. System.out.println("无参数构造函数");
  5. height = 4;
  6. }
  7. MyClass(int i) {
  8. System.out.println("房子高度为 " + i + " 米");
  9. height = i;
  10. }
  11. void info() {
  12. System.out.println("房子高度为 " + height + " 米");
  13. }
  14. void info(String s) {
  15. System.out.println(s + ": 房子高度为 " + height + " 米");
  16. }
  17. }
  18. public class MainClass {
  19. public static void main(String[] args) {
  20. MyClass t = new MyClass(3);
  21. t.info();
  22. t.info("重载方法");
  23. //重载构造函数
  24. new MyClass();
  25. }
  26. }