您的位置:首页 > 运维架构 > Linux

Linux上的任务计划--9.5作业

2015-09-09 17:29 453 查看
初始化与方法
 
 
·方法(函数),可以称之为是一个类中的最小单位。下面以一个例子说明怎样定义方法:
 
 
下面是一个特殊的函数:构造函数(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()");
    }
    没显示完,请下载附件查看完事版!
 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: