JAVA构造方法

目录

1 方法

2 方法调用

3 方法参数

4 返回类型

5 构造方法

6 构造方法重载(创建不同用户对象)

7 构造方法面试三连

7.1 构造方法能不能显式调用?

7.2 什么是方法重载?

7.3 构造方法能不能重写?能不能重载?


1 方法

在 Java 中,方法定义行为。一个方法是一个组合在一起执行操作的语句的集合。System.out.println() 是一个方法的例子。

您可以定义自己的方法来执行所需的任务。

下面是一个例子:

class MyJavaClass {

  static void sayHello() {
    System.out.println("Hello Edong!");
  }

  public static void main(String[] args) {
    sayHello();
  }
}
// 输出 "Hello Edong!"

在上面的例子中,声明了一个名为 “sayHello” 的方法,它会输出一行文本,然后在 main 方法中调用。

提示:若要调用一个方法,请输入其名称,然后在名称后面加上一组圆括号。

2 方法调用

在 Java 中,您可以根据需要多次调用方法。

当一个方法运行时,代码会跳转到方法定义的位置,执行它内部的代码,然后返回到下一行。

下面是一个例子:

class MyJavaClass {
  
  static void sayHello() {
    System.out.println("Hello Edong!");
  }

  public static void main(String[] args) {
    sayHello();
    sayHello();
    sayHello();
  }
}

// Hello Edong!
// Hello Edong!
// Hello Edong!

3 方法参数

您也可以创建一个方法,在调用它时将一些数据称为参数。在方法的括号内写入参数。

例如,我们可以修改我们的 sayHello() 方法来获取并输出一个字符串参数。

class MyJavaClass {
  static void sayHello(String name) {
    System.out.println("Hello " + name);
  }
  public static void main(String[] args) {
    sayHello("Loen");
    sayHello("Shuter");
  }
}

// Hello Loen
// Hello Shuter

上面的方法将一个名为 name 的字符串作为参数,用在方法的主体中。

然后,在调用方法时,我们将参数的值传递给括号。

 

提示:在 Java 中,方法可以采用多个以逗号分隔的参数。

4 返回类型

返回关键字可用于方法返回值。

例如,我们可以定义一个名为sum的方法,返回两个参数的总和。

static int sum(int val1, int val2) {
   return val1 + val2;
}

在方法定义中,我们在定义方法名称之前定义了返回类型。对于sum方法,它是int类型,因为它采用int类型的两个参数,并返回它们的总和,这也是一个int类型。

提示:关于static关键字的知识,我们将在后面的小节中去了解学习。

现在,我们可以使用我们main的方法。

class MyJavaClass {

  static int sum(int val1, int val2) {
    return val1 + val2;
  }

  public static void main(String[] args) {
    int x = sum(3, 6);
    System.out.println(x);
  }
}

// 输出 "9"

当该方法返回一个值时,我们可以将其赋值给一个变量。

提示

如果不需要从方法中返回任何值,请使用关键字void。

注意main方法定义中的void关键字,这意味着main不返回任何内容。

通过前面小节的学习介绍,我们可以更好地理解程序是如何工作的:

// 返回一个int值 6
static int returnSix() {
  return 6;
}

// 输出传入的参数
static void sayHelloTo(String name) {
  System.out.println("Hello " + name);
}

// 打印 "Hello Lu!"
static void sayHello() {
  System.out.println("Hello Lu!");
}

在了解方法返回类型和参数的知识之后,我们再来看看main方法的定义。

 public static void main(String[] args)

这个定义表明main方法以一个字符串数组作为参数,并且不返回任何值。

让我们创建一个方法,它采用int类型的两个参数,并返回这两个参数的最大值,然后在main中调用它:

public static void main(String[] args) {
  int result = max(5, 35);
  System.out.println(result); // 35
}

static int max(int x, int y) {
  if(x > y) {
    return x;
  }
  else {
    return y;
  }
}

5 构造方法

构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。

声明格式: 

[修饰符] 类名(形参列表){

    //n条语句

}

要点:

  1. 通过new关键字调用!!

  2. 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。

  3. 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!

  4. 构造器的方法名必须和类名一致!

构造方法也是方法,只不过有特殊的作用而已。与普通方法一样,构造方法也可以重载。

6 构造方法重载(创建不同用户对象)

public class User {
    int id; // id
    String name; // 账户名
    String pwd; // 密码
    public User() {
 
    }
    public User(int id, String name) {
        super();
        this.id = id;
        this.name = name;
    }
    public User(int id, String name, String pwd) {
        this.id = id;
        this.name = name;
        this.pwd = pwd;
    }
    public static void main(String[] args) {
        User u1 = new User();
        User u2 = new User(101, "张三");
        User u3 = new User(100, "李四", "123456");     
    }
}

注:

  如果方法构造中形参名与属性名相同时,需要使用this关键字区分属性与形参。如示例4-6所示:

  this.id 表示属性id;id表示形参id

7 构造方法面试三连

7.1 构造方法能不能显式调用?

不能,要想构造方法当成普通方法调用,只有在创建对象的时候它才会被系统调用

7.2 什么是方法重载?

方法的重载就是在同一个类中允许同时存在一个以上的同名方法,只要它们的参数个数或者类型不同即可。在这种情况下,该方法就叫被重
载了,这个过程称为方法的重载( override

7.3 构造方法能不能重写?能不能重载?

可以重载,但不能重写。

构造器 Constructor 不能被继承,因此不能重写 Override,但可以被重载 Overload。Constructor 不能被继承,所以 Constructor 也就不能被 override。每一个类必须有自己的构造函数,负责构造自己这部分的构造。子类不会覆盖父类的构造函数,相反必须负责在一开始调用父类的构造函数

posted @ 2020-01-30 13:43  赵广陆  阅读(29)  评论(0编辑  收藏  举报