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关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。
声明格式:
1. [修饰符] 类名(形参列表){ 2. 3. //n条语句 4. 5. }
要点:
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。每一个类必须有自己的构造函数,负责构造自己这部分的构造。子类不会覆盖父类的构造函数,相反必须负责在一开始调用父类的构造函数