(一)方法
1.方法基本定义
学习类和构造方法之前要知道”方法“是什么。
在编写程序的过程中,有时会有一串代码会重复使用许多次,就用方法来保存这些代码,以实现运用调用一个简单的方法的语句来做到一系列操作。定义方法有以下格式:
public static 返回值的类型 方法的名称(参数类型 参数变量,参数类型 参数变量,...) {
该方法要执行的操作;
return 返回值;//如果返回值类型是void,则不用使用return语句
}
这里有一个例子可以帮助理解方法是具体是怎么使用的:
public class Java {
//****************************************************************
//为了看得更清晰,我把各方法用*号隔离开来,要看清楚方法要写在程序的哪个位置
public static void main(String[] args) {
int x;
int y;
int z;
x = 1;
y = 2;
z = add(x,y);//调用add方法
System.out.println(z);
print();//调用print方法
}
//****************************************************************
public static int add(int a,int b) {
return a + b;//当该方法被调用时,会返回a+b的值
}
//****************************************************************
public static void print() {
System.out.println("+++++++++++");//调用没有返回值的方法时,会直接执行该语句里的代码
}
//****************************************************************
}
执行结果:
3
+++++++++++
2.方法重载
就是对方法名称进行重复使用,这些方法的方法名称相同,但是参数的类型和个数不同,调用时会根据调用时的参数类型和个数来决定调用哪一个方法。以下例子用来帮助具体理解方法重载是什么意思。
public class Java {
public static void main(String[] args) {
int i,j,x,y,z;
x = 1;
y = 1;
z = 1;
i = 1;
j = 1;
System.out.println( add(x,y) );
System.out.println( add(x,y,z) );
System.out.println( add(x,y,z,i) );
System.out.println( add(x,y,z,i,j) );
//从这里可以看出来,这几个输出都调用了add方法,但是因为参数个数不同所以调用了不同的方法,当然参数类型不同也会调用不同的方法,这就是方法重载
}
public static int add(int a,int b) {
return a + b;
}
public static int add(int a,int b,int c) {
return a + b + c;
}
public static int add(int a,int b,int c,int d) {
return a + b + c + d;
}
public static int add(int a,int b,int c,int d,int e) {
return a + b + c + d + e;
}
}
执行结果:
2
3
4
5
(二)类
类是由成员属性和方法组成的。
定义类的语法如下:
class 类名称{
访问修饰符 数据类型 数据变量;
...
public 返回的数据类型 方法名称(参数类型 参数变量,参数类型 参数变量,...) {
执行的操作;
return 返回的值;//返回的值的数据类型要跟前面的所写的返回的数据类型一致
}
}
用以下的例子来帮助理解:
//*************************************************
//依然用*号来隔开两个类,来更清楚的看类是放在程序的哪个位置
class Test{
int i;
int j;
int k;
public Test(int a,int b) {
i = a;
j = b;
}
public int sum() {
k=i + j;
return k;
}
}
//*************************************************
public class Java {
public static void main(String[] args) {
int x,y,h;
x = 1;
y = 2;
Test z = new Test(x,y);//定义一个新对象z,可以对z调用test类里面的方法,这句就是使用new实例化新对象z,并且调用了构造方法,下面会讲构造方法是怎么用的
h = z.sum();
System.out.println(h);
}
}
//*************************************************
执行结果:
3
(三)构造方法
构造方法是在类中定义的一种特殊方法。该类用new实例化的对象可以直接调用该类中的方法。
类中构造方法有如下要求:
1.名称与类名称一致
2.没有返回值声明
其默认的构造方法:
class Test{
public Test() {
}
}
一个类中其实可以有多个构造方法。就像其他方法一样,它们之间的参数类型和参数个数不同,所以进行实例化的时候也会有所不同。也就是说结果方法也可以重载。以下是帮助理解的例子:
class Test{
int i;
int j;
int k;
public Test(int a,int b,int c) {
i = a;
j = b;
k = c;
}
public Test(int a,int b) {
i = a;
j = b;
}//虽然该方法名称与上一个方法相同,但参数个数不一样,所以在main里实例化的时候,会有一些不同,两个参数时会调用该方法,但有三个参数时会调用上一个方法
public void print1() {
System.out.println("*:"+i+" **:"+j);
}
public void print2() {
System.out.println("*:"+i+" **:"+j+" ***:"+k);
}
}
//************************************************************
public class Java {
public static void main(String[] args) {
int x,y,h;
x = 999;
y = 999;
h = 999;
Test test1 = new Test(x,y);
Test test2 = new Test(x,y,h);
test1.print1();
test2.print2();
}
}
执行结果:
*:999 **:999
*:999 **:999 ***:999