初始化与方法
·方法(函数),可以称之为是一个类中的最小单位。下面以一个例子说明怎样定义方法:
下面是一个特殊的函数:构造函数(constructor),构造函数是没有返回类型的。
public class MethodTest { int a; int b; //这是默认的构造函数,如果在一个类中没有写构造函数 //则系统会自动给其默认一个构造函数 public MethodTest() {
} //带参数的构造函数 public MethodTest(int a,int b) { //this指的就是MethodTest这个类 //也可以算是一个类的引用 this.a = a; this.b = b; System.out.println("赋值完成.a:"+a+",b:"+b); }
public static void main(String[] args) { MethodTest mt = new MethodTest(); MethodTest mt1 = new MethodTest(5,6); } } |
以上两个MethodTest()构造函数也叫做方法的重载
public void fun() {
} public void fun(int a) {
} public void fun(String str) {
} |
这里这三个方法返回值类型以及方法名都是一样的,只有参数列表不一样,这样的一系列方法就叫做:方法的重载
但下面这两方法就不是方法的重载,而是不允许出现的
public void fun(int a) {
} public void fun(int b) {
} |
因为这只是参数中的变量名不一样,如果参数的类型不一样就可以了,就像上面例子的后面两方法一样。
·this关键字
下面再以一个例子来说明一下this关键字:
public class ThisTest {
int num;
/** * 带参数的构造函数 * @param num 在构造的时候要传入的一个int类型的值 */ public ThisTest(int num) { this.num = num; }
/** * 自定义的一个函数 * 调用一次就让该类里的num加1 * @return 返回自己,也就是这个类本身 */ public ThisTest getThis() { num++; return this; }
/** * 自定义的一个函数 * 输出num的值 */ public void print() { System.out.println("num:"+num); }
public static void main(String[] args) { //构造该类的时候给num赋值为2 //因为getThis()这个方法的返回值是ThisTest这个类,所以可以多次这样点调用 //调用三次getThis()之后num的值加到了5 new ThisTest(2).getThis().getThis().getThis().print(); //~在这里将会输出num:5 }
} |
·static关键字
Static(静态)方法内是没有this关键字的。在static方法内不能调用非静态方法,但非静态方法内是可以调用static(静态)方法的。Static(静态)出现的主要目的则是可以通过类名来直接调用static的方法。下面以一个例子来说明一下此关键字
public class StaticTest { /** * 这是一个static(静态)的方法,可以通过类名直接调用 * 求1到target的和 * @param target 目标数,如果target等于10,那就是求1到10之间的和 * @return 返回和 */ public static int result(int target) { int result = 0; for(int i=1;i<=target;i++) { result = result+i; } return result; } public static void main(String[] args) { //这里也可不用类名,写成:System.out.println("结果是:"+result(100)); System.out.println("结果是:"+StaticTest.result(100)); } } |
·初始化
class Cup { Cup(int marker) { System.out.println("Cup("+marker+")"); }
void fun(int marker) { System.out.println("fun("+marker+")"); } }
class Cups { Cups() { System.out.println("Cups()"); } 没显示完,请下载附件查看完事版! |